lilalo
diff install @ 107:54fbf2041159
l3cd
author | devi |
---|---|
date | Fri Aug 04 18:06:09 2006 +0300 (2006-08-04) |
parents | |
children | 0d49f33696b3 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/install Fri Aug 04 18:06:09 2006 +0300 1.3 @@ -0,0 +1,148 @@ 1.4 +#!/bin/sh 1.5 + 1.6 +lilalo_rc=.l3rc 1.7 +lilalo_home=.lilalo 1.8 +url_lilalo="http://xgu.ru/lilalo" 1.9 +url_l3bashrc="${url_lilalo}"/l3bashrc 1.10 +url_l3agent="${url_lilalo}"/l3-agent 1.11 +url_l3config="${url_lilalo}"/l3config.pm 1.12 +url_perl_modules=${url_lilalo}/ 1.13 +perl_modules="Term-VT102 Text-Iconv" 1.14 + 1.15 +wget=wget 1.16 +uname -a | grep -qi bsd && wget=fetch 1.17 + 1.18 +normC='\033[0;39m' 1.19 +whiteC='\033[1;37m' 1.20 +redC='\033[0;31m' 1.21 +greenC='\033[0;32m' 1.22 + 1.23 +hostname=`hostname` 1.24 +uname -a | grep -qi freebsd || hostname=`hostname -f` 1.25 + 1.26 + 1.27 +# Ask this variables: 1.28 + 1.29 +lilalo_user="devi" 1.30 +lab="lilalo-installation" 1.31 +install_l3bashrc_for_this_users="root ak devi" 1.32 +lilalo_context="/users/${lilalo_user}/${lab}/${hostname}" 1.33 + 1.34 + 1.35 +step() 1.36 +{ 1.37 + 1.38 + msg="$1" 1.39 + shift 1.40 + printf "${whiteC}""$msg""...${normC}\n" 1.41 +# eval "$@" 2>&1 | sed 's/^/|\ \ \ /' && printf "Ok\n" || printf "Failed\n" 1.42 + eval "$@" 2>&1 > log 2>&1 && \ 1.43 + { 1.44 + cat log | sed 's/^/|\ \ \ /' 1.45 + printf "${greenC}""Ok\n""${normC}" 1.46 + } || \ 1.47 + { 1.48 + cat log | sed 's/^/|\ \ \ /' 1.49 + printf "${redC}""Failed\n""${normC}" 1.50 + } 1.51 +} 1.52 + 1.53 +get_user_home() 1.54 +{ 1.55 + uname -a | grep -qi freebsd && pw user show "$@"| awk -F: '{print $9}' || getent passwd "$@"| awk -F: '{print $6}' 1.56 +} 1.57 + 1.58 +install_to_users_homes() 1.59 +{ 1.60 + . l3bashrc 1.61 + users="$@" 1.62 + set -x 1.63 + for user in $users 1.64 + do 1.65 + user_home=`get_user_home "$user"` 1.66 + mkdir -p ${user_home}/${lilalo_home} 1.67 + cp l3config.pm /usr/local/bin 1.68 + cp l3-agent /usr/local/bin 1.69 + chmod 755 /usr/local/bin/l3-agent 1.70 + cp l3bashrc ${user_home}/${lilalo_home} 1.71 + chown -R $user ${user_home}/${lilalo_home} 1.72 + echo l3cd=${lilalo_context}/$user > ${user_home}/${lilalo_rc} 1.73 + chown -R $user ${user_home}/${lilalo_rc} 1.74 + done 1.75 + set +x 1.76 +} 1.77 + 1.78 +install_to_users_bashrc() 1.79 +{ 1.80 + users="$@" 1.81 + for user in $users 1.82 + do 1.83 + user_home=`get_user_home "$user"` 1.84 + grep -q lilalo ${user_home}/.bashrc 2> /dev/null\ 1.85 + || echo ". ${user_home}/.lilalo/l3bashrc && _l3_start" >> ${user_home}/.bashrc; chown -R ${user} ${user_home}/.bashrc 1.86 + done 1.87 +} 1.88 + 1.89 +install_to_users_bash_profile() 1.90 +{ 1.91 + users="$@" 1.92 + for user in $users 1.93 + do 1.94 + user_home=`get_user_home "$user"` 1.95 + grep -q l3-agent ${user_home}/.bash_profile 2> /dev/null \ 1.96 + || { echo >> ${user_home}/.bash_profile ; cat ${user_home}/.bash_profile | sed '1s/^/l3-agent/' > /tmp/$$$$l3 ; mv /tmp/$$$$l3 ${user_home}/.bash_profile; chown -R ${user} ${user_home}/.bash_profile; } 1.97 + done 1.98 +} 1.99 + 1.100 +show_usage() 1.101 +{ 1.102 + cat <<USAGE 1.103 +Usage: 1.104 + $0 1.105 +USAGE 1.106 +} 1.107 + 1.108 +show_final_message() 1.109 +{ 1.110 + cat <<FINAL_MESSAGE 1.111 + 1.112 + 1.113 +Installation is successfully completed. 1.114 +Now restart your shell or relogin 1.115 +to start script writing. 1.116 + 1.117 +Your current lilalo context is ${lilalo_context}/USER 1.118 +If you use xgu.ru backend, your labs will be available at 1.119 +http://xgu.ru/l3/${lilalo_context} 1.120 + 1.121 +Use commands 1.122 + $ l3cd ${lilalo_context%/*/*}/MY-NEW-CONTEXT/${hostname}/USER 1.123 + $ l3pwd 1.124 +to change and to know your current context. 1.125 + 1.126 +For further information see http://xgu.ru/lilalo/ (in Russian). 1.127 + 1.128 +Thank you gor using LiLaLo. 1.129 +Happy Labbing! 1.130 + 1.131 +(don't forget to restart bash or relogin) 1.132 + 1.133 +FINAL_MESSAGE 1.134 +} 1.135 + 1.136 + 1.137 +temp_dir=/tmp/lilalo-install-temp-$$ 1.138 +mkdir -p ${temp_dir} 1.139 +cd ${temp_dir} 1.140 +step "Downloading l3bashrc" ${wget} ${url_l3bashrc} 1.141 +step "Downloading l3-agent" '${wget} ${url_l3agent}; ${wget} ${url_l3config}' 1.142 +step "Downloading perl modules for l3-agent" '{ for i in ${perl_modules}; do ${wget} ${url_perl_modules}/$i.tar.gz; done; }' 1.143 +step "Installing perl modules for l3-agent" '{ for i in ${perl_modules}; do tar xvfz $i.tar.gz; cd $i*[^z]; perl Makefile.PL; make; make install; cd ..; done; }' 1.144 +step "Installing l3bashrc to users home directories" install_to_users_homes $install_l3bashrc_for_this_users 1.145 +step "Adding l3bashrc invocation to ~/.bashrc " install_to_users_bashrc $install_l3bashrc_for_this_users 1.146 +step "Adding l3-agent invocation to ~/.bash_profile " install_to_users_bash_profile $install_l3bashrc_for_this_users 1.147 +cd / 1.148 +rm -rf ${temp_dir} 1.149 + 1.150 +show_final_message 1.151 +