From e5cd2c19411e79c7e86d83bd915d2c672d3b4976 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 5 Oct 2012 23:20:18 +0200 Subject: [PATCH] Init script can run on rom command line --- dev/initdata/initdemo.sh | 257 +++++++++++++++++++++------------------ 1 file changed, 141 insertions(+), 116 deletions(-) diff --git a/dev/initdata/initdemo.sh b/dev/initdata/initdemo.sh index a01ef9e2ad1..ccb8ca5d819 100755 --- a/dev/initdata/initdemo.sh +++ b/dev/initdata/initdemo.sh @@ -1,13 +1,16 @@ #!/bin/sh #------------------------------------------------------ # Script to purge and init a database with demo values. -# Note: "dialog" tool need to be available. +# Note: "dialog" tool need to be available if no parameter provided. +# +# WARNING: This script erase all data of database +# with data into dump file # # Regis Houssin - regis@dolibarr.fr # Laurent Destailleur - eldy@users.sourceforge.net #------------------------------------------------------ -# WARNING: This script erase all data of database -# with data into dump file +# Usage: initdemo.sh +# usage: initdemo.sh mysqldump_dolibarr_x.x.x.sql database port login pass #------------------------------------------------------ @@ -17,8 +20,6 @@ then export mydir="." fi export id=`id -u`; -export dumpfile=`ls $mydir/mysqldump_dolibarr_*.sql | sort | tail -n 1` -export dumpfile=`basename $dumpfile` # ----------------------------- check if root @@ -28,122 +29,140 @@ then exit fi -# ----------------------------- input file -DIALOG=${DIALOG=dialog} -DIALOG="$DIALOG --ascii-lines" -fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ -trap "rm -f $fichtemp" 0 1 2 5 15 -$DIALOG --title "Init Dolibarr with demo values" --clear \ - --inputbox "Input dump file :" 16 55 $dumpfile 2> $fichtemp -valret=$? -case $valret in - 0) -dumpfile=`cat $fichtemp`;; - 1) -exit;; - 255) -exit;; -esac -# ----------------------------- database name -DIALOG=${DIALOG=dialog} -DIALOG="$DIALOG --ascii-lines" -fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ -trap "rm -f $fichtemp" 0 1 2 5 15 -$DIALOG --title "Init Dolibarr with demo values" --clear \ - --inputbox "Mysql database name :" 16 55 dolibarrdemo 2> $fichtemp -valret=$? -case $valret in - 0) -base=`cat $fichtemp`;; - 1) -exit;; - 255) -exit;; -esac +# ----------------------------- command line params +dumpfile=$1; +base=$2; +port=$3; +admin=$4; +passwd=$5; -# ---------------------------- database port -DIALOG=${DIALOG=dialog} -fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ -trap "rm -f $fichtemp" 0 1 2 5 15 -$DIALOG --title "Init Dolibarr with demo values" --clear \ - --inputbox "Mysql port (ex: 3306):" 16 55 3306 2> $fichtemp -valret=$? +# ----------------------------- if no params on command line +if [ "x$passwd" = "x" ] +then + export dumpfile=`ls $mydir/mysqldump_dolibarr_*.sql | sort | tail -n 1` + export dumpfile=`basename $dumpfile` -case $valret in - 0) -port=`cat $fichtemp`;; - 1) -exit;; - 255) -exit;; -esac + # ----------------------------- input file + DIALOG=${DIALOG=dialog} + DIALOG="$DIALOG --ascii-lines" + fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ + trap "rm -f $fichtemp" 0 1 2 5 15 + $DIALOG --title "Init Dolibarr with demo values" --clear \ + --inputbox "Input dump file :" 16 55 $dumpfile 2> $fichtemp + valret=$? + case $valret in + 0) + dumpfile=`cat $fichtemp`;; + 1) + exit;; + 255) + exit;; + esac + + # ----------------------------- database name + DIALOG=${DIALOG=dialog} + DIALOG="$DIALOG --ascii-lines" + fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ + trap "rm -f $fichtemp" 0 1 2 5 15 + $DIALOG --title "Init Dolibarr with demo values" --clear \ + --inputbox "Mysql database name :" 16 55 dolibarrdemo 2> $fichtemp + valret=$? + case $valret in + 0) + base=`cat $fichtemp`;; + 1) + exit;; + 255) + exit;; + esac + + # ---------------------------- database port + DIALOG=${DIALOG=dialog} + fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ + trap "rm -f $fichtemp" 0 1 2 5 15 + $DIALOG --title "Init Dolibarr with demo values" --clear \ + --inputbox "Mysql port (ex: 3306):" 16 55 3306 2> $fichtemp + + valret=$? + + case $valret in + 0) + port=`cat $fichtemp`;; + 1) + exit;; + 255) + exit;; + esac + + # ---------------------------- compte admin mysql + DIALOG=${DIALOG=dialog} + fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ + trap "rm -f $fichtemp" 0 1 2 5 15 + $DIALOG --title "Init Dolibarr with demo values" --clear \ + --inputbox "Mysql root login (ex: root):" 16 55 root 2> $fichtemp + + valret=$? + + case $valret in + 0) + admin=`cat $fichtemp`;; + 1) + exit;; + 255) + exit;; + esac + + # ---------------------------- mot de passe admin mysql + DIALOG=${DIALOG=dialog} + fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ + trap "rm -f $fichtemp" 0 1 2 5 15 + $DIALOG --title "Init Dolibarr with demo values" --clear \ + --inputbox "Password for Mysql root login :" 16 55 2> $fichtemp + + valret=$? + + case $valret in + 0) + passwd=`cat $fichtemp`;; + 1) + exit;; + 255) + exit;; + esac + + # ---------------------------- chemin d'acces du repertoire documents + #DIALOG=${DIALOG=dialog} + #fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ + #trap "rm -f $fichtemp" 0 1 2 5 15 + #$DIALOG --title "Init Dolibarr with demo values" --clear \ + # --inputbox "Full path to documents directory (ex: /var/www/dolibarr/documents)- no / at end :" 16 55 2> $fichtemp + + #valret=$? + + #case $valret in + # 0) + #docs=`cat $fichtemp`;; + # 1) + #exit;; + # 255) + #exit;; + #esac + + # ---------------------------- confirmation + DIALOG=${DIALOG=dialog} + $DIALOG --title "Init Dolibarr with demo values" --clear \ + --yesno "Do you confirm ? \n Dump file : '$dumpfile' \n Dump dir : '$mydir' \n Mysql database : '$base' \n Mysql port : '$port' \n Mysql login: '$admin' \n Mysql password : '$passwd'" 15 55 + + case $? in + 0) echo "Ok, start process...";; + 1) exit;; + 255) exit;; + esac -# ---------------------------- compte admin mysql -DIALOG=${DIALOG=dialog} -fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ -trap "rm -f $fichtemp" 0 1 2 5 15 -$DIALOG --title "Init Dolibarr with demo values" --clear \ - --inputbox "Mysql root login (ex: root):" 16 55 root 2> $fichtemp +fi -valret=$? - -case $valret in - 0) -admin=`cat $fichtemp`;; - 1) -exit;; - 255) -exit;; -esac - -# ---------------------------- mot de passe admin mysql -DIALOG=${DIALOG=dialog} -fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ -trap "rm -f $fichtemp" 0 1 2 5 15 -$DIALOG --title "Init Dolibarr with demo values" --clear \ - --inputbox "Password for Mysql root login :" 16 55 2> $fichtemp - -valret=$? - -case $valret in - 0) -passwd=`cat $fichtemp`;; - 1) -exit;; - 255) -exit;; -esac - -# ---------------------------- chemin d'acces du repertoire documents -#DIALOG=${DIALOG=dialog} -#fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$ -#trap "rm -f $fichtemp" 0 1 2 5 15 -#$DIALOG --title "Init Dolibarr with demo values" --clear \ -# --inputbox "Full path to documents directory (ex: /var/www/dolibarr/documents)- no / at end :" 16 55 2> $fichtemp - -#valret=$? - -#case $valret in -# 0) -#docs=`cat $fichtemp`;; -# 1) -#exit;; -# 255) -#exit;; -#esac - -# ---------------------------- confirmation -DIALOG=${DIALOG=dialog} -$DIALOG --title "Init Dolibarr with demo values" --clear \ - --yesno "Do you confirm ? \n Dump file : '$dumpfile' \n Dump dir : '$mydir' \n Mysql database : '$base' \n Mysql port : '$port' \n Mysql login: '$admin' \n Mysql password : '$passwd'" 15 55 - -case $? in - 0) echo "Ok, start process...";; - 1) exit;; - 255) exit;; -esac # ---------------------------- run sql file if [ "x$passwd" != "x" ] @@ -154,6 +173,12 @@ fi #mysql -P$port -u$admin $passwd $base < $mydir/$dumpfile echo "mysql -P$port -u$admin -p***** $base < $mydir/$dumpfile" mysql -P$port -u$admin $passwd $base < $mydir/$dumpfile +export res=$? -echo "Dolibarr data demo has been loaded." +if [ "x$res" = "x0" ] +then + echo "Success, file successfully loaded." +else + echo "Error, load failed." +fi echo