stuffed the recustomize function back in, since if it is a separate shell script...
[feisty_meow.git] / scripts / core / functions.sh
index b5bbf95d8b08407527a27f5a124e019ba2b13ea6..72aa777ec9c833b00a348807e3922cad90a1d902 100644 (file)
@@ -11,6 +11,8 @@ if [ $? -eq 0 ]; then
     echo "skipping function definitions, because already defined."
   fi
   skip_all=yes
+else
+  skip_all=
 fi
 
 if [ -z "$skip_all" ]; then
@@ -74,7 +76,7 @@ if [ -z "$skip_all" ]; then
           echo "$varname=${!varname}"
         fi
       fi
-    done
+    done | sort
     IFS="$HOLDIFS"
   }
 
@@ -153,65 +155,24 @@ if [ -z "$skip_all" ]; then
       local pid_finder_pattern='s/^[[:space:]]*\([0-9][0-9]*\).*$/\1/p'
     fi
 
-
-#    if [ "$OS" == "Windows_NT" ]; then
-#
-##hmmm: windows isn't implementing the user flag yet!
-##try collapsing back to the ps implementation from cygwin?
-## that would simplify things a lot, if we can get it to print the right output.
-#
-#      # windows case has some odd gyrations to get the user list.
-#      if [ ! -d c:/tmp ]; then
-#        mkdir c:/tmp
-#      fi
-#      # windows7 magical mystery tour lets us create a file c:\\tmp_pids.txt, but then it's not
-#      # really there in the root of drive c: when we look for it later.  hoping to fix that
-#      # problem by using a subdir, which also might be magical thinking from windows perspective.
-#      tmppid=c:\\tmp\\pids.txt
-#      # we have abandoned all hope of relying on ps on windows.  instead we use wmic to get full
-#      # command lines for processes.
-#      wmic /locale:ms_409 PROCESS get processid,commandline </dev/null >"$tmppid"
-#      local flag='/c'
-#      if [ ! -z "$(uname -a | grep "^MING" )" ]; then
-#        flag='//c'
-#      fi
-#      # we 'type' the file to get rid of the unicode result from wmic.
-#      # needs to be a windows format filename for 'type' to work.
-#      cmd $flag type "$tmppid" >$PID_DUMP
-#      \rm "$tmppid"
-#      local pid_finder_pattern='s/^.*[[:space:]][[:space:]]*\([0-9][0-9]*\) *\$/\1/p'
-#      local i
-#      for i in "${patterns[@]}"; do
-#        PIDS_SOUGHT+=($(cat $PID_DUMP \
-#          | grep -i "$i" \
-#          | sed -n -e "$pid_finder_pattern"))
-#      done
-#    else
-
-
-      /bin/ps $EXTRA_DOZER_FLAGS $EXTRA_UNIX_FLAGS $user_flag | tail -n +2 >$PID_DUMP
+    /bin/ps $EXTRA_DOZER_FLAGS $EXTRA_UNIX_FLAGS $user_flag | tail -n +2 >$PID_DUMP
 #echo ====
 #echo got all this stuff in the pid dump file:
 #cat $PID_DUMP
 #echo ====
 
-      # remove the first line of the file, search for the pattern the
-      # user wants to find, and just pluck the process ids out of the
-      # results.
-      local i
-      for i in "${patterns[@]}"; do
-#echo pattern is $i
-#echo phase 1: $(cat $PID_DUMP | sed -e '1d' )
-#echo phase 2: $(cat $PID_DUMP | sed -e '1d' | grep -i "$i" )
-        PIDS_SOUGHT+=($(cat $PID_DUMP \
-          | grep -i "$i" \
-          | sed -n -e "$pid_finder_pattern"))
-      done
+    # search for the pattern the user wants to find, and just pluck the process
+    # ids out of the results.
+    local i
+    for i in "${patterns[@]}"; do
+      PIDS_SOUGHT+=($(cat $PID_DUMP \
+        | grep -i "$i" \
+        | sed -n -e "$pid_finder_pattern"))
+    done
 #echo ====
 #echo pids sought list became:
 #echo "${PIDS_SOUGHT[@]}"
 #echo ====
