diff --git a/bin/juju b/bin/juju index fb3a412..e911289 100755 --- a/bin/juju +++ b/bin/juju @@ -91,18 +91,22 @@ done $OPT_HELP && usage && exit $OPT_VERSION && version && exit -if $OPT_SETUP_FROM_FILE; then - setup_from_file_juju ${ARGS[@]} - exit -elif $OPT_BUILD_IMAGE; then +if $OPT_BUILD_IMAGE; then build_image_juju exit elif $OPT_DELETE; then delete_juju - exit + exit fi -[ ! "$(ls -A $JUJU_HOME)" ] && setup_juju +if ! is_juju_installed +then + if $OPT_SETUP_FROM_FILE; then + setup_from_file_juju ${ARGS[@]} + else + setup_juju + fi +fi if $OPT_FAKEROOT; then run_juju_as_fakeroot diff --git a/lib/core.sh b/lib/core.sh index 014619f..dcb2858 100644 --- a/lib/core.sh +++ b/lib/core.sh @@ -29,7 +29,6 @@ source "$(dirname ${BASH_ARGV[0]})/util.sh" ################################# VARIABLES ############################## [ -z ${JUJU_HOME} ] && JUJU_HOME=~/.juju -mkdir -p "${JUJU_HOME}" if [ -z ${JUJU_TEMPDIR} ] || [ ! -d ${JUJU_TEMPDIR} ] then JUJU_TEMPDIR=/tmp @@ -67,6 +66,11 @@ fi PROOT="$LD_LIB --library-path ${JUJU_HOME}/usr/lib:${JUJU_HOME}/lib ${JUJU_HOME}/usr/bin/proot" ################################# MAIN FUNCTIONS ############################## +function is_juju_installed(){ + [ -d "$JUJU_HOME" ] && [ "$(ls -A $JUJU_HOME)" ] && return 0 + return 1 +} + function cleanup_build_directory(){ # $1: maindir (optional) - str: build directory to get rid local maindir=$1 @@ -83,8 +87,8 @@ function prepare_build_directory(){ function _setup_juju(){ - [ "$(ls -A $JUJU_HOME)" ] && die "Error: JuJu has been already installed in $JUJU_HOME" - + is_juju_installed && die "Error: JuJu has been already installed in $JUJU_HOME" + mkdir -p "${JUJU_HOME}" imagepath=$1 tar -zxpf ${imagepath} -C ${JUJU_HOME} mkdir -p ${JUJU_HOME}/run/lock