Personal tools

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

From linux360

Jump to: navigation, search
(corecturi de exprimare)
(am corectat e17_cvs.sh)
Line 10: Line 10:
  
 
# Nume fisier: e17_cvs.sh
 
# Nume fisier: e17_cvs.sh
# Versiunea: 2.0
+
# Versiunea: 2.1
  
 
# EDITEAZA aceste linii
 
# EDITEAZA aceste linii
Line 26: Line 26:
 
function usage()
 
function usage()
 
{
 
{
   echo "Folosire: e17_cvs.sh [e17|engage|evidence|all|help]"
+
   echo "Folosire: e17_cvs [e17|engage|evidence|all|help]"
 
   echo
 
   echo
 
   echo "optiuni:"
 
   echo "optiuni:"
Line 55: Line 55:
 
     e17)
 
     e17)
 
     echo "==> DESCARC Enlightenment DR 17"
 
     echo "==> DESCARC Enlightenment DR 17"
     cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login
+
     cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login && \
 
     cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co e17
 
     cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co e17
 
     return #?
 
     return #?
 
     ;;
 
     ;;
     enagage)
+
     engage)
 
     echo "==> DESCARC Engage"
 
     echo "==> DESCARC Engage"
     cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login
+
     cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login && \
 
     cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co misc/engage
 
     cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co misc/engage
 
     return #?
 
     return #?
Line 67: Line 67:
 
     evidence)
 
     evidence)
 
     echo "==> DESCARC Evidence"
 
     echo "==> DESCARC Evidence"
     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 #?
 
     return #?
Line 81: Line 81:
 
   return 1
 
   return 1
 
}
 
}
 +
 +
if [ $# -eq 0 ]; then
 +
  usage
 +
fi
  
 
# verificam parametri
 
# verificam parametri
if [ $# -eq 1 ]; then
+
check_options $1
  check_options $1
 
elif [ $# -gt 1 ]; then
 
  # daca sunt mai multi parametri, atunci acestia
 
  # reprezinta lista pachetelor ce trebuiesc descarcate
 
  
  # cream o lista cu toti parametri
+
# daca sunt mai multi parametri, atunci acestia
  NR_PARAM=$#
+
# reprezinta lista pachetelor ce trebuiesc descarcate
  DOWNLOAD_LIST=""
 
  
  for ((i=1; i <= NR_PARAM; i++)); do
+
# cream o lista cu toti parametri
    DOWNLOAD_LIST="$DOWNLOAD_LIST${!i} "
+
NR_PARAM=$#
  done
+
DOWNLOAD_LIST=""
  
   # verificam validitatea pachetelor din lista
+
for ((i=1; i <= NR_PARAM; i++)); do
  for ITEM in $DOWNLOAD_LIST; do
+
   DOWNLOAD_LIST="$DOWNLOAD_LIST${!i} "
    REZ_STR=$(echo $AVAILABLE_LIST | grep ":$ITEM:")
+
done
    if [ ! -n "$REZ_STR" ]; then
+
 
      echo "Pachet inexistent: $ITEM"
+
# verificam validitatea pachetelor din lista
      usage
+
for ITEM in $DOWNLOAD_LIST; do
    fi
+
  REZ_STR=$(echo $AVAILABLE_LIST | grep ":$ITEM:")
  done
+
  if [ ! -n "$REZ_STR" ]; then
fi
+
    echo "Pachet inexistent: $ITEM"
 +
    usage
 +
  fi
 +
done
  
 
# descarcam pachetele
 
# descarcam pachetele

Revision as of 01:06, 11 December 2005

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

# 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:"

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 "	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 #?
    ;;
    all)
    echo "==> DESCARC pachetele: Enlightenment DR 17, Engage, Evidence"
    download_packages e17
    download_packages engage
    download_packages evidence
    return #?
    ;;
  esac
  return 1
}

if [ $# -eq 0 ]; then
  usage
fi

# verificam parametri
check_options $1

# daca sunt mai multi parametri, atunci acestia
# reprezinta lista pachetelor ce trebuiesc descarcate

# cream o lista cu toti parametri
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

# 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: 2.1

# EDITEAZA aceste linii
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)
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="e17/libs/imlib2 e17/libs/eet e17/libs/evas e17/libs/ecore e17/libs/embryo e17/libs/edje e17/libs/edb \
e17/libs/epeg e17/libs/epsilon e17/libs/esmart e17/libs/etox e17/libs/ewl e17/libs/engrave e17/libs/imlib2_loaders"
# erori: e17/libs/emotion

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"
# erori: e17/apps/enscribe e17/apps/evfs e17/apps/euphoria

SPECIAL="misc/engage"
# erori: 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

# necesara pt. a instala e
#export ACLOCAL_FLAGS="-I /usr/share/aclocal"

BEGIN_TIME=`date`

for BUILD_ARR in $BUILD_LIST ;do
  echo "=> $BUILD_ARR"
  for BUILD_ITEM in ${!BUILD_ARR} ;do
    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
      $MAKEBIN 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.

Legaturi utile