X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fcore%2Fvariables.sh;h=fa2f774b17a79c782c2458593d51309f8771242b;hb=4c988c3fa8a08ced9db160e5b92120a26d64d807;hp=0e4c5ac265219805c97f4dee6a7670a87a892288;hpb=f7761f64aefda43f4afec408f1cfe20afc063bc8;p=feisty_meow.git diff --git a/scripts/core/variables.sh b/scripts/core/variables.sh index 0e4c5ac2..fa2f774b 100644 --- a/scripts/core/variables.sh +++ b/scripts/core/variables.sh @@ -9,6 +9,20 @@ ############## +# this section should always run or bash will reset them on us. +# these need to be as minimal as possible. + +# sets the main prompt to a simple default, with user@host. +export PS1='\u@\h $ '; +# sets the history length and max file size so we can get some long history around here. +export HISTSIZE=1000000 +export HISTFILESIZE=8000000 + +# make the TERM available to all sub-shells. +export TERM + +############## + # we'll run this again only if we think it's needed. if [ -z "$NECHUNG" ]; then @@ -26,6 +40,22 @@ if [ -z "$NECHUNG" ]; then fi export IS_DARWIN=$(echo $OSTYPE | grep -i darwin) + ############## + + # guess the current platform. + IS_UNIX=$(uname | grep -i linux) + if [ -z "$IS_UNIX" ]; then IS_UNIX=$(uname | grep -i unix); fi + if [ -z "$IS_UNIX" ]; then IS_UNIX=$(uname | grep -i darwin); fi + IS_DOS=$(uname | grep -i ming) + if [ -z "$IS_DOS" ]; then IS_DOS=$(uname | grep -i cygwin); fi + + # now if we're stuck in DOS, try to determine the type of system. + if [ ! -z "$IS_DOS" ]; then + # IS_MSYS will be non-empty if this is the msys toolset. otherwise + # we assume that it's cygwin. + IS_MSYS=$(uname | grep -i ming) + fi + ############## # fallbacks to set crucial variables for feisty meow... @@ -36,7 +66,7 @@ if [ -z "$NECHUNG" ]; then if [ -z "$FEISTY_MEOW_DIR" ]; then if [ -d "$HOME/feisty_meow" ]; then export FEISTY_MEOW_DIR="$HOME/feisty_meow" - export FEISTY_MEOW_SCRIPTS="$FEISTY_MEOW_DIR/scripts" + export FEISTY_MEOW_SCRIPTS="$FEISTY_MEOW_SCRIPTS" fi fi @@ -51,9 +81,12 @@ if [ -z "$NECHUNG" ]; then ############## - # umask sets a permission mask for all file creations. the mask used here - # disallows writing by the "group" and "others" categories. + # umask sets a permission mask for all file creations. + # this mask disallows writes by "group" and "others". umask 022 + # this mask disallows writes by the "group" and disallows "others" completely. + #umask 027 + # ulimit sets user limits. we set the maximum allowed core dump file size # to zero, because it is obnoxious to see the core dumps from crashed # programs lying around everywhere. @@ -61,11 +94,6 @@ if [ -z "$NECHUNG" ]; then ############## - # include helpful functions. - source "$FEISTY_MEOW_SCRIPTS/core/functions.sh" - - ############## - # user variables, sort of... if they haven't given themselves a name yet, # then we will make one up for them. @@ -76,17 +104,10 @@ if [ -z "$NECHUNG" ]; then ############## - # sets the main prompt to a simple default, with user@host. - export PS1='\u@\h $ '; - - ############## - # variables for perl. - export PERLLIB - if [ "$OS" != "Windows_NT" ]; then - PERLLIB+="/usr/lib/perl5" - else + export PERLLIB+="/usr/lib/perl5" + if [ "$OS" == "Windows_NT" ]; then export PERLIO=:perlio # choose perl's IO over the ms-windows version so we can handle file # bytes properly. @@ -99,7 +120,7 @@ if [ -z "$NECHUNG" ]; then # check if there is a perl file present; add the folder to PERLLIB if so. ls $i/*.pl &>/dev/null if [ $? -eq 0 ]; then - PERLLIB+=":$i" + PERLLIB+=":$(dos_to_unix_path $i)" fi fi done @@ -108,28 +129,17 @@ if [ -z "$NECHUNG" ]; then ############## # set this so nechung can find its data. - export NECHUNG=$FEISTY_MEOW_DIR/database/fortunes.dat - - # ensure we use the right kind of rsh for security. - export CVS_RSH=ssh + export NECHUNG=$FEISTY_MEOW_DIR/infobase/fortunes.dat - # sets the history length and max file size so we can get some long history around here. - HISTSIZE=1000000 - HISTFILESIZE=2000000 + # ensure we use the right kind of secure shell. +# export CVS_RSH=$FEISTY_MEOW_SCRIPTS/security/ssh.sh +# export GIT_SSH=$FEISTY_MEOW_SCRIPTS/security/ssh.sh # the base checkout list is just to update feisty_meow. additional folder - # names can be added in your customized scripts. - export REPOSITORY_LIST="feisty_meow" - - # set the editor for subversion if it hasn't already been set. - if [ -z "$SVN_EDITOR" ]; then - #hmmm: not sure what original reason for having these different was... - if [ "$OS" == "Windows_NT" ]; then - export SVN_EDITOR=$(which gvim) - else - export SVN_EDITOR=$(which vi) - fi - fi + # names can be added in your customized scripts. the space at the end of + # this variable is important and allows users to extend the list like: + # export REPOSITORY_DIR+="muppets configs" + export REPOSITORY_LIST="feisty_meow " # initializes the feisty meow build variables, if possible. function initialize_build_variables() @@ -138,7 +148,7 @@ if [ -z "$NECHUNG" ]; then # we need to know the feisty meow directory, or we bail. if [ -z "$FEISTY_MEOW_DIR" ]; then return; fi # pick from our expected generator folder, but make sure it's there... - buildvars="$FEISTY_MEOW_DIR/scripts/generator/build_variables.sh" + buildvars="$FEISTY_MEOW_SCRIPTS/generator/build_variables.sh" if [ -f "$buildvars" ]; then # yep, that one looks good, so pull in the build defs. source "$buildvars" "$buildvars" @@ -146,27 +156,16 @@ if [ -z "$NECHUNG" ]; then fi # now augment the environment if we found our build variables. if [ $found_build_vars == 1 ]; then - # the binary directory contains handy programs we use a lot in yeti. we set up the path to it - # here based on the operating system. - # note that yeti has recently become more dependent on hoople. hoople was always the source of - # the binaries, but now we don't ship them with yeti any more as pre-built items. this reduces - # the size of the code package a lot and shortens up our possible exposure to compromised - # binaries. people can bootstrap up their own set from hoople now instead. + # the binary directory contains handy programs we use a lot. we set + # up the path to it here based on the operating system. export BINDIR=$FEISTY_MEOW_DIR/production/binaries - # add binaries created within build to the path. - # export PATH="$(dos_to_msys_path $BUILD_TOP/build/bin):$PATH" - export PATH="$BUILD_TOP/build/bin:$PATH" - + export PATH="$(dos_to_unix_path $BINDIR):$PATH" # Shared libraries are located via this variable. - # export LD_LIBRARY_PATH="$(dos_to_msys_path $LD_LIBRARY_PATH):$(dos_to_msys_path $BINDIR)" - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$BINDIR" + export LD_LIBRARY_PATH="$(dos_to_unix_path $LD_LIBRARY_PATH):$(dos_to_unix_path $BINDIR)" fi } - # load in the build environment. - initialize_build_variables - ############## # windoze specific patching up missing things. @@ -177,37 +176,40 @@ if [ -z "$NECHUNG" ]; then ############## - # pull in the custom overrides for feisty_meow scripts. this is done last, - # because we want to set everything up as expected, then let the user - # override individual variables and definitions. - for i in $FEISTY_MEOW_GENERATED/custom/*.sh; do - if [ ! -f "$i" ]; then - # skip it if it's not real. - continue; - fi - if [ ! -z "$SHELL_DEBUG" ]; then - echo "loading customization: $(basename $(dirname $i))/$(basename $i)" - fi - source $i - done + # load in the build environment. + initialize_build_variables ############## - # set the path for locating applications. this is done after any + # add to the PATH variables used for locating applications. this step is taken after any # potential overrides from the user. - #export PATH="$(dos_to_msys_path $BINDIR):$(dos_to_msys_path $FEISTY_MEOW_GENERATED):$PATH:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/lib:/usr/games:/usr/bin:." - export PATH="$BINDIR:$FEISTY_MEOW_GENERATED:$PATH:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/lib:/usr/games:/usr/bin:." + export PATH="$(dos_to_unix_path $FEISTY_MEOW_GENERATED):$PATH:$(find /usr/local/games -maxdepth 1 -type d -exec echo -n {}: ';' 2>/dev/null)/sbin" + + ############## + + # set the SHUNIT_DIR so our shunit tests can find the codebase. + export SHUNIT_DIR="$FEISTY_MEOW_SCRIPTS/shunit" ############## if [ ! -z "$SHELL_DEBUG" ]; then echo variables initialization ends....; fi - -else - # we are seeing this lot again, we believe, so make things easier for the - # rest of initialization. - export LIGHTWEIGHT_INIT=true - if [ ! -z "$SHELL_DEBUG" ]; then - echo skipped var init and put in lightweight mode due to belief in previous existence.; -fi fi +############## + +# pull in the custom overrides for feisty_meow scripts. this is done last, +# because we want to set everything up as expected, then let the user +# override individual variables and definitions. we also don't guard this +# to avoid running it again, because we don't know what mix of functions and +# aliases they want to define in there. +for i in $FEISTY_MEOW_GENERATED/custom/*.sh; do + if [ ! -f "$i" ]; then + # skip it if it's not real. + continue; + fi + if [ ! -z "$SHELL_DEBUG" ]; then + echo "loading customization: $(basename $(dirname $i))/$(basename $i)" + fi + source "$i" +done +