home *** CD-ROM | disk | FTP | other *** search
- From: daniel@island.COM (Dan Smith)
- Newsgroups: alt.sources
- Subject: Directory Travel Aliases/part01
- Message-ID: <3941@island.COM>
- Date: 19 Apr 91 03:48:15 GMT
-
-
- Submitted by: daniel@island.com
- Archive-name: Directory Travel Aliases/part01
-
- Directory/Travel aliases for csh, version 1.0 for net.consumption
-
- Daniel Smith, daniel@island.com, April 1991
-
- A while back I mentioned I would post my aliases, I'm finally
- getting to it. It's been that kind of year :-)
-
- These aliases grow out of having used csh over the last 8
- years or so. I promised I would send them to someone who had written
- me, but I've lost his email. I figure others may be interested, hence
- the post.
-
- I like to push and pop directories a lot, and I use the idea
- of creating an alias to source a csh script fragment a lot. Hope this
- is useful to some of you out there. Let me know of any improvements
- you may have.
-
- Move the ALIASES file to some name you like, and have your
- .cshrc file source it.
-
- A couple of the external scripts want to have grabchars handy.
- If you do not have this program, contact me (or any well-kept comp.sources.misc
- archive), and I'll send it to you.
-
- If anyone has trouble with this becuase of lines being longer
- than 80 characters, please let me know, and I will mail you a
- uuencoded version of this shar.
-
- Daniel
-
-
- ---- Cut Here and unpack ----
- #!/bin/sh
- # This is Directory Travel Aliases, a shell archive (shar 3.10)
- # made 04/19/1991 03:41 UTC by daniel@bermuda
- # Source directory /usr/bermuda/people/daniel/lib/travel
- #
- # existing files will NOT be overwritten
- #
- # This shar contains:
- # length mode name
- # ------ ---------- ------------------------------------------
- # 1087 -rw-r--r-- README
- # 3423 -rwxr-xr-x ALIASES
- # 467 -rwxr-xr-x cdg_script
- # 351 -rwxr-xr-x cdp_script
- # 936 -rwxr-xr-x d_csh
- # 76 -rwxr-xr-x long_prompt
- # 221 -rwxr-xr-x p_csh
- # 66 -rwxr-xr-x popall_csh
- # 432 -rwxr-xr-x ptree
- # 444 -rwxr-xr-x sample_localrc
- # 111 -rwxr-xr-x short_prompt
- # 444 -rwxr-xr-x tg_csh
- #
- touch 2>&1 | fgrep '[-amc]' > /tmp/s3_touch$$
- if [ -s /tmp/s3_touch$$ ]
- then
- TOUCH=can
- else
- TOUCH=cannot
- fi
- rm -f /tmp/s3_touch$$
- # ============= README ==============
- if test -f README; then echo "File README exists"; else
- echo "x - extracting README (Text)"
- sed 's/^X//' << 'irtravel' > README &&
- X
- XDirectory/Travel aliases for csh, version 1.0 for net.consumption
- X
- X Daniel Smith, daniel@island.com, April 1991
- X
- X A while back I mentioned I would post my aliases, I'm finally
- Xgetting to it. It's been that kind of year :-)
- X
- X These aliases grow out of having used csh over the last 8
- Xyears or so. I promised I would send them to someone who had written
- Xme, but I've lost his email. I figure others may be interested, hence
- Xthe post.
- X
- X I like to push and pop directories a lot, and I use the idea
- Xof creating an alias to source a csh script fragment a lot. Hope this
- Xis useful to some of you out there. Let me know of any improvements
- Xyou may have.
- X
- X Move the ALIASES file to some name you like, and have your
- X.cshrc file source it.
- X
- X A couple of the external scripts want to have grabchars handy.
- XIf you do not have this program, contact me (or any well-kept comp.sources.misc
- Xarchive), and I'll send it to you.
- X
- X If anyone has trouble with this becuase of lines being longer
- Xthan 80 characters, please let me know, and I will mail you a
- Xuuencoded version of this shar.
- X
- X Daniel
- irtravel
- chmod 0644 README || echo "restore of README fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418203491 README
- fi
- fi
- # ============= ALIASES ==============
- if test -f ALIASES; then echo "File ALIASES exists"; else
- echo "x - extracting ALIASES (Text)"
- sed 's/^X//' << 'irtravel' > ALIASES &&
- X# cshrc.travel
- X#
- X# aliases for setting the prompt and getting around
- X#
- X# fillstr is a var used in prompt, contains "(level)" when dirs are pushed
- X
- X# version 1.0 for Net.Consumption
- X# Daniel Smith, daniel@island.com, 3/15/91
- X
- Xset fillstr=""
- Xset dnum=""
- Xset end=":-)"
- Xset bin_dir=~/bin
- Xset lib_dir=~/lib
- X
- X# the ~/.travel file should be trimmed regularly, it's used by "tg"
- Xtouch ~/.travel
- Xalias record_dir '(echo "\!* $cwd" >> ~/.travel &)'
- X
- X# my standard prompt
- Xalias prompt_set 'set prompt_head=$cwd:h;set prompt="$HOST"":$prompt_head:t/$cwd:t$fillstr $end "'
- X
- X# set $old so we can bounce back and forth, update prompt
- X# if there is a .localrc, source it...
- Xalias cd 'set old=$cwd; chdir \!*; record_dir cd; prompt_set; if -e .localrc source .localrc'
- Xalias cdl 'cd \!*; /bin/ls'
- X
- X# run a command elsewhere in the filename space and come right back
- Xalias ce 'p \!:1 ; \!:2-$ ; pp'
- X
- X# this will let you do things like "...cdp us loca bi" for /usr/local/bin
- X# (cdp - full path, cdg - cd by grep)
- Xalias cdp 'set cd_attempt=(\!*); source $bin_dir/cdp_script'
- X
- X# like the above, but search starts at $cwd
- Xalias cdg 'set cd_attempt=(\!*); source $bin_dir/cdg_script'
- X
- Xalias b 'set back=$old; cd $back; pwd'
- Xalias bl 'b; ls'
- Xalias c. 'cdl ..'
- Xalias c.. 'cdl ../..'
- X
- X# hey! go to the directory that was last on the last command line...
- Xalias cl 'cd \!-1:$'
- X
- X# without args, will show dirstack. with args, greps dirstack
- X# this requires grabchars, and gives an easy means of hopping around
- X# the directory stack
- Xalias d 'set cd_attempt=(\!*); source $bin_dir/d_csh'
- X
- X
- X# used by push and pop aliases
- Xalias dir_number 'set fillstr; set dnum=`dirs`; shift dnum; if ($#dnum >= 1) set fillstr=" ($#dnum)"'
- X
- X# push and pop with informative prompt handling :-)
- Xalias p 'set cd_attempt=(\!*); source $bin_dir/p_csh'
- Xalias pp 'set o2=$cwd; popd; set old=$o2; dir_number; record_dir pp; prompt_set'
- X
- X# push all of the current subdirs seen by "*/"
- Xalias pa 'set cd_attempt=($cwd/*/); source $bin_dir/p_csh'
- X
- X# push and ls, arg is optional
- Xalias pl 'p \!*; l'
- X
- X# hey! push the dir we were just at
- Xalias po 'p $old'
- X
- X# pop and ls
- Xalias ppl 'pp; l'
- X
- Xalias slp source $lib_dir/long_prompt
- Xalias ssp source $lib_dir/short_prompt
- X
- X# change by directory? I forget now what cbd means, but the script is
- X# fun so check it out
- Xalias cbd 'source $bin_dir/cd_csh'
- X
- X# PAGER, as in "less" or "more"...review your tracks...
- Xalias tt '$PAGER ~/.travel'
- X
- X# okay, this is why we have the ~/.travel file, so we can come back to
- X# it with this alias and get to a directory that we only "sort of"
- X# remember the name to...
- Xalias tg 'set cd_attempt=(\!*); source $bin_dir/tg_csh'
- X
- Xalias .. cd ..
- Xalias ... cd ../..
- X
- X# beware, this is powerful. What this does is push *every* directory
- X# in a subtree..good for those cleanup runs...
- Xalias fed 'source $bin_dir/ptree'
- X
- X# ...and to get back out in a hurry
- Xalias popall 'source $bin_dir/popall_csh'
- X
- X# I use this a lot, seems to be a common sequence...
- Xalias newdir 'mkdir \!* && cd \!* && pwd'
- X
- X
- X# push a directory, find the file you want, then copy it back to where you
- X# came from... when you popd, the copy will be there...
- X
- Xalias cpb 'set bdir=`dirs`; /bin/cp -i \!* $bdir[2]'
- Xalias mvb 'set bdir=`dirs`; /bin/mv -i \!* $bdir[2]'
- Xalias lnb 'set bdir=`dirs`; ln -s $cwd/\!* $bdir[2]; echo $bdir[2]/\!*'
- Xalias lsb 'set bdir=`dirs`; echo "in $bdir[2]..."; /bin/ls -F $bdir[2]/\!* | pr -l20 -4 | $PAGER'
- irtravel
- chmod 0755 ALIASES || echo "restore of ALIASES fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418202791 ALIASES
- fi
- fi
- # ============= cdg_script ==============
- if test -f cdg_script; then echo "File cdg_script exists"; else
- echo "x - extracting cdg_script (Text)"
- sed 's/^X//' << 'irtravel' > cdg_script &&
- X#!/bin/echo sorry,try:source
- Xset cd_str=($cd_attempt)
- Xset starting_point=$cwd
- Xset slash="/"
- Xif ( "$cd_str[1]" == "$slash" ) then
- X chdir /
- X shift cd_str
- Xendif
- Xwhile ($#cd_str)
- X if ($#cd_str > 1) then
- X cd *$cd_str[1]*/ >& /dev/null && echo cd to \"$cwd\"... && set success
- X else
- X set parent_point=$cwd
- X chdir $starting_point
- X p $parent_point/*$cd_str[1]*/ && echo pushed \"$cwd\"...
- X endif
- X shift cd_str
- Xend
- Xcd .
- X#
- X# cdg script, August 10, 1989 by island!daniel
- X#
- irtravel
- chmod 0755 cdg_script || echo "restore of cdg_script fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418202791 cdg_script
- fi
- fi
- # ============= cdp_script ==============
- if test -f cdp_script; then echo "File cdp_script exists"; else
- echo "x - extracting cdp_script (Text)"
- sed 's/^X//' << 'irtravel' > cdp_script &&
- Xset cdstr=""
- Xwhile ($#cd_attempt)
- X set cdstr="$cdstr/*$cd_attempt[1]*"
- X shift cd_attempt
- X echo $cdstr/ && cd $cdstr/
- Xend
- X#
- X# cdp script, July 12, by unicom!daniel
- X#
- X# for full path expansion...make an alias that sets the
- X# variable $cd_attempt, and source this script like this:
- X#
- X# alias cdp 'set cd_attempt=(\!*); source /usr/public/bin/cdp_script'
- irtravel
- chmod 0755 cdp_script || echo "restore of cdp_script fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418202791 cdp_script
- fi
- fi
- # ============= d_csh ==============
- if test -f d_csh; then echo "File d_csh exists"; else
- echo "x - extracting d_csh (Text)"
- sed 's/^X//' << 'irtravel' > d_csh &&
- Xif ($#cd_attempt >= 1) then
- X set cd_str
- X while ($#cd_attempt)
- X set cd_str="${cd_str}.*${cd_attempt[1]}.*"
- X shift cd_attempt
- X end
- X set our_dirs=`echo $dnum | tr " " "\012" | grep "$cd_str"`
- X echo $our_dirs | tr " " "\012" | cat -n
- X if ($#our_dirs == 1) then
- X echo going to $our_dirs...
- X set cd_me=`echo $dnum | tr " " "\012" | cat -n | grep "$cd_str" | awk ' { print $1 }'`
- X p +${cd_me}
- X goto all_done
- X endif
- X set cd_me=`grabchars -t 10 -d none -b -r -c'[0-9]' -q 'which one to go to? '`
- X echo ""
- X if ($cd_me =~ 0) then
- X p `grabchars -t 10 -d none -b -r -n 80 -q 'which dir? '`
- X else if ($cd_me !~ none) then
- X cd $our_dirs[$cd_me]
- X endif
- Xelse
- X echo $dnum | tr " " "\012" | cat -n
- X set push_me=`grabchars -t 10 -d none -b -r -c'[0-9]' -q 'which one to go to? '`
- X echo ""
- X if ($push_me =~ 0) then
- X p `grabchars -t 10 -d none -b -r -n 80 -q 'which dir? '`
- X else if ($push_me !~ none) then
- X p +${push_me}
- X endif
- Xendif
- X
- Xall_done:
- irtravel
- chmod 0755 d_csh || echo "restore of d_csh fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418202791 d_csh
- fi
- fi
- # ============= long_prompt ==============
- if test -f long_prompt; then echo "File long_prompt exists"; else
- echo "x - extracting long_prompt (Text)"
- sed 's/^X//' << 'irtravel' > long_prompt &&
- Xalias prompt_set 'set prompt="\! $HOST"":${cwd}$fillstr $end "'
- Xprompt_set
- irtravel
- chmod 0755 long_prompt || echo "restore of long_prompt fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418202791 long_prompt
- fi
- fi
- # ============= p_csh ==============
- if test -f p_csh; then echo "File p_csh exists"; else
- echo "x - extracting p_csh (Text)"
- sed 's/^X//' << 'irtravel' > p_csh &&
- X#!/bin/echo sorry,try:source
- Xif ($#cd_attempt == 0) set cd_attempt=""
- Xwhile ($#cd_attempt)
- X set o2=$cwd
- X pushd $cd_attempt[1] > /dev/null
- X echo $cwd
- X set old=$o2
- X dir_number
- X record_dir p
- X shift cd_attempt
- Xend
- Xprompt_set
- irtravel
- chmod 0755 p_csh || echo "restore of p_csh fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418202791 p_csh
- fi
- fi
- # ============= popall_csh ==============
- if test -f popall_csh; then echo "File popall_csh exists"; else
- echo "x - extracting popall_csh (Text)"
- sed 's/^X//' << 'irtravel' > popall_csh &&
- X@ looptimes=$#dnum
- Xwhile ( $looptimes > 0)
- X pp
- X @ looptimes--
- Xend
- irtravel
- chmod 0755 popall_csh || echo "restore of popall_csh fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418202791 popall_csh
- fi
- fi
- # ============= ptree ==============
- if test -f ptree; then echo "File ptree exists"; else
- echo "x - extracting ptree (Text)"
- sed 's/^X//' << 'irtravel' > ptree &&
- Xecho looking at directories to push...
- Xset savecdpath=($cdpath)
- Xset right_here=`pwd` # $cwd sometimes freaks out here...
- Xset cdpath=( . .. ../.. ../../.. ../../../../..)
- Xset dirs_to_push=`find $right_here -type d -print | tee /dev/tty`
- Xif ($#dirs_to_push) then
- X shift dirs_to_push # get rid of current directory
- X while ($#dirs_to_push)
- X p $dirs_to_push[1]
- X shift dirs_to_push
- X end
- Xendif
- Xset cdpath=($savecdpath)
- Xunset savecdpath
- irtravel
- chmod 0755 ptree || echo "restore of ptree fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418202791 ptree
- fi
- fi
- # ============= sample_localrc ==============
- if test -f sample_localrc; then echo "File sample_localrc exists"; else
- echo "x - extracting sample_localrc (Text)"
- sed 's/^X//' << 'irtravel' > sample_localrc &&
- X#
- X# this is a sample ~/.localrc
- X#
- X# the idea for this particular one is that when you cd to a directory
- X# full of sound files, some handy aliases are set up for you. You
- X# can make anything you want to have happen fire off just by cd'ing
- X# to a directory...
- X@
- Xset verbose
- Xalias play 'cat \!* > /dev/audio'
- Xalias hrm 'hrm -f \!:1 \!:2-$ > /dev/audio'
- Xalias exp 'exp -f \!:1 \!:2-$ > /dev/audio'
- Xalias rrev 'rrev \!* > /dev/audio'
- Xunset verbose
- irtravel
- chmod 0755 sample_localrc || echo "restore of sample_localrc fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418203191 sample_localrc
- fi
- fi
- # ============= short_prompt ==============
- if test -f short_prompt; then echo "File short_prompt exists"; else
- echo "x - extracting short_prompt (Text)"
- sed 's/^X//' << 'irtravel' > short_prompt &&
- Xalias prompt_set 'set prompt_head=$cwd:h;set prompt="$HOST"":$prompt_head:t/$cwd:t$fillstr $end "'
- Xprompt_set
- irtravel
- chmod 0755 short_prompt || echo "restore of short_prompt fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418202791 short_prompt
- fi
- fi
- # ============= tg_csh ==============
- if test -f tg_csh; then echo "File tg_csh exists"; else
- echo "x - extracting tg_csh (Text)"
- sed 's/^X//' << 'irtravel' > tg_csh &&
- X@ num_lines=`grep $cd_attempt ~/.travel | head -20 | awk ' { print $2 } ' | sort -u | cat -n | tee ~/.cd_attempt | tee /dev/tty | wc -l`
- Xif ($num_lines < 10) then
- X set push_me=`grabchars -t 10 -d none -b -r -c'[0-9]' -q 'which one to go to? '`
- Xelse
- X set push_me=`grabchars -n 2 -t 10 -d none -b -r -c'[0-9]' -q 'which one to go to? '`
- Xendif
- Xecho ""
- Xif ($push_me !~ none) then
- X p `sed -n ${push_me}p ~/.cd_attempt | awk ' { print $2 }'`
- Xendif
- irtravel
- chmod 0755 tg_csh || echo "restore of tg_csh fails"
- if [ $TOUCH = can ]
- then
- touch -am 0418202791 tg_csh
- fi
- fi
- exit 0
- --
- daniel@island.com Daniel Smith, Island Graphics, (415) 491 0765 x 250(w)
- daniel@world.std.com 4000 CivicCenterDrive SanRafael MarinCounty CA 94903
- dansmith@well.sf.ca.us Fax: 491 0402 Disclaimer: Hey, I wrote it, not IG!
- falling/yes I'm falling/and she keeps calling/me back again - IJSaF, Beatles
-