Personal tools

Difference between revisions of "Download si instalare E17 din CVS"

From linux360

Jump to: navigation, search
 
(19 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 
==Scriptul pentru download==
 
==Scriptul pentru download==
Acest script este folosit pentru a descarca fisierele Enlightenment DR17 din
+
Acest script poate fi folosit pentru a descarca Enlightenment DR17 din CVS
CVS sau pentru a sincroniza fisierele Enlightenment DR17 deja existente pe  
+
sau pentru a sincroniza fisierele deja existente pe sistemul vostru cu  
sistemul vostru cu fisierele din CVS.
+
fisierele din CVS.
  
<pre>
+
In versiunea 2.0 m-am complicat putin , unele lucruri nu sunt absolut necesare.
#!/bin/sh
+
 
+
<code><sh/>
CVS_DIR="/mnt/hdd2/app_cvs" # directorul unde instalez
+
#!/bin/sh
+
 
cd $CVS_DIR
+
# Nume fisier: e17_cvs.sh
   
+
# Versiunea: 2.3
# operatii posibile: co (instalare - default), up (update)
+
 
OP="co"
+
# EDITEAZA aceste linii
+
CVS_DIR="/mnt/hdd1/app_cvs" # directorul unde instalez
case "$1" in
+
 
  upgrade)
+
########################################
  OP="up"
+
# ATENTIE: NU EDITA sub aceasta linie #
  ;;
+
########################################
  help)
+
 
  echo "Folosire: e17_cvs [commit/update/help]"
+
# lista aplicatiilor care vor fi downlodate implicit
  echo "commit - verifica fisierele din repository"
+
DOWNLOAD_LIST="e17"
  echo "upgrade - sincronizeaza cu repository"
+
# lista aplicatiilor disponibile
  echo "help - afieaza acest mesaj"
+
AVAILABLE_LIST=":e17:engage:evidence:e_modules:"
  exit 0
+
 
  ;;
+
function usage()
esac
+
{
+
  echo "Folosire: e17_cvs [e17|engage|evidence|all|help]"
# enlightenment
+
  echo
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login
+
  echo "optiuni:"
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment $OP e17
+
  echo " -help - afieaza acest mesaj"
+
  echo
# engage
+
  echo "pachete:"
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login
+
  echo " e17 - descarca Enlightenment DR17"
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment $OP misc/engage
+
  echo " engage - descarca Engage"
+
  echo " evidence - descarca Evidence"
# evidence
+
  echo " e_modules - descarca modulele pt. Enlightenment DR17"
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence login
+
  echo " all - descarca Enlightenment DR17, Engage si Evidence"
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence $OP evidence
+
  exit 0
   
+
}
exit 0
+
 
</pre>
+
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
 +
</code>
  
 
==Scriptul pentru compilare si instalare==
 
==Scriptul pentru compilare si instalare==
Versiunea 2.0 aduce cateva imbunatatiri majore fata de versiunea 1.0. Cea mai  
+
Versiunea 2 aduce cateva imbunatatiri majore fata de versiunea 1. Cea mai  
importanta o reprezinta posibilitatea de a continua procesul de instalare in cazul
+
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  
 
in care acesta a fost intrerupt de catre utilizator sau din cauza unei erori la  
 
compilarea unui pachet.
 
compilarea unui pachet.
Line 54: Line 155:
 
Pentru a avea acces la aceasta facilitate trebuie sa folosim optiunea "-resume" la  
 
Pentru a avea acces la aceasta facilitate trebuie sa folosim optiunea "-resume" la  
 
apelarea scriptului.
 
apelarea scriptului.
<pre>
+
 
#!/bin/sh
+
<code><sh/>
+
#!/bin/sh
# Versiunea: 2.0
+
 
+
# Nume fisier: e17_install.sh
# EDITEAZA aceste linii
+
# Versiunea: 3.1
INSTALL_DIR="/usr/local/e17" # directorul unde instalez
+
 
CVS_DIR="/mnt/hdd1/app_cvs" # directorul unde se afla sursele CVS (unde se afla directorul e17)
+
# Dependente:
USE_SUDO="yes" # schimba in "no" daca vei compila ca si root
+
# * apps/eclair: taglib, sqlite
+
 
########################################
+
# EDITEAZA aceste linii
# ATENTIE: NU EDITA sub aceasta linie  #
+
INSTALL_DIR="/usr/local/e17" # directorul unde instalez
########################################
+
CVS_DIR="/mnt/hdd1/app_cvs/e17/" # directorul unde se afla sursele CVS
+
USE_SUDO="yes" # schimba in "no" daca vei compila ca si root
# locatiile comenzilor folosite
+
 
