diff --git a/build.sh b/build.sh index 203b6ce..419a9a2 100755 --- a/build.sh +++ b/build.sh @@ -5,7 +5,8 @@ set -o pipefail # Bashism KALI_DIST=kali KALI_VERSION="${VERSION:-daily}" -TARGET_DIR=$(dirname $0)/images/kali-$KALI_VERSION +TARGET_DIR=$(dirname $0)/images +TARGET_SUBDIR="kali-$KALI_VERSION" SUDO="sudo" VERBOSE="" @@ -23,6 +24,17 @@ image_name() { echo $IMAGE_TEMPLATE | sed -e "s/ARCH/$arch/" } +target_image_name() { + local arch=$1 + + IMAGE_NAME="$(image_name $arch)" + IMAGE_EXT="${IMAGE_NAME##*.}" + if [ "$IMAGE_EXT" = "$IMAGE_NAME" ]; then + IMAGE_EXT="img" + fi + echo "$TARGET_SUBDIR/kali-linux-$KALI_VERSION-$KALI_ARCH.$IMAGE_EXT" +} + failure() { echo "Build of $KALI_DIST/$KALI_ARCH live image failed" >&2 if [ -n "$VERBOSE" ]; then @@ -42,7 +54,7 @@ run_and_log() { } # Parsing command line options -temp=$(getopt -o spdrva: -l single,proposed-updates,kali-dev,kali-rolling,verbose,arch: -- "$@") +temp=$(getopt -o spdrva: -l single,proposed-updates,kali-dev,kali-rolling,verbose,arch:,get-image-path -- "$@") eval set -- "$temp" while true; do case "$1" in @@ -52,6 +64,7 @@ while true; do -r|--kali-rolling) OPT_kali_rolling="1"; shift 1; ;; -a|--arch) KALI_ARCHES="${KALI_ARCHES:+$KALI_ARCHES } $2"; shift 2; ;; -v|--verbose) VERBOSE="1"; shift 1; ;; + --get-image-path) ACTION="get-image-path"; shift 1; ;; --) shift; break; ;; *) echo "ERROR: Invalid command-line option: $1" >&2; exit 1; ;; esac @@ -80,14 +93,12 @@ done KALI_CONFIG_OPTS="--" if [ -n "$OPT_kali_rolling" ]; then - echo "Using kali-rolling as the base distribution" KALI_CONFIG_OPTS="$KALI_CONFIG_OPTS --kali-rolling" if [ "$KALI_VERSION" = "daily" ]; then KALI_VERSION="rolling" fi KALI_DIST="kali-rolling" elif [ -n "$OPT_kali_dev" ]; then - echo "Using kali-dev as the base distribution" KALI_CONFIG_OPTS="$KALI_CONFIG_OPTS --kali-dev" if [ "$KALI_VERSION" = "daily" ]; then KALI_VERSION="dev" @@ -95,7 +106,6 @@ elif [ -n "$OPT_kali_dev" ]; then KALI_DIST="kali-dev" fi if [ -n "$OPT_pu" ]; then - echo "Integrating proposed-updates in the image" KALI_CONFIG_OPTS="$KALI_CONFIG_OPTS --proposed-updates" KALI_DIST="$KALI_DIST+pu" fi @@ -127,8 +137,15 @@ else SUDO="" # We're already root fi +if [ "$ACTION" = "get-image-path" ]; then + for KALI_ARCH in $KALI_ARCHES; do + echo $(target_image_name $KALI_ARCH) + done + exit 0 +fi + cd $(dirname $0) -mkdir -p $TARGET_DIR +mkdir -p $TARGET_DIR/$TARGET_SUBDIR for KALI_ARCH in $KALI_ARCHES; do IMAGE_NAME="$(image_name $KALI_ARCH)" @@ -143,14 +160,6 @@ for KALI_ARCH in $KALI_ARCHES; do failure fi set -e - IMAGE_EXT="${IMAGE_NAME##*.}" - if [ "$IMAGE_EXT" = "$IMAGE_NAME" ]; then - IMAGE_EXT="img" - fi - mv -f $IMAGE_NAME $TARGET_DIR/kali-linux-$KALI_VERSION-$KALI_ARCH.$IMAGE_EXT - mv -f build.log $TARGET_DIR/kali-linux-$KALI_VERSION-$KALI_ARCH.log + mv -f $IMAGE_NAME $(target_image_name $KALI_ARCH) + mv -f build.log $TARGET_DIR/$TARGET_SUBDIR/kali-linux-$KALI_VERSION-$KALI_ARCH.log done - -if [ -x ../bin/update-checksums ]; then - ../bin/update-checksums $TARGET_DIR -fi