#
# 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
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
#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.
#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.
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...
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.
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.
close GENOUT;
if (length($SHELL_DEBUG)) {
- print("done rebuiling generated aliases file.\n");
+ print("done rebuilding generated aliases file.\n");
}
}
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.
}
##############
-# 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\"/*");
}
# 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) {
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.