Personal linux shell work environment
Revisión | cfe1513f45cfc433f8a03b61196cb98b35fa4bc6 (tree) |
---|---|
Tiempo | 2023-09-22 20:58:33 |
Autor | Antoon Pardon <antoon.pardon@vub....> |
Commiter | Antoon Pardon |
Great renaming
@@ -3,14 +3,21 @@ | ||
3 | 3 | set -e |
4 | 4 | |
5 | 5 | catch () { |
6 | - echo "unexpected failure during installation" | |
7 | - echo "command '$BASH_COMMAND' failed" | |
8 | - rm $BASHRCHEADFILE | |
6 | + echo "unexpected failure during installation" | |
7 | + echo "command '$BASH_COMMAND' failed" | |
8 | + rm $BASHRCHEADFILE | |
9 | 9 | } |
10 | 10 | |
11 | 11 | trap "catch" ERR |
12 | 12 | |
13 | -FILESTOINSTALL="localrc screen screenrc shrc su vi wsh wshrc xsh" | |
13 | +if [ "${1:-NONE}" = '-f' ] | |
14 | +then | |
15 | + FORCE=ON | |
16 | +else | |
17 | + FORCE=OFF | |
18 | +fi | |
19 | + | |
20 | +FILESTOINSTALL="local-startup local-login screen screenrc shell-startup shell-login su vi wsh screen-login xsh" | |
14 | 21 | |
15 | 22 | TMPDIR=/tmp/$USER |
16 | 23 | BASHRCHEADFILE=$TMPDIR/bashrchead.$$ |
@@ -51,10 +58,11 @@ | ||
51 | 58 | |
52 | 59 | echo installing in $DESTINATION |
53 | 60 | |
54 | -if ! mkdir ${DESTINATION} | |
61 | +mkdir ${DESTINATION} 2> /dev/null || true | |
62 | +if ! touch ${DESTINATION}/vi | |
55 | 63 | then |
56 | - echo "Can't install wsh as ${HANDLE}" | |
57 | - exit 1 | |
64 | + echo Unable to install | |
65 | + exit 2 | |
58 | 66 | fi |
59 | 67 | |
60 | 68 | for file in $FILESTOINSTALL |
@@ -67,8 +75,20 @@ | ||
67 | 75 | chmod u+x ${DESTINATION}/$file |
68 | 76 | done |
69 | 77 | |
70 | -LOCALRC=$(hostname)rc | |
71 | -cp ${DESTINATION}/localrc ${DESTINATION}/${LOCALRC} | |
78 | +LOCAL_STARTUP=$(hostname)-startup | |
79 | +LOCAL_LOGIN=$(hostname)-login | |
80 | +if [ ! -f ${DESTINATION}/${LOCAL_STARTUP} ] | |
81 | +then | |
82 | + cp ${DESTINATION}/local-startup ${DESTINATION}/${LOCAL_STARTUP} | |
83 | +else | |
84 | + echo Already ${DESTINATION}/${LOCAL_STARTUP} present | |
85 | +fi | |
86 | +if [ ! -f ${DESTINATION}/${LOCAL_LOGIN} ] | |
87 | +then | |
88 | + cp ${DESTINATION}/local-login ${DESTINATION}/${LOCAL_LOGIN} | |
89 | +else | |
90 | + echo Already ${DESTINATION}/${LOCAL_LOGIN} present | |
91 | +fi | |
72 | 92 | |
73 | 93 | if [ ${PERMISION} = 'y' -o ${PERMISION} = 'Y' ] |
74 | 94 | then |
@@ -0,0 +1,5 @@ | ||
1 | + | |
2 | +#TERM=${TERM%-*} | |
3 | +#LANG=${LANG%.*}.UTF-8 | |
4 | + | |
5 | +#PATH=$PATH:$HOME/bin |
@@ -0,0 +1,5 @@ | ||
1 | + | |
2 | + | |
3 | +alias lx='ls -xF' | |
4 | +alias ll='ls -l' | |
5 | + |
@@ -1,13 +0,0 @@ | ||
1 | - | |
2 | -#TERM=${TERM%-*} | |
3 | -#LANG=${LANG%.*}.UTF-8 | |
4 | - | |
5 | -PATHTAIL=$HOME/bin | |
6 | - | |
7 | -PS1='bash$ ' | |
8 | -cd () { | |
9 | - builtin cd "$@" | |
10 | - screen -X title $( builtin pwd ) | |
11 | -} | |
12 | - | |
13 | -screen -X title $( builtin pwd ) |
@@ -0,0 +1,3 @@ | ||
1 | +. $HOME/.%HANDLE%/shell-login | |
2 | + | |
3 | +exec $RCRT/screen -d -RR %HANDLE% |
@@ -0,0 +1,17 @@ | ||
1 | + | |
2 | +HOSTNAME=$(hostname) | |
3 | +SHELL=/bin/bash | |
4 | + | |
5 | +RCRT=${HOME}/.%HANDLE% | |
6 | +SHRC=${RCRT}/shell-startup | |
7 | + | |
8 | +LOCAL_STARTUP=${RCRT}/${HOSTNAME}-startup | |
9 | +LOCAL_LOGIN=${RCRT}/${HOSTNAME}-login | |
10 | + | |
11 | +. ${LOCAL_LOGIN} | |
12 | +. ${SHRC} | |
13 | + | |
14 | +stty erase ^H quit ^? | |
15 | +STTY=$(stty -g) | |
16 | + | |
17 | +export HOSTNAME USER PATH RCRT SHRC XTERMTITLE TITLESTACK STTY SHELL LOCAL_STARTUP LOCAL_LOGIN |
@@ -0,0 +1,104 @@ | ||
1 | +# | |
2 | +# alternative bashrc for when logining in remotely to get the same environment wherever I login. | |
3 | +# | |
4 | +# If I want to keep the same environment whenever I start a new bash shell, needs adaptions | |
5 | +# in .bashrc. Something like the following: | |
6 | +# | |
7 | +# if [ "${SHRC:-NONE}" != "NONE" ] | |
8 | +# then | |
9 | +# . "${SHRC}" | |
10 | +# return | |
11 | +# fi | |
12 | +# do the normal bashrc stuff | |
13 | +# | |
14 | + | |
15 | + | |
16 | +# localrc should at least provide PATHTAIL | |
17 | + | |
18 | +. ${LOCAL_STARTUP} | |
19 | + | |
20 | + | |
21 | +alias screen=$RCRT/screen | |
22 | +alias vi=$RCRT/vi | |
23 | +alias xsh=$RCRT/xsh | |
24 | +alias wsh=$RCRT/wsh | |
25 | +alias rst='stty $STTY' | |
26 | + | |
27 | +if [ "${XTERMTITLE:-__}" = "__" ] | |
28 | +then | |
29 | + if [ "$USER" = "root" ] | |
30 | + then | |
31 | + XTERMTITLE=$(echo root@${HOSTNAME} | tr '[:lower:]' '[:upper:]' ) | |
32 | + else | |
33 | + XTERMTITLE=${USER}@${HOSTNAME} | |
34 | + fi | |
35 | + TITLESTACK=$XTERMTITLE | |
36 | +fi | |
37 | + | |
38 | +xterm-title () { | |
39 | + if [ $# -ne 0 ] | |
40 | + then | |
41 | + XTERMTITLE="$*" | |
42 | + fi | |
43 | + echo -en "\e]0;$XTERMTITLE\a" | |
44 | +} | |
45 | + | |
46 | +push-title () { | |
47 | + TITLESTACK=$TITLESTACK:$XTERMTITLE | |
48 | + xterm-title $* | |
49 | +} | |
50 | + | |
51 | +pop-title () { | |
52 | + XTERMTITLE=${TITLESTACK##*:} | |
53 | + TITLESTACK=${TITLESTACK%:*} | |
54 | + xterm-title | |
55 | +} | |
56 | + | |
57 | +if [ "${STY:-NONE}" != "NONE" ] | |
58 | +then | |
59 | + make-screen-title () { | |
60 | + PWD=$( builtin pwd ) | |
61 | + BRANCH=$( command git branch --show-current 2> /dev/null ) | |
62 | + if [ "$BRANCH" != "" ] | |
63 | + then | |
64 | + BRANCH="[GIT] $BRANCH" | |
65 | + else | |
66 | + BRANCH=$( command hg branch 2> /dev/null ) | |
67 | + if [ "$BRANCH" != "" ] | |
68 | + then | |
69 | + BRANCH="[HG] $BRANCH" | |
70 | + fi | |
71 | + fi | |
72 | + screen -X title "$PWD $BRANCH" | |
73 | + } | |
74 | + | |
75 | + function git() { | |
76 | + command git "$@" | |
77 | + make-screen-title | |
78 | + } | |
79 | + | |
80 | + function hg() { | |
81 | + command hg "$@" | |
82 | + make-screen-title | |
83 | + } | |
84 | + | |
85 | + | |
86 | + PS1='bash$ ' | |
87 | + cd () { | |
88 | + builtin cd "$@" | |
89 | + make-screen-title | |
90 | + } | |
91 | + | |
92 | + pushd () { | |
93 | + builtin pushd "$@" | |
94 | + make-screen-title | |
95 | + } | |
96 | + | |
97 | + popd () { | |
98 | + builtin popd "$@" | |
99 | + make-screen-title | |
100 | + } | |
101 | + | |
102 | + cd . | |
103 | +fi | |
104 | + |
@@ -1,79 +0,0 @@ | ||
1 | -# | |
2 | -# alternative bashrc for when logining in remotely to get the same environment wherever I login. | |
3 | -# | |
4 | -# If I want to keep the same environment whenever I start a new bash shell, needs adaptions | |
5 | -# in .bashrc. Something like the following: | |
6 | -# | |
7 | -# if [ "${SHRC:-NONE}" != "NONE" ] | |
8 | -# then | |
9 | -# . "${SHRC}" | |
10 | -# return | |
11 | -# fi | |
12 | -# do the normal bashrc stuff | |
13 | -# | |
14 | - | |
15 | -HOSTNAME=$(hostname) | |
16 | -SHELL=/bin/bash | |
17 | - | |
18 | -RCRT=$HOME/.%HANDLE% | |
19 | -SHRC=$RCRT/shrc | |
20 | -LOCALRC=${RCRT}/${HOSTNAME}rc | |
21 | - | |
22 | -# localrc should at least provide PATHTAIL | |
23 | - | |
24 | -. ${LOCALRC} | |
25 | - | |
26 | -PATH=${PATH%%:$PATHTAIL}:$PATHTAIL | |
27 | - | |
28 | -alias su=$RCRT/su | |
29 | -alias screen=$RCRT/screen | |
30 | -alias vi=$RCRT/vi | |
31 | -alias xsh=$RCRT/xsh | |
32 | -alias wsh=$RCRT/wsh | |
33 | -alias rst='stty $STTY' | |
34 | - | |
35 | -alias lx='ls -xF' | |
36 | -alias ll='ls -l' | |
37 | - | |
38 | -if [ "${XTERMTITLE:-__}" = "__" ] | |
39 | -then | |
40 | - if [ "$USER" = "root" ] | |
41 | - then | |
42 | - XTERMTITLE=$(echo root@${HOSTNAME} | tr '[:lower:]' '[:upper:]' ) | |
43 | - else | |
44 | - XTERMTITLE=${USER}@${HOSTNAME} | |
45 | - fi | |
46 | - TITLESTACK=$XTERMTITLE | |
47 | -fi | |
48 | - | |
49 | -xterm-title () { | |
50 | - if [ $# -ne 0 ] | |
51 | - then | |
52 | - XTERMTITLE="$*" | |
53 | - fi | |
54 | - echo -en "\e]0;$XTERMTITLE\a" | |
55 | -} | |
56 | - | |
57 | -push-title () { | |
58 | - TITLESTACK=$TITLESTACK:$XTERMTITLE | |
59 | - xterm-title $* | |
60 | -} | |
61 | - | |
62 | -pop-title () { | |
63 | - XTERMTITLE=${TITLESTACK##*:} | |
64 | - TITLESTACK=${TITLESTACK%:*} | |
65 | - xterm-title | |
66 | -} | |
67 | - | |
68 | - | |
69 | -if [ "${STTY:-__}" = "__" ] | |
70 | -then | |
71 | - if tty -s | |
72 | - then | |
73 | - stty erase ^H quit ^? | |
74 | - STTY=$(stty -g) | |
75 | - xterm-title | |
76 | - fi | |
77 | -fi | |
78 | - | |
79 | -export HOSTNAME USER PATH SHRC XTERMTITLE TITLESTACK STTY SHELL |
@@ -2,6 +2,6 @@ | ||
2 | 2 | |
3 | 3 | . "${SHRC}" |
4 | 4 | |
5 | -ssh -t "$@" 'exec bash --rcfile $HOME/.%HANDLE%/wshrc'; status=$? | |
5 | +ssh -t "$@" 'exec bash --rcfile $HOME/.%HANDLE%/screen-login'; status=$? | |
6 | 6 | xterm-title |
7 | 7 | exit $status |
@@ -1,3 +0,0 @@ | ||
1 | -. $HOME/.%HANDLE%/shrc | |
2 | - | |
3 | -exec $RCRT/screen -d -RR %HANDLE% |
@@ -2,6 +2,6 @@ | ||
2 | 2 | |
3 | 3 | . "${SHRC}" |
4 | 4 | |
5 | -ssh -t "$@" 'exec bash --rcfile $HOME/.%HANDLE%/shrc'; status=$? | |
5 | +ssh -t "$@" 'exec bash --rcfile $HOME/.%HANDLE%/shell-login'; status=$? | |
6 | 6 | xterm-title |
7 | 7 | exit $status |