Difference between revisions of "Download si instalare E17 din CVS"
From linux360
(mici corecturi) |
(e17_cvs.sh v 2.3) |
||
Line 10: | Line 10: | ||
# Nume fisier: e17_cvs.sh | # Nume fisier: e17_cvs.sh | ||
− | # Versiunea: 2. | + | # Versiunea: 2.3 |
# EDITEAZA aceste linii | # EDITEAZA aceste linii | ||
Line 22: | Line 22: | ||
DOWNLOAD_LIST="e17" | DOWNLOAD_LIST="e17" | ||
# lista aplicatiilor disponibile | # lista aplicatiilor disponibile | ||
− | AVAILABLE_LIST=":e17:engage:evidence:" | + | AVAILABLE_LIST=":e17:engage:evidence:e_modules:" |
function usage() | function usage() | ||
Line 35: | Line 35: | ||
echo " engage - descarca Engage" | echo " engage - descarca Engage" | ||
echo " evidence - descarca Evidence" | echo " evidence - descarca Evidence" | ||
+ | echo " e_modules - descarca modulele pt. Enlightenment DR17" | ||
echo " all - descarca Enlightenment DR17, Engage si Evidence" | echo " all - descarca Enlightenment DR17, Engage si Evidence" | ||
exit 0 | exit 0 | ||
Line 69: | Line 70: | ||
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence login && \ | cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence login && \ | ||
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence co evidence | cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence co evidence | ||
+ | return #? | ||
+ | ;; | ||
+ | e_modules) | ||
+ | echo "==> DESCARC Evidence" | ||
+ | cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence login && \ | ||
+ | cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co e_modules | ||
return #? | return #? | ||
;; | ;; | ||
Line 82: | Line 89: | ||
} | } | ||
− | + | # verificam parametri | |
− | |||
− | |||
− | |||
− | # verificam | ||
check_options $1 | check_options $1 | ||
Line 93: | Line 96: | ||
# cream o lista cu toti parametri | # cream o lista cu toti parametri | ||
− | NR_PARAM=$# | + | if [ $# -gt 0 ]; then |
− | DOWNLOAD_LIST="" | + | NR_PARAM=$# |
+ | DOWNLOAD_LIST="" | ||
+ | |||
+ | for ((i=1; i <= NR_PARAM; i++)); do | ||
+ | DOWNLOAD_LIST="$DOWNLOAD_LIST${!i} " | ||
+ | done | ||
− | + | # verificam validitatea pachetelor din lista | |
− | + | for ITEM in $DOWNLOAD_LIST; do | |
− | + | REZ_STR=$(echo $AVAILABLE_LIST | grep ":$ITEM:") | |
− | + | if [ ! -n "$REZ_STR" ]; then | |
− | # verificam validitatea pachetelor din lista | + | echo "Pachet inexistent: $ITEM" |
− | for ITEM in $DOWNLOAD_LIST; do | + | usage |
− | + | fi | |
− | + | done | |
− | + | fi | |
− | |||
− | |||
− | done | ||
# descarcam pachetele | # descarcam pachetele | ||
Line 136: | Line 141: | ||
exit 0 | exit 0 | ||
+ | |||
</pre> | </pre> | ||
Revision as of 22:37, 8 January 2006
Contents
Scriptul pentru download
Acest script poate fi folosit pentru a descarca Enlightenment DR17 din CVS sau pentru a sincroniza fisierele deja existente pe sistemul vostru cu fisierele din CVS.
In versiunea 2.0 m-am complicat putin , unele lucruri nu sunt absolut necesare.
#!/bin/sh # Nume fisier: e17_cvs.sh # Versiunea: 2.3 # EDITEAZA aceste linii CVS_DIR="/mnt/hdd1/app_cvs" # directorul unde instalez ######################################## # ATENTIE: NU EDITA sub aceasta linie # ######################################## # lista aplicatiilor care vor fi downlodate implicit DOWNLOAD_LIST="e17" # lista aplicatiilor disponibile AVAILABLE_LIST=":e17:engage:evidence:e_modules:" function usage() { echo "Folosire: e17_cvs [e17|engage|evidence|all|help]" echo echo "optiuni:" echo " -help - afieaza acest mesaj" echo echo "pachete:" echo " e17 - descarca Enlightenment DR17" echo " engage - descarca Engage" echo " evidence - descarca Evidence" echo " e_modules - descarca modulele pt. Enlightenment DR17" echo " all - descarca Enlightenment DR17, Engage si Evidence" exit 0 } function check_options() { case "$1" in -help) usage exit 0 ;; esac return 1 } function download_packages() { case "$1" in e17) echo "==> DESCARC Enlightenment DR 17" cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login && \ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co e17 return #? ;; engage) echo "==> DESCARC Engage" cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login && \ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co misc/engage return #? ;; evidence) echo "==> DESCARC Evidence" cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence login && \ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence co evidence return #? ;; e_modules) echo "==> DESCARC Evidence" cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence login && \ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co e_modules return #? ;; all) echo "==> DESCARC pachetele: Enlightenment DR 17, Engage, Evidence" download_packages e17 download_packages engage download_packages evidence return #? ;; esac return 1 } # verificam parametri check_options $1 # daca sunt mai multi parametri, atunci acestia # reprezinta lista pachetelor ce trebuiesc descarcate # cream o lista cu toti parametri if [ $# -gt 0 ]; then NR_PARAM=$# DOWNLOAD_LIST="" for ((i=1; i <= NR_PARAM; i++)); do DOWNLOAD_LIST="$DOWNLOAD_LIST${!i} " done # verificam validitatea pachetelor din lista for ITEM in $DOWNLOAD_LIST; do REZ_STR=$(echo $AVAILABLE_LIST | grep ":$ITEM:") if [ ! -n "$REZ_STR" ]; then echo "Pachet inexistent: $ITEM" usage fi done fi # descarcam pachetele cd $CVS_DIR echo "***********************************************" echo "* Incepe procesul de descarcare a pachetelor *" echo "***********************************************" for ITEM in $DOWNLOAD_LIST; do download_packages $ITEM R="$?" if [ $R -eq 1 ]; then echo echo "==> PROCESUL de descarcare a fost oprit de utilizator" exit 1 elif [ $R -eq 2 ]; then echo echo "==> EROARE la descarcare; procesul de descarcare va fi oprit" exit 1 fi done echo "*************************************************" echo "* Toate pachetele au fost descarcate cu succes! *" echo "*************************************************" exit 0
Scriptul pentru compilare si instalare
Versiunea 2 aduce cateva imbunatatiri majore fata de versiunea 1. Cea mai importanta este posibilitatea de a continua procesul de instalare in cazul in care acesta a fost intrerupt de catre utilizator sau din cauza unei erori la compilarea unui pachet.
Astfel daca la compilarea unui pachet primim o eroare fiindca nu este satisfacuta o dependenta pentru respectivul pachet, putem rezolva dependenta si apoi continua procesul de compilare si instalare de la pachetul pentru care am primit eroarea.
Pentru a avea acces la aceasta facilitate trebuie sa folosim optiunea "-resume" la apelarea scriptului.
#!/bin/sh # Nume fisier: e17_install.sh # Versiunea: 3.0 # Dependente: # * apps/eclair: taglib, sqlite # EDITEAZA aceste linii INSTALL_DIR="/usr/local/e17" # directorul unde instalez CVS_DIR="/mnt/hdd1/app_cvs/e17/" # locatia surselor USE_SUDO="yes" # schimba in "no" daca vei compila ca si root ######################################## # ATENTIE: NU EDITA sub aceasta linie # ######################################## # locatiile comenzilor folosite MAKE_BIN="/usr/bin/make" LDCONFIG_BIN="/sbin/ldconfig" SUDO_BIN="/usr/bin/sudo" LIBS="libs/imlib2 libs/eet libs/evas libs/ecore libs/embryo libs/edje libs/edb \ libs/epeg libs/epsilon libs/esmart libs/etox libs/ewl libs/engrave libs/imlib2_loaders \ proto/etk" # erori: libs/emotion APPS="apps/iconbar apps/entice apps/entrance apps/elicit apps/e \ apps/e_utils apps/express apps/imlib2_tools apps/examine" # erori: apps/enscribe apps/evfs apps/euphoria apps/eclair SPECIAL=(proto/exhibit) # optiuni: apps/eclair apps/elation proto/etk ../../app_source/exhibit # erori: ../misc/engage evidence eterm/Eterm e17/proto/entropy # comportamentul implicit RESUME=0 BUILD_LIST="LIBS APPS" SKIP_FILE=".DONE" function usage() { echo "Folosire: e17_install.sh [optiuni] [apps|libs|special|all|help]" echo echo "optiuni:" echo " -resume - incepe compilarea de la pachetul unde s-a oprit compilarea anterioara" echo " -help - afiseaza acest mesaj" echo echo "pachete:" echo " apps - compileaza numai aplicatiile" echo " libs - compileaza numai librariile" echo " special - compileaza librarii si aplicatii optionale" echo " all - compileaza toate librariile si aplicatiile" exit 0 } function check_options() { case "$1" in -resume) RESUME=1 return 0 ;; -help) usage exit 0 ;; esac return 1 } function check_packages() { case "$1" in apps) BUILD_LIST="APPS" return 0 ;; libs) BUILD_LIST="LIBS" return 0 ;; all) BUILD_LIST="LIBS APPS" return 0 ;; special) BUILD_LIST="SPECIAL" return 0 ;; esac return 1 } # verificam parametri if [ $# -gt 2 ]; then usage elif [ $# -eq 2 ]; then if ! check_options $1 || ! check_packages $2 ; then usage fi elif [ $# -eq 1 ]; then if ! check_options $1 && ! check_packages $1 ; then usage fi fi if [ "$USE_SUDO" != "yes" ]; then SUDO_BIN="" fi MYLDFLAGS="$LDFLAGS -L$INSTALL_DIR/lib -L/lib -L/usr/lib / -L/usr/local/lib -L/usr/X11R6/lib" MYCPPFLAGS="$CPPFLAGS -I$INSTALL_DIR/include -I/usr/include / -I/usr/local/include -I/usr/X11R6/include" PATH="$PATH:$INSTALL_DIR/bin" export PATH echo "*****************************************************" echo "* Incepe procesul de compilare a Enlightenment DR17 *" echo "*****************************************************" if [ $RESUME -eq 1 ]; then echo "Va avea loc procesul de RESUME; pentru mai multe detalii $0 help" fi BEGIN_TIME=`date` # determin nr. total de pachete ce vor fi instalate NR_PACHETE=0 for BUILD_ARR in $BUILD_LIST ;do BUILD_ARR_LEN=`echo ${!BUILD_ARR}|wc -w` ((NR_PACHETE+=BUILD_ARR_LEN)) done i=0 for BUILD_ARR in $BUILD_LIST ;do echo "=> $BUILD_ARR" for BUILD_ITEM in ${!BUILD_ARR} ;do ((i+=1)) # schimb titlul consolei corespunzator pachetului pe care il instalez # ex: "e17_install: (1 din 24) apps/entice" TITLU="e17_install: ($i din $NR_PACHETE) $BUILD_ITEM" echo -ne "\033]0;$TITLU\007" if [[ $RESUME -eq 1 && -f "$CVS_DIR/$BUILD_ITEM/$SKIP_FILE" ]]; then echo "==> SKIP $BUILD_ITEM" else echo "==> COMPILEZ $BUILD_ITEM" cd $CVS_DIR/$BUILD_ITEM env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \ ./autogen.sh $MAKE_BIN clean env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \ ./configure --prefix=$INSTALL_DIR && $MAKE_BIN && \ $SUDO_BIN $MAKE_BIN install && \ $SUDO_BIN $LDCONFIG_BIN $INSTALL_DIR/lib R="$?" if [ $R -eq 1 ]; then echo echo "==> PROCESUL de compilare oprit de utilizator" echo "==> PACHETUL la care s-a oprit procesul: $BUILD_ITEM !" exit 1 elif [ $R -eq 2 ]; then echo echo "==> EROARE la compilare; procesul de compilare va fi oprit" echo "==> PACHETUL la care s-a oprit procesul: $BUILD_ITEM !" exit 1 elif [ $R ]; then touch "$SKIP_FILE" fi fi done done # daca procesul de compilare s-a terminat cu succes, fac curatenie for BUILD_ARR in $BUILD_LIST ;do for BUILD_ITEM in ${!BUILD_ARR} ;do if [ -f "$CVS_DIR/$BUILD_ITEM/$SKIP_FILE" ]; then rm -f "$CVS_DIR/$BUILD_ITEM/$SKIP_FILE" fi done done END_TIME=`date` echo "************************************************************" echo "* Enlightenment DR17 a fost compilat si instalat cu succes *" echo "************************************************************" # aici o functie care calculeaza timpul scurs echo "Begin time: $BEGIN_TIME" echo "End time: $END_TIME" exit 0
Sfarsit
Sper ca aceste scripturi sa va fie de ajutor.
Astept observatiile si comentariile voastre.