lilalo
annotate lm-install @ 100:2c00c61f2d7b
Коммичу изменения, но сам не знаю зачем.
Нужно l3-cgi переписать вообще с нуля.
Он мерзкий.
И продумать нужно, как он вообще должен работать.
Понятно, приблизительно, как он должен показывать журнал,
когда до него уже дошли,
но вот если не дошли, то что делать не понятно.
Короче, продумать систему навигации.
Нужно 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 |