From 7211ff89104c99d9103842b71957e82c8ada86fe Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Thu, 9 Oct 2014 16:01:10 -0300 Subject: Add parameters to use different keys and repos. Now, from the command line you can set the key to use as well as the repository. Show at start the value of the parameters to be sure that we set the options as we needed. Add the option to use a repo file instead of downloading the latest one, this is useful for the first time release. --- tuf-stuff.sh | 54 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/tuf-stuff.sh b/tuf-stuff.sh index 6a9178e..8aa83ec 100755 --- a/tuf-stuff.sh +++ b/tuf-stuff.sh @@ -35,13 +35,15 @@ cc_normal="${esc}[39m" show_help() { cat << EOF -Usage: ${0##*/} [-h] [-s] [-a (32|64)] -v VERSION +Usage: ${0##*/} [-h] [-r FILE] [-s] [-a (32|64)] -v VERSION -k KEY_FILE Do stuff for version VERSION and arch ARCH. - -h display this help and exit. - -a ARCH do the tuf stuff for that ARCH, 32 or 64 bits. The default is '64'. - -s run the setup process, create virtualenv and install dependencies. - -v VERSION version to work with. This is a mandatory argument. + -h display this help and exit. + -a ARCH do the tuf stuff for that ARCH, 32 or 64 bits. The default is '64'. + -k KEY_FILE use this key file to sign the release + -r FILE use particular repo/ file to do the tuf stuff. FILE must be a .tar.gz file. + -s run the setup process, create virtualenv and install dependencies. + -v VERSION version to work with. This is a mandatory argument. EOF } @@ -50,8 +52,9 @@ get_args() { local OPTIND ARCH="64" + SETUP="NO" - while getopts "hsv:a:" opt; do + while getopts "hr:sv:a:k:" opt; do case "$opt" in h) show_help @@ -59,8 +62,12 @@ get_args() { ;; v) VERSION=$OPTARG ;; + r) REPO=`realpath $OPTARG` + ;; s) SETUP='YES' ;; + k) KEY_FILE=`realpath $OPTARG` + ;; a) ARCH=$OPTARG ;; '?') @@ -72,10 +79,24 @@ get_args() { shift "$((OPTIND-1))" # Shift off the options and optional --. if [[ -z $VERSION ]]; then - echo 'Missing -v flag' + echo 'Error: missing -v flag' + show_help + exit 1 + fi + if [[ -z $KEY_FILE ]]; then + echo 'Error: missing -k flag' show_help exit 1 fi + + echo "---------- settings ----------" + echo "Arch: $ARCH" + echo "Key: $KEY_FILE" + echo "Repo: $REPO" + echo "Setup: $SETUP" + echo "Version: $VERSION" + echo "--------------------" + read -p "Press to continue, +C to exit. " } # ---------------------------------------- @@ -88,7 +109,6 @@ do_init(){ VENVDIR=$WORKDIR/tuf.venv BITMASK="Bitmask-linux$ARCH-$VERSION" - KEY="$BASE/tuf_private_key.pem" RELEASE=$BASE/../bitmask_client/pkg/tuf/release.py # Initialize path @@ -121,10 +141,16 @@ do_tuf_stuff() { TUF_ARCH='linux-i386' fi - # Download old repo metadata - echo "${cc_yellow}-> Downloading metadata files from the old bundle...${cc_normal}" - wget --quiet --recursive --no-host-directories --cut-dirs=2 --no-parent --reject "index.html*" https://dl.bitmask.net/tuf/$TUF_ARCH/metadata/ - mv metadata metadata.staged + if [[ -z $REPO ]]; then + # Download old repo metadata + echo "${cc_yellow}-> Downloading metadata files from the old bundle...${cc_normal}" + wget --quiet --recursive --no-host-directories --cut-dirs=2 --no-parent --reject "index.html*" https://dl.bitmask.net/tuf/$TUF_ARCH/metadata/ + mv metadata metadata.staged + else + echo "${cc_yellow}-> Extracting metadata files from the repo file...${cc_normal}" + # we need that specific folder without the repo/ parent path + tar xzf $REPO repo/metadata.staged/ --strip-components=1 + fi echo "${cc_yellow}-> Uncompressing bundle and moving to its place...${cc_normal}" tar xjf $BASE/$BITMASK.tar.bz2 # fresh bundled bundle @@ -133,7 +159,7 @@ do_tuf_stuff() { mv $BITMASK targets echo "${cc_yellow}-> Doing release magic...${cc_normal}" - $RELEASE $WORKDIR/repo $KEY + $RELEASE $WORKDIR/repo $KEY_FILE echo "${cc_yellow}-> Creating output file...${cc_normal}" cd $WORKDIR @@ -147,7 +173,7 @@ get_args $@ do_init -if [[ -n $SETUP ]]; then +if [[ $SETUP == 'YES' ]]; then do_setup else if [[ ! -f $VENVDIR/bin/activate ]]; then -- cgit v1.2.3