From 8be0f40c86d29c752c2e4829022b512344c5f370 Mon Sep 17 00:00:00 2001 From: Chris Koeritz Date: Thu, 26 Jan 2012 13:06:55 -0500 Subject: [PATCH] couple of cleanups to remove old aliases, start up better. --- scripts/core/common_aliases.txt | 127 +++++++++++++++++---------- scripts/core/functions.sh | 71 +++++++++++++++ scripts/core/unter_alia.sh | 33 +++---- scripts/generator/build_variables.sh | 6 +- 4 files changed, 173 insertions(+), 64 deletions(-) diff --git a/scripts/core/common_aliases.txt b/scripts/core/common_aliases.txt index e3886e73..b3b738ef 100644 --- a/scripts/core/common_aliases.txt +++ b/scripts/core/common_aliases.txt @@ -1,48 +1,83 @@ -# common aliases are stored here. these should work to some degree in -# all environments, given some twiddling of characters to make the lines -# appropriate for the shell. +# common aliases for feisty_meow are located here. +# most should work in any bash environment. -aliases=alias -#arch='if [ -f /bin/arch ]; then /bin/arch; else uname -m; fi' -cd..='\cd ..' -cd...='\cd ../..' -cd....='\cd ../../..' -cd.....='\cd ../../../..' -cdt='\cd /' -copy='\cp -i -v ' -cp='\cp -i -v ' -cvs='perl $SHELLDIR/rev_control/cvs_fix.pl' -del='perl $SHELLDIR/files/safedel.pl' -deltree='perl $SHELLDIR/files/safedel.pl' -df='\df -m' -dir='perl $SHELLDIR/files/summing_dir.pl' -#du='\du --exclude=.svn -h' # doesn't work on mac. -du='\du -h' -erase='perl $SHELLDIR/files/safedel.pl' -l='\ls -FC $color_add' -ls='\ls -FC $color_add' -lsd='ls -l' -md='mkdir' -mo='less' -more='less' -move='mv -i -v ' -mplayer='\mplayer -ao arts' -mv='\mv -i -v ' -np='gvim' -path='echo $PATH' -play='bash $SHELLDIR/multimedia/sound_play.sh' -rebu='make REBUILD=t' -rmdir='perl $SHELLDIR/files/zapdirs.pl' -rd='perl $SHELLDIR/files/zapdirs.pl' +alias aliases=alias +#alias arch='if [ -f /bin/arch ]; then /bin/arch; else uname -m; fi' +alias cd..='\cd ..' +alias cd...='\cd ../..' +alias cd....='\cd ../../..' +alias cd.....='\cd ../../../..' +alias copy='\cp -i -v ' +alias cp='\cp -i -v ' +alias cvs='perl $SHELLDIR/rev_control/cvs_fix.pl' +alias del='perl $SHELLDIR/files/safedel.pl' +alias deltree='perl $SHELLDIR/files/safedel.pl' +alias df='\df -m' +alias dir='perl $SHELLDIR/files/summing_dir.pl' +alias du='\du -h' +alias dvd_rip='vobcopy -m' +alias erase='perl $SHELLDIR/files/safedel.pl' +alias l='\ls -FC $color_add' +alias ls='\ls -FC $color_add' +alias lsd='ls -l' +alias md='mkdir' +alias mo='less' +alias more='less' +alias move='mv -i -v ' +alias mplayer='\mplayer -ao arts' +alias mv='\mv -i -v ' +alias np='gvim' +alias path='echo $PATH' +alias play='bash $SHELLDIR/multimedia/sound_play.sh' +alias rmdir='perl $SHELLDIR/files/zapdirs.pl' +alias rd='perl $SHELLDIR/files/zapdirs.pl' #regen-- this might be better as a function. -regenerate='bash $SHELLDIR/core/bootstrap_shells.sh ; perl $SHELLDIR/core/generate_aliases.pl ; echo ; nechung' -reroot='chown -R root:root /root' -dvd_rip='vobcopy -m' -rm='perl $SHELLDIR/files/safedel.pl' -ren='\mv -v -i ' -up='cd ..' -whence=which -why='echo just because.' -xterm='xterm $myxtermflags' -xtroff='xtroff $myxflags' -# don't add blank lines or they are interpreted as needing treatment. +alias regenerate='bash $SHELLDIR/core/bootstrap_shells.sh ; perl $SHELLDIR/core/generate_aliases.pl ; echo ; nechung' +alias reroot='chown -R root:root /root' +alias rm='perl $SHELLDIR/files/safedel.pl' +alias ren='\mv -v -i ' +alias up='cd ..' +alias whence=which +alias xterm='xterm $myxtermflags' +alias xtroff='xtroff $myxflags' + +#hmmm: move these to the custom area? +# Standard CAK aliases that add to or extend Unix commands. +alias bye='. $SHELLDIR/core/goodbye.sh' +alias calc='kcalc' +alias cls='clear_colormap; clear' +if [ "$OS" != "Windows_NT" ]; then + if [ -n "$IS_DARWIN" ]; then + # case for mac os x. + alias exp='open' + elif [ ! -z "$(which nautilus)" ]; then + alias exp='nautilus' + else +#check if konqueror exists also? fall back to uhhh midnight cmdr? + alias exp='konqueror' + fi +else + alias explorer="bash $SHELLDIR/winders/exploder.sh" + alias exp="bash $SHELLDIR/winders/exploder.sh" +fi +alias pwd="/bin/pwd|sed -e 's/^\/home\/$USER/~/'" +alias notepad='gedit' +if [ "$OS" = "Windows_NT" ]; then + # aliases we only use on the winders side. + alias vi='gvim' +fi +alias whereami='echo whoa dude, try not to think about it...' +alias why='echo just because.' + +# call the generated aliases file, if it exists. +if [ -f "$GENERADIR/p_alias.sh" ]; then + if [ ! -z "$SHELL_DEBUG" ]; then echo launching generated aliases.; fi + source $GENERADIR/p_alias.sh + if [ ! -z "$SHELL_DEBUG" ]; then echo done with generated aliases.; fi +fi + +# remove the fredization macro if it was defined, helping to avoid running +# the shell scripts twice for users like root that don't always load this +# stuff. +unalias fredme >/dev/null 2>&1 + diff --git a/scripts/core/functions.sh b/scripts/core/functions.sh index 8c9cc2d6..45cc1b88 100644 --- a/scripts/core/functions.sh +++ b/scripts/core/functions.sh @@ -103,5 +103,76 @@ function dos_to_msys_path() { echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\([a-zA-Z]\):\/\(.*\)/\/\1\/\2/' } +# su function: makes su perform a login. +# for some OSes, this transfers the X authority information to the new login. +function su { + # decide if we think this is debian or ubuntu or a variant. + DEBIAN_LIKE=$(if [ ! -z "$(grep -i debian /etc/issue)" \ + -o ! -z "$(grep -i ubuntu /etc/issue)" ]; then echo 1; else echo 0; fi) + + if [ $DEBIAN_LIKE -eq 1 ]; then + # debian currently requires the full version which imports X authority + # information for su. + + # get the x authority info for our current user. + source $SHELLDIR/x_win/get_x_auth.sh + + if [ -z "$X_auth_info" ]; then + # if there's no authentication info to pass along, we just do a normal su. + /bin/su -l $* + else + # under X, we update the new login's authority info with the previous + # user's info. + (unset XAUTHORITY; /bin/su -l $* -c "$X_auth_info ; export DISPLAY=$DISPLAY ; bash") + fi + else + # non-debian supposedly doesn't need the extra overhead any more. + # or at least suse doesn't, which is the other one we've tested on. + /bin/su -l $* + fi + + # relabel the console after returning. + bash $SHELLDIR/tty/label_terminal_with_infos.sh +} + +# sudo function wraps the normal sudo by ensuring we replace the terminal +# label if they're doing an su with the sudo. +function sudo { + local first_command="$1" + /usr/bin/sudo $* + if [ "$first_command" == "su" ]; then + # yep, they were doing an su, but they're back now. + bash $SHELLDIR/tty/label_terminal_with_infos.sh + fi +} + +# buntar is a long needed uncompressing macro that feeds into tar -x. +# it takes a list of bz2 file names and extracts their contents into +# sequentially numbered directories. +function buntar { + index=1 + for i in $*; do + mkdir buntar_$index + pushd buntar_$index &>/dev/null + file=$i + # if the filename has no directory component, we will assume it used to + # be above our unzipping directory here. + if [ "$(basename $file)" = $file ]; then + file=../$file + fi + bunzip2 -d -c $file | tar -xf - + popd &>/dev/null + index=$(expr $index + 1) + done +} + +# trashes the .#blah files that cvs and svn leave behind when finding conflicts. +# this kind of assumes you've already checked them for any salient facts. +function clean_cvs_junk { + for i in $*; do + find $i -follow -type f -iname ".#*" -exec perl $SHELLDIR/files/safedel.pl {} ";" + done +} + if [ ! -z "$SHELL_DEBUG" ]; then echo function definitions end....; fi diff --git a/scripts/core/unter_alia.sh b/scripts/core/unter_alia.sh index a0c14974..ed3e32eb 100644 --- a/scripts/core/unter_alia.sh +++ b/scripts/core/unter_alia.sh @@ -29,11 +29,11 @@ if [ ! -d $GENERADIR ]; then mkdir $GENERADIR; fi test_color=$(ls --help 2>&1 | grep -i color) export COMMON_FILES=$SHELLDIR/core/common_aliases.txt -if [ -f "$SHELLDIR/custom/c_common_aliases.txt" ]; then - # if the custom aliases file exists, add it to the list. - export COMMON_FILES="$COMMON_FILES $SHELLDIR/custom/c_common_aliases.txt" -fi -#echo common files is... $COMMON_FILES +# if custom aliases files exist, add them to the list. +for i in "$SHELLDIR/custom/*.txt"; do + COMMON_FILES+=" $i" +done +echo -e "Found alias files:\n$COMMON_FILES" # write the aliases for sh and bash scripts. @@ -56,16 +56,19 @@ fi # we process the alias file to add the word "alias" to the first of every # line that's not a comment. -cat $COMMON_FILES | sed -e 's/^\([^#]\)/alias \1/' >>$ALIASES_FILE -echo "##" >>$ALIASES_FILE -echo "## now including shell specific additions..." >>$ALIASES_FILE -echo "##" >>$ALIASES_FILE -# then just dump the sh specific alias stuff into the file. -cat $SHELLDIR/core/sh_aliases.txt >>$ALIASES_FILE +#cat $COMMON_FILES | sed -e 's/^\([^#]\)/alias \1/' >>$ALIASES_FILE +#nope: we no longer do that. + +cat $COMMON_FILES >>$ALIASES_FILE + +#echo "##" >>$ALIASES_FILE +#echo "## now including shell specific additions..." >>$ALIASES_FILE +#echo "##" >>$ALIASES_FILE +## then just dump the sh specific alias stuff into the file. +#cat $SHELLDIR/core/sh_aliases.txt >>$ALIASES_FILE # add in customized sh aliases if they exist. -if [ -f "$SHELLDIR/custom/c_sh_aliases.txt" ]; then - cat $SHELLDIR/custom/c_sh_aliases.txt >>$ALIASES_FILE -fi +#if [ -f "$SHELLDIR/custom/c_sh_aliases.txt" ]; then +# cat $SHELLDIR/custom/c_sh_aliases.txt >>$ALIASES_FILE +#fi -exit 0; diff --git a/scripts/generator/build_variables.sh b/scripts/generator/build_variables.sh index ff710d98..bed96829 100644 --- a/scripts/generator/build_variables.sh +++ b/scripts/generator/build_variables.sh @@ -84,15 +84,15 @@ if [ ! -z "$PARM_1" ]; then # use the first real parameter since this is probably the 'source' version. export BUILD_SCRIPTS_DIR="$(dirname "$PARM_1")" THIS_TOOL_NAME="$(basename "$PARM_1")" -echo sourced version buildscriptsdir is $BUILD_SCRIPTS_DIR +#echo sourced version buildscriptsdir is $BUILD_SCRIPTS_DIR else # use the zeroth parameter, since we know nothing more about our name. export BUILD_SCRIPTS_DIR="$(dirname "$PARM_0")" THIS_TOOL_NAME="$(basename "$PARM_0")" -echo bashed version buildscriptsdir is $BUILD_SCRIPTS_DIR +#echo bashed version buildscriptsdir is $BUILD_SCRIPTS_DIR fi BUILD_SCRIPTS_DIR="$(echo $BUILD_SCRIPTS_DIR | tr '\\\\' '/' )" -echo post tr buildscriptsdir is $BUILD_SCRIPTS_DIR +#echo post tr buildscriptsdir is $BUILD_SCRIPTS_DIR # figure out the other paths based on where we found this script. export BUILDING_HIERARCHY="$(echo "$BUILD_SCRIPTS_DIR" | sed -e 's/\(.*\)\/[^\/]*/\1/')" -- 2.34.1