MAKE_BIN="/usr/bin/make"
+
########################################
LDCONFIG_BIN="/sbin/ldconfig"
+
# ATENTIE: NU EDITA sub aceasta linie  #
SUDO_BIN="/usr/bin/sudo"  
+
########################################
+
 
LIBS="e17/libs/imlib2 e17/libs/eet e17/libs/evas e17/libs/ecore e17/libs/embryo e17/libs/edje e17/libs/edb \
+
# locatiile comenzilor folosite
e17/libs/epeg e17/libs/epsilon e17/libs/esmart e17/libs/etox e17/libs/ewl e17/libs/engrave e17/libs/imlib2_loaders"
+
MAKE_BIN="/usr/bin/make"
# erori: e17/libs/emotion
+
LDCONFIG_BIN="/sbin/ldconfig"
+
SUDO_BIN="/usr/bin/sudo"
APPS="e17/apps/iconbar e17/apps/eclair e17/apps/entice e17/apps/entrance e17/apps/elicit e17/apps/e \
+
 
e17/apps/e_modules e17/apps/e_utils e17/apps/elation e17/apps/express e17/apps/imlib2_tools e17/apps/examine"
+
LIBS="libs/imlib2 libs/eet libs/evas libs/ecore libs/embryo libs/edje libs/edb \
# erori: e17/apps/enscribe e17/apps/evfs e17/apps/euphoria
+
  libs/epeg libs/epsilon libs/esmart libs/etox libs/ewl libs/engrave libs/imlib2_loaders \
+
  proto/etk"
SPECIAL="evidence misc/engage"
+
# erori: libs/emotion
# erori: evidence eterm/Eterm e17/proto/entropy
+
 
+
APPS="apps/iconbar apps/entice apps/entrance apps/elicit apps/e \
# comportamentul implicit
+
  apps/e_utils apps/e_modules apps/express apps/imlib2_tools apps/examine apps/eclair"
RESUME=0
+
# erori: apps/enscribe apps/evfs apps/euphoria apps/eclair
BUILD_LIST="LIBS APPS"
+
 
SKIP_FILE=".DONE"
+
SPECIAL="apps/elation proto/etk proto/exhibit ../e_modules"
+
# optiuni: apps/elation proto/etk proto/exhibit ../e_modules
function usage() {
+
# erori: ../misc/engage evidence eterm/Eterm e17/proto/entropy
  echo "Folosire: e17_install [-resume] [apps|libs|special|all|help]"
+
 
  echo
+
# comportamentul implicit
  echo "unde:"
+
RESUME=0
  echo "       -resume - incepe compilarea de la pachetul unde s-a oprit compilarea anterioara"
+
BUILD_LIST="LIBS APPS"
  echo "       apps    - compileaza numai aplicatiile"
+
SKIP_FILE=".DONE"
  echo "       libs    - compileaza numai librariile"
+
 
  echo "       special - compileaza librarii si aplicatii optionale"
+
function usage()  
  echo "       all    - compileaza toate librariile si aplicatiile"
+
{
  echo "        help    - afiseaza acest mesaj"
+
  echo "Folosire: e17_install.sh [optiuni] [apps|libs|special|all|help]"
  exit 0
+
  echo
}
+
  echo "optiuni:"
+
  echo " -resume - incepe compilarea de la pachetul unde s-a oprit compilarea anterioara"
function check_resume() {
+
  echo " -help - afiseaza acest mesaj"
  if [ "$1" = "-resume" ]; then
+
  echo
    RESUME=1
+
  echo "pachete:"
    return 0
+
  echo " apps    - compileaza numai aplicatiile"
  fi
+
  echo " libs    - compileaza numai librariile"
  return 1
+
  echo " special - compileaza librarii si aplicatii optionale"
}
+
  echo " all    - compileaza toate librariile si aplicatiile"
+
  exit 0
function check_options() {
+
}
  case "$1" in
+
 
    apps)
+
function check_options()  
    BUILD_LIST="APPS"
+
{
    return 0
+
  case "$1" in
    ;;
+
    -resume)
    libs)
+
    RESUME=1
    BUILD_LIST="LIBS"
+
    return 0
    return 0
+
    ;;
    ;;
+
    -help)
    all)
+
    usage
    BUILD_LIST="LIBS APPS"
+
    exit 0
    return 0
+
    ;;
    ;;
+
  esac
    special)
+
  return 1
    BUILD_LIST="SPECIAL"
+
}
    return 0
+
 
    ;;
+
function check_packages()  
    help)
+
{
    usage
+
  case "$1" in
    return 0
+
    apps)
    ;;
+
    BUILD_LIST="APPS"
  esac
+
    return 0
  return 1
+
    ;;
}
+
    libs)
+
    BUILD_LIST="LIBS"
