X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fcore%2Fgenerate_aliases.pl;h=b590ca3d5749ec24dd00b4fada725666b250c1eb;hb=4204451f41c3b8c6b8e2abc0cbd8748bb02216ca;hp=a9b777473aac403f4889860781e19d1d5313bd89;hpb=2c725838e22747dd922163daf376ea2b81395c5e;p=feisty_meow.git diff --git a/scripts/core/generate_aliases.pl b/scripts/core/generate_aliases.pl index a9b77747..b590ca3d 100644 --- a/scripts/core/generate_aliases.pl +++ b/scripts/core/generate_aliases.pl @@ -23,19 +23,22 @@ require "filename_helper.pl"; -use Env qw(FEISTY_MEOW_BINARIES BUILD_TOP FEISTY_MEOW_APEX FEISTY_MEOW_LOADING_DOCK FEISTY_MEOW_SCRIPTS DEBUG_FEISTY_MEOW ); +use Env qw(FEISTY_MEOW_BINARIES BUILD_TOP FEISTY_MEOW_APEX FEISTY_MEOW_LOADING_DOCK FEISTY_MEOW_SCRIPTS DEBUG_FEISTY_MEOW HOME ); # given a possible aliasable filename, this will decide whether to create a perl # or bash alias for it. it needs the filename of the possible alias and the # directory where that file resides. sub make_alias { local($file, $dir) = @_; - if ($file =~ /\.[pP][lL]$/) { - local($aliasname) = $file; $aliasname =~ s/\.[Pp][lL]$//; - &make_perl_alias($aliasname, "$dir"); + if ($file =~ /\.[pP][yY]$/) { + local($aliasname) = $file; $aliasname =~ s/\.[Pp][yY]$//; + &make_python_alias($aliasname, "$dir"); } elsif ($file =~ /\.[sS][hH]$/) { local($aliasname) = $file; $aliasname =~ s/\.[Ss][Hh]$//; &make_bash_alias($aliasname, "$dir"); + } elsif ($file =~ /\.[pP][lL]$/) { + local($aliasname) = $file; $aliasname =~ s/\.[Pp][lL]$//; + &make_perl_alias($aliasname, "$dir"); } } @@ -49,6 +52,16 @@ sub make_bash_alias { print she "define_yeti_alias $aliasname=\"bash $full_alias.sh\"\n"; } +# makes an alias for a python script given the alias name. +#hmmm: don't love that we're hardcoding python3 in here, but apparently some systems don't have a 'python' command despite having python installed. +sub make_python_alias { + local($aliasname) = shift(@_); + local($full_alias) = $aliasname; + $aliasname =~ s/^.*\/([^\/]*)/\1/; +#print "alias became $aliasname\n"; + print she "define_yeti_alias $aliasname=\"python3 $full_alias.py\"\n"; +} + # makes an alias for a perl script given the alias name. sub make_perl_alias { local($aliasname) = shift(@_); @@ -86,22 +99,20 @@ sub rebuild_script_aliases { @ALIAS_DEFINITION_FILES = ("$FEISTY_MEOW_SCRIPTS/core/common.alias"); # if custom aliases files exist, add them to the list. +#hmmm: would be nice to have this name in a symbol somewhere instead of having "custom" or "customize" everywhere. foreach $i (&glob_list("$FEISTY_MEOW_LOADING_DOCK/custom/*.alias")) { if (-f $i) { push(@ALIAS_DEFINITION_FILES, $i); } } if (length($DEBUG_FEISTY_MEOW)) { print "using these alias files:\n"; -print "HEY IS THIS PROBLEM CHILD?\n"; foreach $i (@ALIAS_DEFINITION_FILES) { local $base_of_dir = &basename(&dirname($i)); local $basename = &basename($i); print " $base_of_dir/$basename\n"; } -print "WAS PROBLEM CHILD ABOVE HERE?\n"; } # write the aliases for sh and bash scripts. - local $GENERATED_ALIAS_FILE = "$FEISTY_MEOW_LOADING_DOCK/fmc_core_and_custom_aliases.sh"; if (length($DEBUG_FEISTY_MEOW)) { print "writing generated aliases in $GENERATED_ALIAS_FILE...\n"; @@ -169,7 +180,7 @@ if (! -d $FEISTY_MEOW_LOADING_DOCK) { # set the executable bit for binaries for just this current user. if (-d $FEISTY_MEOW_BINARIES) { - system("chmod -R u+x \"$FEISTY_MEOW_BINARIES\"/*"); + system("find \"$FEISTY_MEOW_BINARIES\" -type f -exec chmod u+x \"{}\" ';'"); } ############## @@ -194,6 +205,7 @@ open(she, ">> $FEISTY_MEOW_LOADING_DOCK/fmc_aliases_for_scripts.sh"); # find the list of files in the scripts directory. @shell_files = (find_files(recursive_find_directories("$FEISTY_MEOW_SCRIPTS")), + find_files("$FEISTY_MEOW_LOADING_DOCK/custom/scripts"), find_files(recursive_find_directories("$FEISTY_MEOW_LOADING_DOCK/custom/scripts"))); # strip out the customization files, since they are added in on demand only. @@ -215,11 +227,9 @@ foreach $file (@shell_files) { || $file =~ /\/\.\.$/ || $file =~ /\/\.svn$/ || $file =~ /\/\.git$/ - || $file =~ /\/custom\/[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 or a file we don't want to include. -# print "skipping name: $file\n"; + print "skipping name: $file\n"; } else { &make_alias($file, ""); }