tracking results of renaming now so that if no renames occur, no output is shown...
[feisty_meow.git] / scripts / core / generate_aliases.pl
index 082277c89ed8dac5864db8932a469a0c0990e31a..a96fae3f04da20e9dbcf52b6126736eef86215da 100644 (file)
@@ -8,10 +8,10 @@
 #
 #  Purpose:
 #
-#    This script generates YETI alias files.  Alias files contain a list of
-#  definitions for command aliases that are written in the specified shell
-#  dialect (such as bash or perl) and which are additionally tailored for the
-#  operating system to be used.
+#    This script generates feisty meow script alias files.  Alias files
+#  contain a list of definitions for command aliases that are written in the
+#  specified shell dialect (such as bash or perl) and which are additionally
+#  tailored for the operating system to be used.
 #
 ##############
 #  This program is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 require "filename_helper.pl";
 
-require "importenv.pl";
+use Env qw(BINDIR BUILD_TOP FEISTY_MEOW_DIR FEISTY_MEOW_GENERATED FEISTY_MEOW_SCRIPTS SHELL_DEBUG );
 
 # 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
@@ -47,7 +47,7 @@ sub make_bash_alias {
 #print "alias became $aliasname\n";
   local($source_dir) = shift(@_);
 #print "bash alias is $aliasname, dir is $source_dir\n";
-  print she "alias $aliasname=\"bash $source_dir/$full_alias.sh\"\n";
+  print she "define_yeti_alias $aliasname=\"bash $source_dir/$full_alias.sh\"\n";
 }
 
 # makes an alias for a perl script given the alias name.
@@ -58,7 +58,7 @@ sub make_perl_alias {
 #print "alias became $aliasname\n";
   local($source_dir) = shift(@_);
 #print "perl alias is $aliasname, dir is $source_dir\n";
-  print she "alias $aliasname=\"perl $source_dir/$full_alias.pl\"\n";
+  print she "define_yeti_alias $aliasname=\"perl $source_dir/$full_alias.pl\"\n";
 }
 
 # given a directory, this returns an array of all the filenames found therein.
