lilalo

annotate lm-install @ 100:2c00c61f2d7b

Коммичу изменения, но сам не знаю зачем.
Нужно l3-cgi переписать вообще с нуля.
Он мерзкий.

И продумать нужно, как он вообще должен работать.
Понятно, приблизительно, как он должен показывать журнал,
когда до него уже дошли,
но вот если не дошли, то что делать не понятно.
Короче, продумать систему навигации.
author devi
date Wed Jun 14 21:37:22 2006 +0300 (2006-06-14)
parents aa788e638a9d
children
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@65 38 cat <<'LM_bash_profile' > $temp_file
devi@32 39 # LabMaker:START
devi@32 40 /usr/local/bin/l3-agent
devi@32 41 # LabMaker:END
devi@0 42 LM_bash_profile
devi@65 43 cat $profile \
devi@65 44 | sed '/LabMaker:START/,/LabMaker:END/ d' \
devi@65 45 >> $temp_file
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@39 93 #[ -n "$bsd" ] && login_from="" #FIXME!
devi@27 94 start_time=`date +%s`
devi@38 95 hostname=`hostname -f 2> /dev/null`
devi@38 96 [ -n "$bsd" ] && hostname=`hostname`
devi@16 97
devi@27 98 cat <<INFO > $LMHOME/${session_id}.info
devi@27 99 <session>
devi@32 100 <local_session_id>$session_id</local_session_id>
devi@27 101 <hostname>$hostname</hostname>
devi@27 102 <user>$USER</user>
devi@65 103 <uid>$UID</uid>
devi@27 104 <login_from>$login_from</login_from>
devi@27 105 <tty>$tty</tty>
devi@27 106 <system>$system</system>
devi@27 107 <parent>$parent</parent>
devi@27 108 <ppid>$PPID</ppid>
devi@27 109 <pid>$$</pid>
devi@27 110 <start_time>$start_time</start_time>
devi@27 111 </session>
devi@27 112 INFO
devi@27 113
devi@27 114 exec script $flush -q $LMHOME/${session_id}.script
devi@27 115 fi
devi@27 116 # LabMaker:END
devi@0 117 LM_bash_profile
devi@0 118 cat $temp_file > $profile
devi@0 119 rm $temp_file
devi@0 120 }
devi@0 121
devi@0 122 uninstall_from_bashrc()
devi@0 123 {
devi@0 124 profile=$1
devi@0 125 cat $profile \
devi@0 126 | sed '/LabMaker:START/,/LabMaker:END/ d' \
devi@0 127 > $temp_file
devi@0 128 cat $temp_file > $profile
devi@0 129 rm $temp_file
devi@0 130 }
devi@0 131
devi@0 132 install_editor()
devi@0 133 {
devi@0 134 editor=$1
devi@0 135 [ -e $editor.orig ] && cp $editor.orig $editor
devi@0 136 cp $editor $editor.orig
devi@0 137 cat <<'editor_wrapper' | sed "s@EDITOR@$editor@" > $editor
devi@0 138 #!/bin/sh
devi@0 139
devi@32 140 LMHOME=~/.lilalo
devi@0 141 if [ "${1#-}" = "$1" -a -d "$LMHOME" ]
devi@0 142 then
devi@0 143 LAB=`cat $LMHOME/lab`
devi@0 144 TIME="`date +%j${LAB}_%H:%M:%S`"
devi@0 145 DIR=""
devi@0 146 [ "${1#/}" = "$1" ] && DIR=$PWD/
devi@0 147 DIFFNAME=$PPID_${TIME}_`echo $DIR$1| sed s@_@__@ | sed 's@/@_@g'`.diff
devi@0 148 tmp="/tmp/lm-saved-$$"
devi@0 149 touch $1
devi@0 150 cp -- "$1" $tmp 2> /dev/null
devi@0 151 EDITOR.orig "$@" || ERR=1
devi@0 152 diff $tmp $1 > $LMHOME/$DIFFNAME 2> /dev/null
devi@0 153 rm $tmp 2> /dev/null
devi@0 154 if [ "$ERR" = 1 ]
devi@0 155 then
devi@0 156 false
devi@0 157 else
devi@0 158 true
devi@0 159 fi
devi@0 160 else
devi@0 161 exec EDITOR.orig "$@"
devi@0 162 fi
devi@0 163 editor_wrapper
devi@0 164
devi@0 165 }
devi@0 166
devi@0 167
devi@0 168 uninstall_editor()
devi@0 169 {
devi@0 170 editor=$1
devi@0 171 [ -e $editor.orig ] && mv $editor.orig $editor
devi@0 172 }
devi@0 173
devi@0 174 if [ "$1" != "-d" ]
devi@0 175 then
devi@0 176 # INSTALLING LM
devi@0 177 if [ $# -gt 0 ]
devi@0 178 then
devi@0 179 users_to_install="$*"
devi@0 180 fi
devi@0 181
devi@0 182 if [ -z "$users_to_install" ]
devi@0 183 then
devi@0 184 show_usage
devi@0 185 exit
devi@0 186 fi
devi@0 187
devi@8 188 for home in $users_to_install
devi@0 189 do
devi@8 190 # fix this!
devi@8 191 user=${home%/}
devi@8 192 user=${user##*/}
devi@32 193 mkdir -p $home/.lilalo
devi@32 194 echo $first_lab > $home/.lilalo/lab
devi@32 195 chown -R $user $home/.lilalo
devi@0 196
devi@8 197 #if [ ! -e $home/.bash_profile ]
devi@8 198 #then
devi@8 199 # echo '. ~/.bashrc' >> ~/.bash_profile
devi@8 200 #fi
devi@8 201 #[ -e $home/.bash_profile ] \
devi@8 202 # && install_to_profile $home/.bash_profile \
devi@8 203 # && echo LabMaker is installed to $home/.bash_profile
devi@8 204
devi@8 205 echo Don\'t forget to check .bash_profile for .bashrc call
devi@0 206
devi@34 207 [ -e $home/.bash_profile ] && install_to_profile $home/.bash_profile \
devi@34 208 && install_to_profile $home/.bash_profile \
devi@34 209 && echo LabMaker is installed to $home/.bash_profile
devi@0 210
devi@0 211 touch $home/.bashrc
devi@0 212 [ -e $home/.bashrc ] && install_to_bashrc $home/.bashrc \
devi@0 213 && install_to_bashrc $home/.bashrc \
devi@0 214 && echo LabMaker is installed to $home/.bashrc
devi@0 215 done
devi@0 216
devi@0 217 for editor in $editors_to_install
devi@0 218 do
devi@0 219 [ -e $editor ] \
devi@0 220 && install_editor $editor \
devi@0 221 && echo LabMaker is installed to $editor
devi@0 222 done
devi@0 223 else
devi@0 224 # UNINSTALLING LM
devi@0 225 shift
devi@0 226 users_to_install="$*"
devi@0 227 for user in $users_to_install
devi@0 228 do
devi@0 229 home=$user
devi@32 230 mkdir -p $home/.lilalo
devi@32 231 echo $first_lab > $home/.lilalo/lab
devi@32 232 chown -R ${user##*/} $home/.lilalo
devi@0 233
devi@8 234 #if [ ! -e $home/.bash_profile ]
devi@8 235 #then
devi@8 236 # echo '. ~/.bashrc' >> ~/.bash_profile
devi@8 237 #fi
devi@8 238 #[ -e $home/.bash_profile ] \
devi@8 239 # && uninstall_from_profile $home/.bash_profile \
devi@8 240 # && echo LabMaker is uninstalled from $home/.bash_profile
devi@0 241
devi@0 242 [ -e $home/.profile ] && uninstall_from_profile $home/.profile \
devi@0 243 && uninstall_from_profile $home/.profile \
devi@0 244 && echo LabMaker is uninstalled from $home/.profile
devi@0 245
devi@0 246 touch $home/.bashrc
devi@0 247 [ -e $home/.bashrc ] && uninstall_from_bashrc $home/.bashrc \
devi@0 248 && uninstall_from_bashrc $home/.bashrc \
devi@0 249 && echo LabMaker is uninstalled from $home/.bashrc
devi@0 250 done
devi@0 251
devi@0 252 for editor in $editors_to_install
devi@0 253 do
devi@0 254 [ -e $editor ] \
devi@0 255 && uninstall_editor $editor \
devi@0 256 && echo LabMaker is uninstalled from $editor
devi@0 257 done
devi@0 258 fi