From aeb410743c326010d7bcd139c96a7f479a05dddf Mon Sep 17 00:00:00 2001 From: Chris Koeritz Date: Tue, 14 Nov 2017 14:53:07 +0000 Subject: [PATCH] abstracted get_maxcols as new function --- scripts/core/functions.sh | 39 +++++++++++++++++++++-- scripts/core/inventory.sh | 2 +- scripts/files/remove_here_if_not_there.sh | 5 ++- scripts/rev_control/version_control.sh | 4 +-- 4 files changed, 40 insertions(+), 10 deletions(-) diff --git a/scripts/core/functions.sh b/scripts/core/functions.sh index 67977085..7068cc9c 100644 --- a/scripts/core/functions.sh +++ b/scripts/core/functions.sh @@ -49,6 +49,8 @@ if [ -z "$skip_all" ]; then return $? } + ############## + # displays the value of a variable in bash friendly format. function var() { HOLDIFS="$IFS" @@ -84,6 +86,8 @@ if [ -z "$skip_all" ]; then IFS="$HOLDIFS" } + ############## + # when passed a list of things, this will return the unique items from that list as an echo. function uniquify() { @@ -104,6 +108,8 @@ if [ -z "$skip_all" ]; then fi } + ############## + function success_sound() { if [ ! -z "$CLAM_FINISH_SOUND" ]; then @@ -118,6 +124,20 @@ if [ -z "$skip_all" ]; then fi } + ############## + + # echoes the maximum number of columns that the terminal supports. usually + # anything you print to the terminal with length less than (but not equal to) + # maxcols will never wrap. + function get_maxcols() + { + # calculate the number of columsn in the terminal. + local cols=$(stty size | awk '{print $2}') + echo $cols + } + + ############## + # checks the result of the last command that was run, and if that failed, # then this complains and exits from bash. the function parameters are # used as the message to print as a complaint. @@ -139,6 +159,8 @@ if [ -z "$skip_all" ]; then fi } + ############## + # wraps secure shell with some parameters we like, most importantly to enable X forwarding. function ssh() { @@ -152,6 +174,8 @@ if [ -z "$skip_all" ]; then restore_terminal_title } + ############## + # locates a process given a search pattern to match in the process list. # supports a single command line flag style parameter of "-u USERNAME"; # if the -u flag is found, a username is expected afterwards, and only the @@ -267,6 +291,9 @@ if [ -z "$skip_all" ]; then fi } + ############## + +#hmmm: holy crowbars, this is an old one. do we ever still have any need of it? # an unfortunately similarly named function to the above 'ps' as in process # methods, but this 'ps' stands for postscript. this takes a postscript file # and converts it into pcl3 printer language and then ships it to the printer. @@ -280,9 +307,15 @@ if [ -z "$skip_all" ]; then done } -# function fix_alsa() { -# sudo /etc/init.d/alsasound restart -# } + # restarts the sound driver. + function fix_sound_driver() { +#if something +# sudo service alsasound restart +#else + sudo service pulseaudio restart +#fi + + } function screen() { save_terminal_title diff --git a/scripts/core/inventory.sh b/scripts/core/inventory.sh index eeb77039..db33f74c 100644 --- a/scripts/core/inventory.sh +++ b/scripts/core/inventory.sh @@ -38,7 +38,7 @@ fi # decide whether they've got splitter available or not. if [ -f "$FEISTY_MEOW_BINARIES/splitter" -o -f "$FEISTY_MEOW_BINARIES/splitter.exe" ]; then # calculate the number of columsn in the terminal. - cols=$(stty size | awk '{print $2}') + cols=$(get_maxcols) splitter="$FEISTY_MEOW_BINARIES/splitter --maxcol $(($cols - 1))" else # not available, so just emit as huge overly long string. diff --git a/scripts/files/remove_here_if_not_there.sh b/scripts/files/remove_here_if_not_there.sh index ba0d8dff..403a0f7c 100644 --- a/scripts/files/remove_here_if_not_there.sh +++ b/scripts/files/remove_here_if_not_there.sh @@ -4,9 +4,8 @@ function print_instructions() { echo -e "\n$(basename $0 .sh):\n" -#hmmm: extract to a terminal size function. -# calculate the number of columsn in the terminal. -cols=$(stty size | awk '{print $2}') + # calculate the number of columsn in the terminal. + local cols=$(get_maxcols) echo -e 'this script takes two parameters, a "here" folder and a "there" folder, almost as if it were a copy command. but instead, this removes any file from under the "here" location if it cannot be found in the "there" location. so the "there" location is considered a more definitive template of what should be in "here", such that we strip out what "there" does not have.\n\n the most" useful way to use this script is for a "here" hierarchy that is a copy of an older version of another "there" hierarchy. the "there" hierarchy may have changed a lot, including new files, changed files, and deleted files. it is a simple operation to copy everything from "there" into "here" (such as by using the command [ cp -R "$there"/* "$here" ] ) , but it is a lot harder to determine what stuff in "here" is out of date and should be removed. that is where this script comes in; it can be run to flush out any older things in "here", rather than requiring the user to manually find all those files. ' | splitter --maxcol $(($cols - 1)) diff --git a/scripts/rev_control/version_control.sh b/scripts/rev_control/version_control.sh index 08a9a07c..e36aaf8a 100644 --- a/scripts/rev_control/version_control.sh +++ b/scripts/rev_control/version_control.sh @@ -17,10 +17,8 @@ export MAX_DEPTH=5 # use our splitter tool for lengthy output if it's available. if [ ! -z "$(which splitter)" ]; then TO_SPLITTER="$(which splitter)" - -#hmmm: another reusable chunk here, getting terminal size. # calculate the number of columsn in the terminal. - cols=$(stty size | awk '{print $2}') + cols=$(get_maxcols) TO_SPLITTER+=" --maxcol $(($cols - 1))" else TO_SPLITTER=cat -- 2.34.1