+ restore_terminal_title
+ }
+
+ # 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()
+ {
+ local custom_user="$1"; shift
+ if [ -z "$custom_user" ]; then
+ # default to login name if there was no name provided.
+ custom_user="$(logname)"
+ # we do intend to use logname here to get the login name and to ignore
+ # if the user has sudo root access; we don't want to provide a custom
+ # profile for root.
+ fi
+
+ save_terminal_title
+
+ if [ ! -d "$FEISTY_MEOW_SCRIPTS/customize/$custom_user" ]; then
+ echo -e "the customization folder for '$custom_user' is missing:
+
+ $FEISTY_MEOW_SCRIPTS/customize/$custom_user
+
+we will skip recustomization, but these other customizations are available:
+"
+ # a little tr and sed magic to fix the carriage returns into commas.
+ local line="$(find $FEISTY_MEOW_SCRIPTS/customize -mindepth 1 -maxdepth 1 -type d -exec basename {} ';' | tr '\n' '&' | sed 's/&/, /g' | sed -e 's/, $//')"
+ # make the line feeds and carriage returns manageable with tr.
+ # convert the ampersand, our weird replacement for EOL, with a comma + space in sed.
+ # last touch with sed removes the last comma.
+ echo " $line"
+ return 1
+ fi
+
+ # prevent permission foul-ups.
+ my_user="$USER"
+ # here we definitely want the effective user name (in USER), since
+ # we don't want, say, fred (as logname) to own all of root's loading
+ # dock stuff.
+ chown -R "$my_user:$my_user" \
+ "$FEISTY_MEOW_LOADING_DOCK"/* "$FEISTY_MEOW_GENERATED_STORE"/* 2>/dev/null
+ continue_on_error "chowning feisty meow generated directories to $my_user"
+
+ regenerate >/dev/null
+ pushd "$FEISTY_MEOW_LOADING_DOCK/custom" &>/dev/null
+ incongruous_files="$(bash "$FEISTY_MEOW_SCRIPTS/files/list_non_dupes.sh" "$FEISTY_MEOW_SCRIPTS/customize/$custom_user" "$FEISTY_MEOW_LOADING_DOCK/custom")"
+
+ local fail_message="\n
+are the perl dependencies installed? if you're on ubuntu or debian, try this:\n
+ $(grep "apt.*perl" $FEISTY_MEOW_APEX/readme.txt)\n
+or if you're on cygwin, then try this (if apt-cyg is available):\n
+ $(grep "apt-cyg.*perl" $FEISTY_MEOW_APEX/readme.txt)\n";
+
+ #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
+ log_feisty_meow_event "cleaning unknown older overrides..."
+ perl "$FEISTY_MEOW_SCRIPTS/files/safedel.pl" $incongruous_files
+ continue_on_error "running safedel. $fail_message"
+ fi
+ popd &>/dev/null
+ log_feisty_meow_event "copying custom overrides for $custom_user"
+ mkdir -p "$FEISTY_MEOW_LOADING_DOCK/custom" 2>/dev/null
+ perl "$FEISTY_MEOW_SCRIPTS/text/cpdiff.pl" "$FEISTY_MEOW_SCRIPTS/customize/$custom_user" "$FEISTY_MEOW_LOADING_DOCK/custom"
+ continue_on_error "running cpdiff. $fail_message"
+
+ if [ -d "$FEISTY_MEOW_SCRIPTS/customize/$custom_user/scripts" ]; then
+ log_feisty_meow_event "copying custom scripts for $custom_user"
+#hmmm: could save output to show if an error occurs.
+ rsync -avz "$FEISTY_MEOW_SCRIPTS/customize/$custom_user/scripts" "$FEISTY_MEOW_LOADING_DOCK/custom/" &>/dev/null
+ continue_on_error "copying customization scripts"
+ fi
+ regenerate
+
+ # prevent permission foul-ups, again.
+ chown -R "$my_user:$my_user" \
+ "$FEISTY_MEOW_LOADING_DOCK" "$FEISTY_MEOW_GENERATED_STORE" 2>/dev/null
+ continue_on_error "once more chowning feisty meow generated directories to $my_user"
+
+ restore_terminal_title