@@ -79,13 +79,15 @@ sub load_file_names {
 sub rebuild_script_aliases {
 
   if (length($SHELL_DEBUG)) {
-    print "rebuiling generated aliases file...\n";
+    print "rebuilding generated aliases file...\n";
   }
 
   # create our generated shells directory if it's not already.
   if ( ! -d $FEISTY_MEOW_GENERATED ) {
     mkdir $FEISTY_MEOW_GENERATED;
-print "made gener dir $FEISTY_MEOW_GENERATED\n";
+    if (length($SHELL_DEBUG)) {
+      print "made FEISTY_MEOW_GENERATED at '$FEISTY_MEOW_GENERATED'\n";
+    }
   }
 
   # test if we can use color in ls...
@@ -98,22 +100,26 @@ print "made gener dir $FEISTY_MEOW_GENERATED\n";
   foreach $i (&glob_list("$FEISTY_MEOW_GENERATED/custom/*.alias")) {
     if (-f $i) { push(@ALIAS_DEFINITION_FILES, $i); }
   }
-  print "alias files:\n";
-  foreach $i (@ALIAS_DEFINITION_FILES) {
-    local $base_of_dir = &basename(&dirname($i));
-    local $basename = &basename($i);
-    print "  $base_of_dir/$basename\n";
+  if (length($SHELL_DEBUG)) {
+    print "using these alias files:\n";
+    foreach $i (@ALIAS_DEFINITION_FILES) {
+      local $base_of_dir = &basename(&dirname($i));
+      local $basename = &basename($i);
+      print "  $base_of_dir/$basename\n";
+    }
   }
 
   # write the aliases for sh and bash scripts.
 
   local $GENERATED_ALIAS_FILE = "$FEISTY_MEOW_GENERATED/fmc_core_and_custom_aliases.sh";
-  print "writing generated aliases in $GENERATED_ALIAS_FILE...\n";
+  if (length($SHELL_DEBUG)) {
+    print "writing generated aliases in $GENERATED_ALIAS_FILE...\n";
+  }
 
 #hmmm: perhaps a good place for a function to create the header,
 #      given the appropriate comment code.
 
-  open GENOUT, ">>$GENERATED_ALIAS_FILE" or die "cannot open $GENERATED_ALIAS_FILE";
+  open GENOUT, ">$GENERATED_ALIAS_FILE" or die "cannot open $GENERATED_ALIAS_FILE";
 
   print GENOUT "##\n";
   print GENOUT "## generated file: $GENERATED_ALIAS_FILE\n";
@@ -121,9 +127,9 @@ print "made gener dir $FEISTY_MEOW_GENERATED\n";
   print GENOUT "##\n";
 
   if (length($test_color)) {
-    print GENOUT "color_add=--color=auto\n";
+    print GENOUT "export color_add=--color=auto\n";
   } else {
-    print GENOUT "color_add=\n";
+    print GENOUT "export color_add=\n";
   }
 
   # plow in the full set of aliases into the file.
@@ -137,7 +143,7 @@ print "made gener dir $FEISTY_MEOW_GENERATED\n";
   close GENOUT;
 
   if (length($SHELL_DEBUG)) {
-    print("done rebuiling generated aliases file.\n");
+    print("done rebuilding generated aliases file.\n");
   }
 }
 
@@ -149,7 +155,7 @@ if ( ! length("$FEISTY_MEOW_GENERATED") ) {
 The FEISTY_MEOW_GENERATED variable is not defined.  This must point to the location where\n\
 the generated scripts are stored.  Perhaps you still need to run\n\
 bootstrap_shells.sh and set up some environment variables.  Please see\n\
-http://yeticode.org for more details.\n";
+http://feistymeow.org for more details.\n";
   exit 1;
 #really need to use better exit codes.
 }
@@ -165,7 +171,7 @@ if (! -d $FEISTY_MEOW_GENERATED) {
 
 ##############
 
-# set the executable bit for yeti binaries for just this current user.
+# set the executable bit for binaries for just this current user.
 if (-d $BINDIR) {
   system("chmod -R u+x \"$BINDIR\"/*");
 }
@@ -177,19 +183,20 @@ if (-d $BINDIR) {
 # trash the old versions.
 unlink("$FEISTY_MEOW_GENERATED/fmc_aliases_for_scripts.sh");
 
-printf "writing $FEISTY_MEOW_GENERATED/fmc_aliases_for_scripts.sh...\n";
+if (length($SHELL_DEBUG)) {
+  printf "writing $FEISTY_MEOW_GENERATED/fmc_aliases_for_scripts.sh...\n";
+}
 
 # open the alias files to be created.
 open(she, ">> $FEISTY_MEOW_GENERATED/fmc_aliases_for_scripts.sh");
 
-#print "os is $OS\n";
-
 # find the list of files in the scripts directory.
 #opendir(scripts, "$FEISTY_MEOW_SCRIPTS");
 #@shell_files = sort(readdir(scripts));
-#print "yeti scripts: @shell_files\n";
+#print "scripts: @shell_files\n";
 
-@shell_files = &load_file_names("$FEISTY_MEOW_SCRIPTS");
+@shell_files = (&load_file_names("$FEISTY_MEOW_SCRIPTS"),
+   &load_file_names("$FEISTY_MEOW_GENERATED/custom/scripts"));
 
 # construct aliases for items in the scripts directory.
 foreach $file (@shell_files) {
@@ -212,6 +219,11 @@ foreach $file (@shell_files) {
     foreach $subfile (@subdir_files) {
       push(@shell_files, "$file/$subfile");
     }
+  } elsif (-f "$FEISTY_MEOW_GENERATED/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_GENERATED/custom/scripts/");
+    #print "added custom script file: $FEISTY_MEOW_GENERATED/custom/scripts/$file\n";
   } else {
     # 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.