-#####    fi
 
     if [ ${#PIDS_SOUGHT[*]} -ne 0 ]; then
       local PIDS_SOUGHT2=$(printf -- '%s\n' ${PIDS_SOUGHT[@]} | sort | uniq)
@@ -409,31 +370,6 @@ if [ -z "$skip_all" ]; then
     nechung
   }
 
-  # generates a random password where the first parameter is the number of characters
-  # in the password (default 20) and the second parameter specifies whether to use
-  # special characters (1) or not (0).
-  # found function at http://legroom.net/2010/05/06/bash-random-password-generator
-  function random_password()
-  {
-    [ "$2" == "0" ] && CHAR="[:alnum:]" || CHAR="[:graph:]"
-    cat /dev/urandom | tr -cd "$CHAR" | head -c ${1:-32}
-    echo
-  }
-
-  # a wrapper for the which command that finds items on the path.  some OSes
-  # do not provide which, so we want to not be spewing errors when that
-  # happens.
-  function whichable()
-  {
-    to_find="$1"; shift
-    which which &>/dev/null
-    if [ $? -ne 0 ]; then
-      # there is no which command here.  we produce nothing due to this.
-      echo
-    fi
-    echo $(which $to_find)
-  }
-
   # copies a set of custom scripts into the proper location for feisty meow
   # to merge their functions and aliases with the standard set.
   function recustomize()
@@ -451,9 +387,9 @@ if [ -z "$skip_all" ]; then
     fi
     regenerate >/dev/null
     pushd "$FEISTY_MEOW_LOADING_DOCK/custom" &>/dev/null
-    local incongruous_files="$(bash "$FEISTY_MEOW_SCRIPTS/files/list_non_dupes.sh" "$FEISTY_MEOW_APEX/customizing/$user" "$FEISTY_MEOW_LOADING_DOCK/custom")"
-
-#echo "the incongruous files list is: $incongruous_files"
+    incongruous_files="$(bash "$FEISTY_MEOW_SCRIPTS/files/list_non_dupes.sh" "$FEISTY_MEOW_APEX/customizing/$user" "$FEISTY_MEOW_LOADING_DOCK/custom")"
+    
+    #echo "the incongruous files list is: $incongruous_files"
     # disallow a single character result, since we get "*" as result when nothing exists yet.
     if [ ${#incongruous_files} -ge 2 ]; then
       echo "cleaning unknown older overrides..."
@@ -472,7 +408,33 @@ if [ -z "$skip_all" ]; then
     regenerate
   }
 
-#uhhh, this does what now?
+  # generates a random password where the first parameter is the number of characters
+  # in the password (default 20) and the second parameter specifies whether to use
+  # special characters (1) or not (0).
+  # found function at http://legroom.net/2010/05/06/bash-random-password-generator
+  function random_password()
+  {
+    [ "$2" == "0" ] && CHAR="[:alnum:]" || CHAR="[:graph:]"
+    cat /dev/urandom | tr -cd "$CHAR" | head -c ${1:-32}
+    echo
+  }
+
+  # a wrapper for the which command that finds items on the path.  some OSes
+  # do not provide which, so we want to not be spewing errors when that
+  # happens.
+  function whichable()
+  {
+    to_find="$1"; shift
+    which which &>/dev/null
+    if [ $? -ne 0 ]; then
+      # there is no which command here.  we produce nothing due to this.
+      echo
+    fi
+    echo $(which $to_find)
+  }
+
+#hmmm: improve this by not adding the link
+# if already there, or if the drive is not valid.
   function add_cygwin_drive_mounts() {
     for i in c d e f g h q z ; do
       ln -s /cygdrive/$i $i
@@ -592,6 +554,30 @@ return 0
 
   ##############
 
+  # just shows a separator line for an 80 column console, or uses the first
+  # parameter as the number of columns to expect.
+  function separator()
+  {
+    count=$1; shift
+    if [ -z "$count" ]; then
+      count=79
+    fi
+    echo
+    local i
+    for ((i=0; i < $count - 1; i++)); do
+      echo -n "="
+    done
+    echo
+    echo
+  }
+  # alias for separator.
+  function sep()
+  {
+    separator $*
+  }
+
+  ##############
+
   function function_sentinel() { return 0; }
   
   if [ ! -z "$SHELL_DEBUG" ]; then echo "feisty meow function definitions done."; fi