lilalo

annotate lm-install @ 34:34f3ce44c365

lm-install:
Инсталляция запуска l3-agent в .bash_profile
author devi
date Mon Nov 14 09:17:49 2005 +0200 (2005-11-14)
parents 4d252e7dd478
children 466bea239d25
rev   line source
devi@0 1 #!/bin/sh
devi@0 2
devi@0 3 # Use -d to deinstall labmaker
devi@0 4 # You can specify directory list to install LabMaker as command line parameters
devi@0 5 # or set it in $users_to_install variable
devi@0 6
devi@0 7 # CONFIGURABLE SECTION start
devi@0 8 #users_to_install="/home/your-user-here /root"
devi@0 9 # CONFIGURABLE SECTION stop
devi@0 10
devi@0 11 first_lab=T1
devi@0 12 editors_to_install='/bin/vi /usr/bin/vi /usr/bin/vim /bin/ee /usr/bin/ee /usr/bin/pico /usr/bin/nano /usr/local/bin/vim'
devi@0 13 temp_file=/tmp/lm-install-$$
devi@0 14 arg=$@
devi@0 15
devi@0 16 show_usage()
devi@0 17 {
devi@0 18 cat << USAGE
devi@0 19
devi@0 20 $0 [-d] path...
devi@0 21
devi@0 22 * Use -d to deinstall labmaker
devi@0 23 * You can specify directory list to install LabMaker as command line parameters
devi@0 24 or set it in \$users_to_install variable in the script
devi@0 25
devi@0 26 Example:
devi@0 27
devi@0 28 Command
devi@0 29 # $0 /root /home/user
devi@0 30 installs labmaker to /root and /home/user directories
devi@0 31
devi@0 32 USAGE
devi@0 33 }
devi@0 34
devi@0 35 install_to_profile()
devi@0 36 {
devi@0 37 profile=$1
devi@0 38 cat $profile \
devi@0 39 | sed '/LabMaker:START/,/LabMaker:END/ d' \
devi@0 40 > $temp_file
devi@0 41 cat <<'LM_bash_profile' >> $temp_file
devi@32 42 # LabMaker:START
devi@32 43 /usr/local/bin/l3-agent
devi@32 44 # LabMaker:END
devi@0 45 LM_bash_profile
devi@0 46 cat $temp_file > $profile
devi@0 47 rm $temp_file
devi@0 48 }
devi@0 49
devi@0 50 uninstall_from_profile()
devi@0 51 {
devi@0 52 profile=$1
devi@0 53 cat $profile \
devi@0 54 | sed '/LabMaker:START/,/LabMaker:END/ d' \
devi@0 55 > $temp_file
devi@0 56 cat $temp_file > $profile
devi@0 57 rm $temp_file
devi@0 58 }
devi@0 59
devi@0 60 install_to_bashrc()
devi@0 61 {
devi@0 62 profile=$1
devi@0 63 cat $profile \
devi@0 64 | sed '/LabMaker:START/,/LabMaker:END/ d' \
devi@0 65 > $temp_file
devi@0 66 cat <<'LM_bash_profile' >> $temp_file
devi@27 67 # LabMaker:START
devi@32 68 LMHOME=~/.lilalo
devi@27 69 mkdir -p ${LMHOME}
devi@0 70
devi@27 71 uname -a | grep -qi bsd && bsd=yes
devi@27 72 flush="-f" #linux
devi@27 73 [ -n "$bsd" ] && flush="-t 0" #freebsd
devi@17 74
devi@27 75 tty=`tty`
devi@27 76 this_term=`w | grep "${tty##/dev/}" | awk '{print $8;}'`
devi@27 77 # freeBSD:
devi@27 78 [ -n "$bsd" ] && this_term=`w | grep "${tty##/dev/tty}" | awk '{print $6;}'`
devi@17 79
devi@16 80
devi@27 81 export PS1='\[`
devi@27 82 a="$?";
devi@27 83 HIDDEN=$([ "$a" = 0 ] || echo -n ^"$a")$(echo -n _${UID}_)$(echo -n _$$_)$(date\
devi@27 84 +"%j$(cat ${LMHOME}/lab 2>/dev/null) %H:%M:%S");
devi@27 85 echo $HIDDEN`\033[50D\033[K\][\u@\h:\W]\$ '
devi@16 86
devi@27 87 if [ -n "$this_term" ] && echo $this_term | grep -qv script
devi@27 88 then
devi@27 89 session_id=${tty##*/}-$$
devi@27 90 parent=`cat /proc/$PPID/cmdline 2> /dev/null`
devi@27 91 system=`uname -rs`
devi@27 92 login_from=`who | grep "${tty##/dev/}" | awk '{print $6;}' | tr -d '()'`
devi@27 93 [ -n "$bsd" ] && login_from="" #FIXME!
devi@27 94 start_time=`date +%s`
devi@27 95 hostname=`hostname -f`
devi@16 96
devi@27 97 cat <<INFO > $LMHOME/${session_id}.info
devi@27 98 <session>
devi@32 99 <local_session_id>$session_id</local_session_id>
devi@27 100 <hostname>$hostname</hostname>
devi@27 101 <user>$USER</user>
devi@27 102 <login_from>$login_from</login_from>
devi@27 103 <tty>$tty</tty>
devi@27 104 <system>$system</system>
devi@27 105 <parent>$parent</parent>
devi@27 106 <ppid>$PPID</ppid>
devi@27 107 <pid>$$</pid>
devi@27 108 <start_time>$start_time</start_time>
devi@27 109 </session>
devi@27 110 INFO
devi@27 111
devi@27 112 exec script $flush -q $LMHOME/${session_id}.script
devi@27 113 fi
devi@27 114 # LabMaker:END
devi@0 115 LM_bash_profile
devi@0 116 cat $temp_file > $profile
devi@0 117 rm $temp_file
devi@0 118 }
devi@0 119
devi@0 120 uninstall_from_bashrc()
devi@0 121 {
devi@0 122 profile=$1
devi@0 123 cat $profile \
devi@0 124 | sed '/LabMaker:START/,/LabMaker:END/ d' \
devi@0 125 > $temp_file
devi@0 126 cat $temp_file > $profile
devi@0 127 rm $temp_file
devi@0 128 }
devi@0 129
devi@0 130 install_editor()
devi@0 131 {
devi@0 132 editor=$1
devi@0 133 [ -e $editor.orig ] && cp $editor.orig $editor
devi@0 134 cp $editor $editor.orig
devi@0 135 cat <<'editor_wrapper' | sed "s@EDITOR@$editor@" > $editor
devi@0 136 #!/bin/sh
devi@0 137
devi@32 138 LMHOME=~/.lilalo
devi@0 139 if [ "${1#-}" = "$1" -a -d "$LMHOME" ]
devi@0 140 then
devi@0 141 LAB=`cat $LMHOME/lab`
devi@0 142 TIME="`date +%j${LAB}_%H:%M:%S`"
devi@0 143 DIR=""
devi@0 144 [ "${1#/}" = "$1" ] && DIR=$PWD/
devi@0 145 DIFFNAME=$PPID_${TIME}_`echo $DIR$1| sed s@_@__@ | sed 's@/@_@g'`.diff
devi@0 146 tmp="/tmp/lm-saved-$$"
devi@0 147 touch $1
devi@0 148 cp -- "$1" $tmp 2> /dev/null
devi@0 149 EDITOR.orig "$@" || ERR=1
devi@0 150 diff $tmp $1 > $LMHOME/$DIFFNAME 2> /dev/null
devi@0 151 rm $tmp 2> /dev/null
devi@0 152 if [ "$ERR" = 1 ]
devi@0 153 then
devi@0 154 false
devi@0 155 else
devi@0 156 true
devi@0 157 fi
devi@0 158 else
devi@0 159 exec EDITOR.orig "$@"
devi@0 160 fi
devi@0 161 editor_wrapper
devi@0 162
devi@0 163 }
devi@0 164
devi@0 165
devi@0 166 uninstall_editor()
devi@0 167 {
devi@0 168 editor=$1
devi@0 169 [ -e $editor.orig ] && mv $editor.orig $editor
devi@0 170 }
devi@0 171
devi@0 172 if [ "$1" != "-d" ]
devi@0 173 then
devi@0 174 # INSTALLING LM
devi@0 175 if [ $# -gt 0 ]
devi@0 176 then
devi@0 177 users_to_install="$*"
devi@0 178 fi
devi@0 179
devi@0 180 if [ -z "$users_to_install" ]
devi@0 181 then
devi@0 182 show_usage
devi@0 183 exit
devi@0 184 fi
devi@0 185
devi@8 186 for home in $users_to_install
devi@0 187 do
devi@8 188 # fix this!
devi@8 189 user=${home%/}
devi@8 190 user=${user##*/}
devi@32 191 mkdir -p $home/.lilalo
devi@32 192 echo $first_lab > $home/.lilalo/lab
devi@32 193 chown -R $user $home/.lilalo
devi@0 194
devi@8 195 #if [ ! -e $home/.bash_profile ]
devi@8 196 #then
devi@8 197 # echo '. ~/.bashrc' >> ~/.bash_profile
devi@8 198 #fi
devi@8 199 #[ -e $home/.bash_profile ] \
devi@8 200 # && install_to_profile $home/.bash_profile \
devi@8 201 # && echo LabMaker is installed to $home/.bash_profile
devi@8 202
devi@8 203 echo Don\'t forget to check .bash_profile for .bashrc call
devi@0 204
devi@34 205 [ -e $home/.bash_profile ] && install_to_profile $home/.bash_profile \
devi@34 206 && install_to_profile $home/.bash_profile \
devi@34 207 && echo LabMaker is installed to $home/.bash_profile
devi@0 208
devi@0 209 touch $home/.bashrc
devi@0 210 [ -e $home/.bashrc ] && install_to_bashrc $home/.bashrc \
devi@0 211 && install_to_bashrc $home/.bashrc \
devi@0 212 && echo LabMaker is installed to $home/.bashrc
devi@0 213 done
devi@0 214
devi@0 215 for editor in $editors_to_install
devi@0 216 do
devi@0 217 [ -e $editor ] \
devi@0 218 && install_editor $editor \
devi@0 219 && echo LabMaker is installed to $editor
devi@0 220 done
devi@0 221 else
devi@0 222 # UNINSTALLING LM
devi@0 223 shift
devi@0 224 users_to_install="$*"
devi@0 225 for user in $users_to_install
devi@0 226 do
devi@0 227 home=$user
devi@32 228 mkdir -p $home/.lilalo
devi@32 229 echo $first_lab > $home/.lilalo/lab
devi@32 230 chown -R ${user##*/} $home/.lilalo
devi@0 231
devi@8 232 #if [ ! -e $home/.bash_profile ]
devi@8 233 #then
devi@8 234 # echo '. ~/.bashrc' >> ~/.bash_profile
devi@8 235 #fi
devi@8 236 #[ -e $home/.bash_profile ] \
devi@8 237 # && uninstall_from_profile $home/.bash_profile \
devi@8 238 # && echo LabMaker is uninstalled from $home/.bash_profile
devi@0 239
devi@0 240 [ -e $home/.profile ] && uninstall_from_profile $home/.profile \
devi@0 241 && uninstall_from_profile $home/.profile \
devi@0 242 && echo LabMaker is uninstalled from $home/.profile
devi@0 243
devi@0 244 touch $home/.bashrc
devi@0 245 [ -e $home/.bashrc ] && uninstall_from_bashrc $home/.bashrc \
devi@0 246 && uninstall_from_bashrc $home/.bashrc \
devi@0 247 && echo LabMaker is uninstalled from $home/.bashrc
devi@0 248 done
devi@0 249
devi@0 250 for editor in $editors_to_install
devi@0 251 do
devi@0 252 [ -e $editor ] \
devi@0 253 && uninstall_editor $editor \
devi@0 254 && echo LabMaker is uninstalled from $editor
devi@0 255 done
devi@0 256 fi