if [ $# -gt 2 ]; then
+
    return 0
  usage
+
    ;;
elif [ $# -eq 2 ]; then
+
    all)
  if ! check_resume $1 ||  ! check_options $2 ; then
+
    BUILD_LIST="LIBS APPS"
    usage
+
    return 0
  fi
+
    ;;
elif [ $# -eq 1 ]; then
+
    special)
  if ! check_resume $1 && ! check_options $1 ; then
+
    BUILD_LIST="SPECIAL"
    usage
+
    return 0
  fi
+
    ;;
fi
+
  esac
+
  return 1
if [ "$USE_SUDO" != "yes" ]; then
+
}
SUDO_BIN=""
+
 
fi
+
# verificam parametri
+
 
MYLDFLAGS="$LDFLAGS -L$INSTALL_DIR/lib -L/lib -L/usr/lib -L/usr/local/lib -L/usr/X11R6/lib"
+
if [ $# -gt 2 ]; then
MYCPPFLAGS="$CPPFLAGS -I$INSTALL_DIR/include -I/usr/include -I/usr/local/include -I/usr/X11R6/include"
+
  usage
+
elif [ $# -eq 2 ]; then
PATH="$PATH:$INSTALL_DIR/bin"
+
  if ! check_options $1 ||  ! check_packages $2 ; then
export PATH
+
    usage
+
  fi
echo "*****************************************************"
+
elif [ $# -eq 1 ]; then
echo "* Incepe procesul de compilare a Enlightenment DR17 *"
+
  if ! check_options $1 && ! check_packages $1 ; then
echo "*****************************************************"
+
    usage
+
  fi
if [ $RESUME -eq 1 ]; then
+
fi
  echo "Va avea loc procesul de RESUME; pentru mai multe detalii $0 help"
+
 
fi
+
if [ "$USE_SUDO" != "yes" ]; then
+
SUDO_BIN=""
# necesara pt. a instala e
+
fi
#export ACLOCAL_FLAGS="-I /usr/share/aclocal"
+
 
+
MYLDFLAGS="$LDFLAGS -L$INSTALL_DIR/lib -L/lib -L/usr/lib \
BEGIN_TIME=`date`
+
  -L/usr/local/lib -L/usr/X11R6/lib"
+
MYCPPFLAGS="$CPPFLAGS -I$INSTALL_DIR/include -I/usr/include \
for BUILD_ARR in $BUILD_LIST ;do
+
  -I/usr/local/include -I/usr/X11R6/include"
  echo "=> $BUILD_ARR"
+
 
  for BUILD_ITEM in ${!BUILD_ARR} ;do
+
PATH="$PATH:$INSTALL_DIR/bin"
    if [[ $RESUME -eq 1 && -f "$CVS_DIR/$BUILD_ITEM/$SKIP_FILE" ]]; then
+
export PATH
      echo "==> SKIP $BUILD_ITEM"
+
 
    else
+
echo "*****************************************************"
      echo "==> COMPILEZ $BUILD_ITEM"
+
echo "* Incepe procesul de compilare a Enlightenment DR17 *"
      cd $CVS_DIR/$BUILD_ITEM
+
echo "*****************************************************"
     
+
 
      env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \
+
if [ $RESUME -eq 1 ]; then
      ./autogen.sh
+
  echo "Va avea loc procesul de RESUME; pentru mai multe detalii $0 help"
      $MAKEBIN clean
+
fi
      env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \
+
 
        ./configure --prefix=$INSTALL_DIR && $MAKE_BIN && $SUDO_BIN $MAKE_BIN install
+
BEGIN_TIME=`date`
      R="$?"
+
 
      if [ $R -eq 1 ]; then
+
# determin nr. total de pachete ce vor fi instalate
        echo
+
NR_PACHETE=0
        echo "==> PROCESUL de compilare oprit de utilizator"
+
for BUILD_ARR in $BUILD_LIST ;do
        echo "==> PACHETUL la care s-a oprit procesul: $BUILD_ITEM !"
+
  BUILD_ARR_LEN=`echo ${!BUILD_ARR}|wc -w`
        exit 1
+
  ((NR_PACHETE+=BUILD_ARR_LEN))
      elif [ $R -eq 2 ]; then
+
done
echo
+
 
        echo "==> EROARE la compilare; procesul de compilare va fi oprit"
+
i=0
        echo "==> PACHETUL la care s-a oprit procesul: $BUILD_ITEM !"
+
for BUILD_ARR in $BUILD_LIST ;do
        exit 1
+
  echo "=> $BUILD_ARR"
      fi
+
  for BUILD_ITEM in ${!BUILD_ARR} ;do
      $SUDO_BIN $LDCONFIG_BIN $INSTALL_DIR/lib
+
    ((i+=1))
      if [ $? ]; then
+
    # schimb titlul consolei corespunzator pachetului pe care il instalez
        touch "$SKIP_FILE"
+
    # ex: "e17_install: (1 din 24) apps/entice"
      fi
+
    TITLU="e17_install: ($i din $NR_PACHETE) $BUILD_ITEM"
    fi
+
    echo -ne "\033]0;$TITLU\007"
  done
+
   
done
+
    if [[ $RESUME -eq 1 && -f "$CVS_DIR/$BUILD_ITEM/$SKIP_FILE" ]]; then
+
      echo "==> SKIP $BUILD_ITEM"
# daca procesul de compilare s-a terminat cu succes, fac curatenie
+
    else
for BUILD_ARR in $BUILD_LIST ;do
+
      echo "==> COMPILEZ $BUILD_ITEM"
  for BUILD_ITEM in ${!BUILD_ARR} ;do
+
     
    if [ -f "$CVS_DIR/$BUILD_ITEM/$SKIP_FILE" ]; then
+
      cd $CVS_DIR/$BUILD_ITEM
      rm -f "$CVS_DIR/$BUILD_ITEM/$SKIP_FILE"
+
   
    fi
+
      env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \
  done
+
        ./autogen.sh
done
+
      $MAKE_BIN clean
+
      env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \
+
          ./configure --prefix=$INSTALL_DIR && $MAKE_BIN && \
END_TIME=`date`
+
          $SUDO_BIN $MAKE_BIN install && \
+
          $SUDO_BIN $LDCONFIG_BIN $INSTALL_DIR/lib
echo "************************************************************"
+
      R="$?"
echo "* Enlightenment DR17 a fost compilat si instalat cu succes *"
+
      if [ $R -eq 1 ]; then
echo "************************************************************"
+
        echo
+
        echo "==> PROCESUL de compilare oprit de utilizator"
# aici o functie care calculeaza timpul scurs
+
        echo "==> PACHETUL la care s-a oprit procesul: $BUILD_ITEM !"
echo "Begin time: $BEGIN_TIME"
+
        exit 1
echo "End time: $END_TIME"
+
      elif [ $R -eq 2 ]; then
+
echo
exit 0
+
        echo "==> EROARE la compilare; procesul de compilare va fi oprit"
</pre>
+
        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
 +
</code>
  
 
==Sfarsit==
 
==Sfarsit==
Sper sa le fie de ajutor celor care vor sa incerce Enlightenment. Astept observatiile/comentariile voastre.
+
Sper ca aceste scripturi sa va fie de ajutor.  
 +
 
 +
Astept observatiile si comentariile voastre.
  
 
==Legaturi utile==
 
==Legaturi utile==
Line 236: Line 369:
  
 
[[Category:HowTo]]
 
[[Category:HowTo]]
[[Category:E17]]
+
[[Category:GEs]]

Latest revision as of 12:14, 13 February 2006

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.

<sh/>

  1. !/bin/sh
  1. Nume fisier: e17_cvs.sh
  2. Versiunea: 2.3
  1. EDITEAZA aceste linii

CVS_DIR="/mnt/hdd1/app_cvs" # directorul unde instalez

  1. ATENTIE: NU EDITA sub aceasta linie #
  1. lista aplicatiilor care vor fi downlodate implicit

DOWNLOAD_LIST="e17"

  1. 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

}

  1. verificam parametri

check_options $1

  1. daca sunt mai multi parametri, atunci acestia
  2. reprezinta lista pachetelor ce trebuiesc descarcate
  1. 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

  1. 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.

<sh/>

  1. !/bin/sh
  1. Nume fisier: e17_install.sh
  2. Versiunea: 3.1
  1. Dependente:
  2. * apps/eclair: taglib, sqlite
  1. EDITEAZA aceste linii

INSTALL_DIR="/usr/local/e17" # directorul unde instalez CVS_DIR="/mnt/hdd1/app_cvs/e17/" # directorul unde se afla sursele CVS USE_SUDO="yes" # schimba in "no" daca vei compila ca si root

  1. ATENTIE: NU EDITA sub aceasta linie #
  1. 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"
  1. erori: libs/emotion

APPS="apps/iconbar apps/entice apps/entrance apps/elicit apps/e \

 apps/e_utils apps/e_modules apps/express apps/imlib2_tools apps/examine apps/eclair"
  1. erori: apps/enscribe apps/evfs apps/euphoria apps/eclair

SPECIAL="apps/elation proto/etk proto/exhibit ../e_modules"

  1. optiuni: apps/elation proto/etk proto/exhibit ../e_modules
  2. erori: ../misc/engage evidence eterm/Eterm e17/proto/entropy
  1. 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

}

  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`

  1. 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

  1. 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 "************************************************************"

  1. 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.

Legaturi utile