gets rid of double slashes in aliases
[feisty_meow.git] / scripts / core / generate_aliases.pl
index 2f87acc009d346275454980d89611a8b06db34b1..99f17cfd7e906137c6e257ce60a7024447889f9a 100644 (file)
@@ -43,11 +43,10 @@ sub make_alias {
 sub make_bash_alias {
   local($aliasname) = shift(@_);
   local($full_alias) = $aliasname;
+#print "full alias is $full_alias\n";
   $aliasname =~ s/^.*\/([^\/]*)/\1/;
 #print "alias became $aliasname\n";
-  local($source_dir) = shift(@_);
-#print "bash alias is $aliasname, dir is $source_dir\n";
-  print she "define_yeti_alias $aliasname=\"bash $source_dir/$full_alias.sh\"\n";
+  print she "define_yeti_alias $aliasname=\"bash $full_alias.sh\"\n";
 }
 
 # makes an alias for a perl script given the alias name.
@@ -56,17 +55,7 @@ sub make_perl_alias {
   local($full_alias) = $aliasname;
   $aliasname =~ s/^.*\/([^\/]*)/\1/;
 #print "alias became $aliasname\n";
-  local($source_dir) = shift(@_);
-#print "perl alias is $aliasname, dir is $source_dir\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.
-sub load_file_names {
-  local($path) = shift(@_);
-  opendir(that_dir, $path);
-  local(@those_files) = sort(readdir(that_dir));
-  return @those_files;
+  print she "define_yeti_alias $aliasname=\"perl $full_alias.pl\"\n";
 }
 
 ##############
@@ -102,11 +91,13 @@ sub rebuild_script_aliases {
   }
   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.
@@ -155,7 +146,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.
@@ -192,12 +183,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 = (&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,51 +200,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 = &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;