Merge branch 'master' of feistymeow.org:feisty_meow
[feisty_meow.git] / scripts / core / generate_aliases.pl
index 968cf360e39ac0364f5f34d755cc3bcd7edc1e1f..4ed01fb74641794fe21613eeb98ee0d4e35d1513 100644 (file)
@@ -23,7 +23,7 @@
 
 require "filename_helper.pl";
 
-use Env qw(FEISTY_MEOW_BINARIES BUILD_TOP FEISTY_MEOW_APEX FEISTY_MEOW_LOADING_DOCK FEISTY_MEOW_SCRIPTS SHELL_DEBUG );
+use Env qw(FEISTY_MEOW_BINARIES BUILD_TOP FEISTY_MEOW_APEX FEISTY_MEOW_LOADING_DOCK FEISTY_MEOW_SCRIPTS DEBUG_FEISTY_MEOW );
 
 # 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
@@ -61,14 +61,6 @@ sub make_perl_alias {
   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.
-sub load_file_names {
-  local($path) = shift(@_);
-  opendir(that_dir, $path);
-  local(@those_files) = sort(readdir(that_dir));
-  return @those_files;
-}
-
 ##############
 
 # The "common.alias" file is used in the generated aliases file as a base
@@ -78,20 +70,20 @@ sub load_file_names {
 # loaded also.
 sub rebuild_script_aliases {
 
-  if (length($SHELL_DEBUG)) {
+  if (length($DEBUG_FEISTY_MEOW)) {
     print "rebuilding generated aliases file...\n";
   }
 
   # create our generated shells directory if it's not already.
   if ( ! -d $FEISTY_MEOW_LOADING_DOCK ) {
     mkdir $FEISTY_MEOW_LOADING_DOCK;
-    if (length($SHELL_DEBUG)) {
+    if (length($DEBUG_FEISTY_MEOW)) {
       print "made FEISTY_MEOW_LOADING_DOCK at '$FEISTY_MEOW_LOADING_DOCK'\n";
     }
   }
 
   # test if we can use color in ls...
-  $test_color=` ls --help 2>&1 | grep -i color `;
+#  $test_color=` ls --help 2>&1 | grep -i color `;
 
   # this is an array of files from which to draw alias definitions.
   @ALIAS_DEFINITION_FILES = ("$FEISTY_MEOW_SCRIPTS/core/common.alias");
@@ -100,19 +92,21 @@ sub rebuild_script_aliases {
   foreach $i (&glob_list("$FEISTY_MEOW_LOADING_DOCK/custom/*.alias")) {
     if (-f $i) { push(@ALIAS_DEFINITION_FILES, $i); }
   }
-  if (length($SHELL_DEBUG)) {
+  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($SHELL_DEBUG)) {
+  if (length($DEBUG_FEISTY_MEOW)) {
     print "writing generated aliases in $GENERATED_ALIAS_FILE...\n";
   }
 
@@ -126,11 +120,11 @@ sub rebuild_script_aliases {
   print GENOUT "## please do not edit.\n";
   print GENOUT "##\n";
 
-  if (length($test_color)) {
-    print GENOUT "export color_add=--color=auto\n";
-  } else {
-    print GENOUT "export color_add=\n";
-  }
+#  if (length($test_color)) {
+#    print GENOUT "export color_add='--color=auto'\n";
+#  } else {
+#    print GENOUT "export color_add=\n";
+#  }
 
   # plow in the full set of aliases into the file.
   foreach $i (@ALIAS_DEFINITION_FILES) {
@@ -142,7 +136,7 @@ sub rebuild_script_aliases {
 
   close GENOUT;
 
-  if (length($SHELL_DEBUG)) {
+  if (length($DEBUG_FEISTY_MEOW)) {
     print("done rebuilding generated aliases file.\n");
   }
 }
@@ -155,7 +149,7 @@ if ( ! length("$FEISTY_MEOW_LOADING_DOCK") ) {
 The FEISTY_MEOW_LOADING_DOCK variable is not defined.  This must point to\
 the location where the generated scripts are stored.  You may still need to\
 configure the feisty meow script system with something like:\
-  bash ~/feisty_meow/scripts/core/reconfigure_feisty_meow.sh\
+  bash /opt/feistymeow.org/feisty_meow/scripts/core/reconfigure_feisty_meow.sh\
 Please see http://feistymeow.org for more details.\n";
   exit 1;
 #really need to use better exit codes.
@@ -184,7 +178,7 @@ if (-d $FEISTY_MEOW_BINARIES) {
 # trash the old versions.
 unlink("$FEISTY_MEOW_LOADING_DOCK/fmc_aliases_for_scripts.sh");
 
-if (length($SHELL_DEBUG)) {
+if (length($DEBUG_FEISTY_MEOW)) {
   printf "writing $FEISTY_MEOW_LOADING_DOCK/fmc_aliases_for_scripts.sh...\n";
 }
 
@@ -192,12 +186,11 @@ if (length($SHELL_DEBUG)) {
 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 = (&load_file_names("$FEISTY_MEOW_SCRIPTS"),
-   &load_file_names("$FEISTY_MEOW_LOADING_DOCK/custom/scripts"));
+#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) {
@@ -210,39 +203,16 @@ foreach $file (@shell_files) {
       || $file =~ /\/\.\.$/
       || $file =~ /\/\.svn$/
       || $file =~ /\/\.git$/
+      || $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.
-  } 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.
-    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 {
-    # 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");
+     &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 = &load_file_names("$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;