From b4b11bb8121b10d0e645d1b12b7b22b38faa9c3b Mon Sep 17 00:00:00 2001 From: Chris Koeritz Date: Sun, 5 Nov 2017 23:27:15 -0500 Subject: [PATCH] tasty changes for building custom scripts now the customized scripts can be in an arbitrary directory structure under the customized user's scripts folder. --- scripts/core/generate_aliases.pl | 57 +++---------------- .../revamp_web_permissions.sh | 0 .../{ => disk_synch}/compare_soapbox.sh | 0 .../{ => disk_synch}/euphrosyne_comparator.sh | 0 .../scripts/{ => disk_synch}/musical_wand.sh | 0 .../{ => disk_synch}/raw_synch_from_surya.sh | 0 .../{ => disk_synch}/update_barkuptree.sh | 0 .../{ => disk_synch}/update_fredmusicprime.sh | 0 .../{ => disk_synch}/update_soapbox.sh | 0 .../fred/scripts/{ => games}/gamesaver.sh | 0 .../fred/scripts/pick_credentials.sh | 17 ------ .../{ => rip_burn}/create_disco_dirs.sh | 0 scripts/customize/fred/scripts/sftp.sh | 8 --- scripts/customize/fred/scripts/ssh.sh | 32 ----------- scripts/files/filename_helper.pl | 7 ++- 15 files changed, 15 insertions(+), 106 deletions(-) rename scripts/customize/fred/scripts/{ => cakelampvm}/revamp_web_permissions.sh (100%) rename scripts/customize/fred/scripts/{ => disk_synch}/compare_soapbox.sh (100%) rename scripts/customize/fred/scripts/{ => disk_synch}/euphrosyne_comparator.sh (100%) rename scripts/customize/fred/scripts/{ => disk_synch}/musical_wand.sh (100%) rename scripts/customize/fred/scripts/{ => disk_synch}/raw_synch_from_surya.sh (100%) rename scripts/customize/fred/scripts/{ => disk_synch}/update_barkuptree.sh (100%) rename scripts/customize/fred/scripts/{ => disk_synch}/update_fredmusicprime.sh (100%) rename scripts/customize/fred/scripts/{ => disk_synch}/update_soapbox.sh (100%) rename scripts/customize/fred/scripts/{ => games}/gamesaver.sh (100%) delete mode 100644 scripts/customize/fred/scripts/pick_credentials.sh rename scripts/customize/fred/scripts/{ => rip_burn}/create_disco_dirs.sh (100%) delete mode 100644 scripts/customize/fred/scripts/sftp.sh delete mode 100644 scripts/customize/fred/scripts/ssh.sh diff --git a/scripts/core/generate_aliases.pl b/scripts/core/generate_aliases.pl index 6fc5d4e2..45ff8118 100644 --- a/scripts/core/generate_aliases.pl +++ b/scripts/core/generate_aliases.pl @@ -184,15 +184,11 @@ if (length($DEBUG_FEISTY_MEOW)) { open(she, ">> $FEISTY_MEOW_LOADING_DOCK/fmc_aliases_for_scripts.sh"); # find the list of files in the scripts directory. -#opendir(scripts, "$FEISTY_MEOW_SCRIPTS"); -#@shell_files = sort(readdir(scripts)); -#print "scripts: @shell_files\n"; +@shell_files = (find_files(recursive_find_directories("$FEISTY_MEOW_SCRIPTS")), + find_files(recursive_find_directories("$FEISTY_MEOW_LOADING_DOCK/custom/scripts"))); -@shell_files = (&find_files("$FEISTY_MEOW_SCRIPTS"), - &find_files("$FEISTY_MEOW_LOADING_DOCK/custom/scripts"), - &find_files(recursive_find_directories("$FEISTY_MEOW_LOADING_DOCK/custom/scripts"))); - -#printf "found all these files: @shell_files\n"; +#printf "found all these files in main script dirs:\n"; +#printf " @shell_files\n"; # construct aliases for items in the scripts directory. foreach $file (@shell_files) { @@ -205,51 +201,16 @@ foreach $file (@shell_files) { || $file =~ /\/\.\.$/ || $file =~ /\/\.svn$/ || $file =~ /\/\.git$/ - || $file =~ /\/customize\// + || $file =~ /\/customize\/[a-zA-Z0-9_]+\/[a-zA-Z0-9_.]+$/ #hmmm: would be nice to have this name in a symbol somewhere instead of having "customize" everywhere. ) { - # just skip this item; it's a special directory. -#print "skipping name: $file\n"; - } elsif (-d "$FEISTY_MEOW_SCRIPTS/$file") { - # if we see a subdirectory in the scripts folder, we add all the - # scripts in it as aliases. we recurse only one level. we also don't use - # our customize directory as aliases, since those are processed way differently. -#print "adding script dir in: $file\n"; - opendir(subdir, "$FEISTY_MEOW_SCRIPTS/$file"); - @subdir_files = sort(readdir(subdir)); - foreach $subfile (@subdir_files) { - push(@shell_files, "$file/$subfile"); - } - } elsif (-f "$FEISTY_MEOW_LOADING_DOCK/custom/scripts/$file") { - # if we see a file in the auto-generated area that comes from the - # customized scripts folder, we add it as an alias. - make_alias($file, "$FEISTY_MEOW_LOADING_DOCK/custom/scripts/"); -#print "added custom script file: $FEISTY_MEOW_LOADING_DOCK/custom/scripts/$file\n"; + # just skip this item; it's a special directory or a file we don't want to include. +# print "skipping name: $file\n"; } else { - # last ditch effort to make sense of the file; just go ahead and make an alias unless - # the file is part of our customization scheme. - if ( ! ($file =~ /customize/) ) { -#print "adding regular file in: $file\n"; - # if it's a regular file, we'll try to make an alias for it. the function - # will only fire if the ending is appropriate for the script languages we use. - &make_alias($file, "$FEISTY_MEOW_SCRIPTS"); - } else { -#print "omitting file in: $file\n"; - } + &make_alias($file, ""); } } -# open the source repository's script directory to find scripts in there. -local($build_shell_path) = "$BUILD_TOP/scripts/generator"; -@build_shells = &find_files("$build_shell_path"); -#opendir(build_shells_dir, $build_shell_path); -#@build_shell_files = sort(readdir(build_shells_dir)); -#if (scalar(@build_shell_files) > 0) { -# print "build shell folders: @build_shell_files\n"; -#} -foreach $file (@build_shells) { - &make_alias($file, "$build_shell_path"); -} - close(she); +1; diff --git a/scripts/customize/fred/scripts/revamp_web_permissions.sh b/scripts/customize/fred/scripts/cakelampvm/revamp_web_permissions.sh similarity index 100% rename from scripts/customize/fred/scripts/revamp_web_permissions.sh rename to scripts/customize/fred/scripts/cakelampvm/revamp_web_permissions.sh diff --git a/scripts/customize/fred/scripts/compare_soapbox.sh b/scripts/customize/fred/scripts/disk_synch/compare_soapbox.sh similarity index 100% rename from scripts/customize/fred/scripts/compare_soapbox.sh rename to scripts/customize/fred/scripts/disk_synch/compare_soapbox.sh diff --git a/scripts/customize/fred/scripts/euphrosyne_comparator.sh b/scripts/customize/fred/scripts/disk_synch/euphrosyne_comparator.sh similarity index 100% rename from scripts/customize/fred/scripts/euphrosyne_comparator.sh rename to scripts/customize/fred/scripts/disk_synch/euphrosyne_comparator.sh diff --git a/scripts/customize/fred/scripts/musical_wand.sh b/scripts/customize/fred/scripts/disk_synch/musical_wand.sh similarity index 100% rename from scripts/customize/fred/scripts/musical_wand.sh rename to scripts/customize/fred/scripts/disk_synch/musical_wand.sh diff --git a/scripts/customize/fred/scripts/raw_synch_from_surya.sh b/scripts/customize/fred/scripts/disk_synch/raw_synch_from_surya.sh similarity index 100% rename from scripts/customize/fred/scripts/raw_synch_from_surya.sh rename to scripts/customize/fred/scripts/disk_synch/raw_synch_from_surya.sh diff --git a/scripts/customize/fred/scripts/update_barkuptree.sh b/scripts/customize/fred/scripts/disk_synch/update_barkuptree.sh similarity index 100% rename from scripts/customize/fred/scripts/update_barkuptree.sh rename to scripts/customize/fred/scripts/disk_synch/update_barkuptree.sh diff --git a/scripts/customize/fred/scripts/update_fredmusicprime.sh b/scripts/customize/fred/scripts/disk_synch/update_fredmusicprime.sh similarity index 100% rename from scripts/customize/fred/scripts/update_fredmusicprime.sh rename to scripts/customize/fred/scripts/disk_synch/update_fredmusicprime.sh diff --git a/scripts/customize/fred/scripts/update_soapbox.sh b/scripts/customize/fred/scripts/disk_synch/update_soapbox.sh similarity index 100% rename from scripts/customize/fred/scripts/update_soapbox.sh rename to scripts/customize/fred/scripts/disk_synch/update_soapbox.sh diff --git a/scripts/customize/fred/scripts/gamesaver.sh b/scripts/customize/fred/scripts/games/gamesaver.sh similarity index 100% rename from scripts/customize/fred/scripts/gamesaver.sh rename to scripts/customize/fred/scripts/games/gamesaver.sh diff --git a/scripts/customize/fred/scripts/pick_credentials.sh b/scripts/customize/fred/scripts/pick_credentials.sh deleted file mode 100644 index 8b4b55e6..00000000 --- a/scripts/customize/fred/scripts/pick_credentials.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -# chooses the right certificate to use for logging in via ssh. - -#hmmm: not the slightest bit general here currently. -# what about having a main key variable and a sourceforge key variable? -# better yet, an array of site patterns and keys for those sites. - -keyfile="$HOME/.ssh/id_dsa_fred" - -if [ ! -z "$(echo $* | grep -i sourceforge)" ]; then - keyfile="$HOME/.ssh/id_dsa_sourceforge" -fi - -if [ ! -f "$keyfile" ]; then - unset keyfile -fi diff --git a/scripts/customize/fred/scripts/create_disco_dirs.sh b/scripts/customize/fred/scripts/rip_burn/create_disco_dirs.sh similarity index 100% rename from scripts/customize/fred/scripts/create_disco_dirs.sh rename to scripts/customize/fred/scripts/rip_burn/create_disco_dirs.sh diff --git a/scripts/customize/fred/scripts/sftp.sh b/scripts/customize/fred/scripts/sftp.sh deleted file mode 100644 index 8753ac47..00000000 --- a/scripts/customize/fred/scripts/sftp.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" -source "$FEISTY_MEOW_LOADING_DOCK/custom/scripts/pick_credentials.sh" - -# a wrapper for the file transfers using secure shell. -\sftp -i "$keyfile" $* - diff --git a/scripts/customize/fred/scripts/ssh.sh b/scripts/customize/fred/scripts/ssh.sh deleted file mode 100644 index 0c7897c4..00000000 --- a/scripts/customize/fred/scripts/ssh.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -# wraps calling the secure shell to let us pick our appropriate credentials. - -source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" -source "$FEISTY_MEOW_SCRIPTS/tty/terminal_titler.sh" - -#hmmm: is this still used??? -# it seems redundant with the ssh config file that says which creds to use. -source "$FEISTY_MEOW_LOADING_DOCK/custom/scripts/pick_credentials.sh" - -# remember the old title. -save_terminal_title - -# force the TERM variable to a more generic version for other side. -# we don't want the remote side still thinking it's running xterm. -export TERM=linux - -#hmmm: it would be good to set an interrupt handler here and -# trap ctrl-c, since otherwise we are getting exited from and losing a chance -# to reset the terminal title. this actually happens a lot, since some X11 -# or other background process is left running and the ssh never actually quits, -# forcing one to hit ctrl-c. - -if [ ! -z "$keyfile" ]; then - \ssh -i "$keyfile" -X -C $* -else - \ssh -X -C $* -fi - -restore_terminal_title - diff --git a/scripts/files/filename_helper.pl b/scripts/files/filename_helper.pl index 86de1dab..b4218166 100644 --- a/scripts/files/filename_helper.pl +++ b/scripts/files/filename_helper.pl @@ -444,11 +444,16 @@ sub find_directories { ############################################################################ -# given a directory, this returns an array of all the filenames found therein. +# given a list of paths, this returns an array of all the filenames found therein. sub find_files { my @files_found = (); my $dir; foreach $dir (@_) { + if (-f $dir) { + # that's actually just a file, so add it. + push @files_found, $dir; + next; + } local *DIR; opendir DIR, $dir or die "opendir $dir: $!"; while ($_ = readdir DIR) { -- 2.34.1