From f7595585fae0e0844877ad111388837aaf74028b Mon Sep 17 00:00:00 2001 From: rhatto Date: Thu, 8 Feb 2007 23:58:09 +0000 Subject: changing template location procedures git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@163 04377dda-e619-0410-9926-eae83683ac58 --- conf/simplepkg.conf.new | 3 +++ doc/CHANGELOG | 5 +++++ lib/common.sh | 52 +++++++++++++++++++++++++++++++++++++++++++++++ src/jail-update | 2 ++ src/mkjail | 47 +++++++++++++++++++++--------------------- src/templatepkg | 15 ++++++++------ templates/mplayer.metapkg | 14 ------------- 7 files changed, 95 insertions(+), 43 deletions(-) delete mode 100644 templates/mplayer.metapkg diff --git a/conf/simplepkg.conf.new b/conf/simplepkg.conf.new index 29be9fa..f590feb 100644 --- a/conf/simplepkg.conf.new +++ b/conf/simplepkg.conf.new @@ -94,3 +94,6 @@ CONSIDER_ALL_PACKAGES_AS_PATCHES="0" # stored in the same tree. STORE_ROOT_PATCHES_ON_PATCHES_DIR="0" +# Where your templates will be located +TEMPLATE_FOLDER="/etc/simplepkg/templates" + diff --git a/doc/CHANGELOG b/doc/CHANGELOG index f4cbce3..c64e5fc 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -7,6 +7,11 @@ simplepkg changelog - SIGNATURE_CHECKING - signature checking - dependency checking through slack-required + mkjail: + - templates now can be stored either on + - /etc/simplepkg/template_name.template + - /etc/simplepkg/templates/template_name.template + - /etc/simplepkg/templates/template_name/template_name.template 0.4.9pre18-23: simplaret: - enhanced http retrieval: curl support diff --git a/lib/common.sh b/lib/common.sh index 2b78c10..5b82469 100644 --- a/lib/common.sh +++ b/lib/common.sh @@ -198,6 +198,10 @@ function eval_config { FTP_TOOL="`eval_parameter FTP_TOOL curl`" HTTP_TOOL="`eval_parameter HTTP_TOOL curl`" CONNECT_TIMEOUT="`eval_parameter CONNECT_TIMEOUT 0`" + TEMPLATE_FOLDER="`eval_parameter TEMPLATE_BASE /etc/simplepkg/templates`" + + # TODO: also add this stuff in simplepkg.conf.new + # TEMPLATE_STORAGE_STYLE SIMPLARET_CLEAN="`eval_boolean_parameter SIMPLARET_CLEAN 1`" SIMPLARET_DELETE_DOWN="`eval_boolean_parameter SIMPLARET_DELETE_DOWN 1`" @@ -307,3 +311,51 @@ function default_arch { } +function search_default_template { + + if [ -f "$BASE_CONF/templates/default.template" ]; then + TEMPLATE_BASE="$BASE_CONF/templates/default" + echo $BASENAME: using default template + elif [ -f "$BASE_CONF/default.template" ]; then + TEMPLATE_BASE="$BASE_CONF/default" + echo $BASENAME using default template + else + echo $BASENAME: error: default template not found + echo $BASENAME: please create a template using templatepkg + return 1 + fi +} + +function search_template { + + # determine the template to be used + # usage: [--new] + + # + # templates can be stored either on + # + # - $BASE_CONF/template_name.template + # - $BASE_CONF/templates/template_name.template + # - $BASE_CONF/templates/template_name/template_name.template + # + + if [ -f "$BASE_CONF/$1.template" ]; then + TEMPLATE_BASE="$BASE_CONF/$1" + elif [ -f "$BASE_CONF/templates/$1.template" ]; then + TEMPLATE_BASE="$BASE_CONF/templates/$1" + elif [ -f "$BASE_CONF/templates/$1/$1.template" ]; then + TEMPLATE_BASE="$BASE_CONF/templates/$1/$1" + else + if [ "$2" == "--new" ]; then + # we need to return the path for a new template + # TODO: set a path for the new template + # TODO: TEMPLATE_STORAGE_STYLE + true + else + echo $BASENAME: template $1 not found + search_default_template + fi + fi + +} + diff --git a/src/jail-update b/src/jail-update index f6635b5..07d1d1b 100755 --- a/src/jail-update +++ b/src/jail-update @@ -25,6 +25,8 @@ else exit 1 fi +# TODO: get the correct template folder + if [ -f $JAIL_LIST ]; then for jailpath in `cat $JAIL_LIST`; do jail="`basename $jailpath`" diff --git a/src/mkjail b/src/mkjail index 49c6c8a..0f9834d 100755 --- a/src/mkjail +++ b/src/mkjail @@ -18,9 +18,10 @@ # COMMON="/usr/libexec/simplepkg/common.sh" +BASENAME="`basename $0`" function usage { - echo "usage: [ROOT=/otherroot] `basename $0` [template]" + echo "usage: [ARCH=arch] [VERSION=version] [ROOT=/otherroot] $BASENAME [template]" exit 1 } @@ -38,47 +39,47 @@ else eval_config `basename $0` -u fi -if [[ ! -z "$2" && -f "$BASE_CONF/$2.template" ]]; then - TEMPLATE="$BASE_CONF/$2.template" -elif [[ ! -z "$2" && ! -f "$BASE_CONF/$2.template" ]]; then - echo template $2 not found, using default template - TEMPLATE="$BASE_CONF/default.template" -elif [[ -z "$2" && -f "$BASE_CONF/default.template" ]]; then - TEMPLATE="$BASE_CONF/default.template" - echo using default template +if [ ! -z "$2" ]; then + search_template $2 + result="$?" else - echo `basename $0` error: no templates found - echo please create a template using templatepkg + result="$?" + search_default_template +fi + +if [ "$result" != "0" ]; then exit 1 fi +TEMPLATE="$TEMPLATE_BASE.template" + if [ ! -d "$JAIL_ROOT/$server" ]; then mkdir -p $JAIL_ROOT/$server else if [ ! -z "`ls $JAIL_ROOT/$server | grep -v 'lost+found'`" ]; then - echo error: folder $JAIL_ROOT/$server already exists and seens to be not empty - echo probably the jail $1 already exists + echo $BASENAME: error: folder $JAIL_ROOT/$server already exists and seens to be not empty + echo $BASENAME: probably the jail $1 already exists exit 1 fi fi -echo "instaling packages into $JAIL_ROOT/$server using $TEMPLATE..." +echo "$BASENAME: instaling packages into $JAIL_ROOT/$server using $TEMPLATE..." install_packages -TEMPLATE="`echo $TEMPLATE | sed -e 's/\.template$//'`" -echo "copying template files..." -if [ -d "$TEMPLATE.d" ]; then - rsync -av $TEMPLATE.d/ $JAIL_ROOT/$server/ +echo "$BASENAME: copying template files..." +if [ -d "$TEMPLATE_BASE.d" ]; then + rsync -av $TEMPLATE_BASE.d/ $JAIL_ROOT/$server/ fi -echo "executing template scripts..." +echo "$BASENAME: executing template scripts..." if [ -d "$TEMPLATE.s" ]; then for script in `ls $TEMPLATE.s/`; do - if [ -x "$TEMPLATE.s/$script" ]; then - exec $TEMPLATE.s/$script $JAIL_ROOT $server + if [ -x "$TEMPLATE_BASE.s/$script" ]; then + exec $TEMPLATE_BASE.s/$script $JAIL_ROOT $server fi done fi -echo "$JAIL_ROOT/$server" >> $JAIL_LIST -echo "done creating $server jail" +echo $JAIL_ROOT/$server >> $JAIL_LIST +echo $BASENAME: done creating $server jail + diff --git a/src/templatepkg b/src/templatepkg index 9c1f8bc..dc0323c 100755 --- a/src/templatepkg +++ b/src/templatepkg @@ -19,6 +19,7 @@ # COMMON="/usr/libexec/simplepkg/common.sh" +BASENAME="`basename $0`" if [ -f "$COMMON" ]; then source $COMMON @@ -31,24 +32,26 @@ fi APPEND="0" if [[ ! -z "$3" && "$1" == "-a" ]]; then ROOT="$3" - TEMPLATE="$BASE_CONF/$2.template" + search_template $2 --new APPEND="1" elif [[ ! -z "$2" && "$1" == "-a" ]]; then ROOT="/" - TEMPLATE="$BASE_CONF/$2.template" + search_template $2 --new APPEND="1" elif [[ ! -z "$2" ]]; then ROOT="$2" - TEMPLATE="$BASE_CONF/$1.template" + search_template $1 --new elif [[ ! -z "$1" ]]; then - TEMPLATE="$BASE_CONF/$1.template" + search_template $1 --new ROOT="/" else - echo "usage: `basename $0` [-a]