Merge branch 'dev' of feistymeow.org:feisty_meow into dev
[feisty_meow.git] / scripts / core / generate_aliases.pl
index fa4cc24ac77f5f8500567af1c589d551d2f1c569..45ff8118cd474afdaae827155fe7a56fb58db49e 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,7 +92,7 @@ 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";
     foreach $i (@ALIAS_DEFINITION_FILES) {
       local $base_of_dir = &basename(&dirname($i));
@@ -112,7 +104,7 @@ sub rebuild_script_aliases {
   # 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 +118,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 +134,7 @@ sub rebuild_script_aliases {
 
   close GENOUT;
 
-  if (length($SHELL_DEBUG)) {
+  if (length($DEBUG_FEISTY_MEOW)) {
     print("done rebuilding generated aliases file.\n");
   }
 }
@@ -184,7 +176,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 +184,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,49 +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" && ! $file =~ /^.*\/customize\/.*$/) {
-    # 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.
-#hmmm: would be nice to have this name in a symbol somewhere instead of having "customize" everywhere.
-    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");
-    }
+     &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;