From a59a1edc34c8139419adf8029c725de604f92470 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 15 Apr 2021 12:59:53 +0200 Subject: Redo stage script to first prepare everything and then upload --- stage-pkg | 104 +++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 58 insertions(+), 46 deletions(-) (limited to 'stage-pkg') diff --git a/stage-pkg b/stage-pkg index 6930fd9..5814d21 100755 --- a/stage-pkg +++ b/stage-pkg @@ -9,10 +9,13 @@ # Distribute only without regenerating or publishing the repository. # # -g -# Distribute and regenerating only without publishing the repository. +# Distribute and regenerate only without publishing the repository. +# +# -p +# Publish only without distributing and regenerating the repository. # # -q -# Publish packages into the queue instead of staging. Implies -d. +# Put packages into the queue instead of staging. Implies -d. # usage="usage: etc/stage-pkg [] ..." @@ -39,6 +42,7 @@ repo_host2= clean= dist_only= gen_only= +pub_only= group= dirs=() @@ -56,6 +60,10 @@ while [ $# -gt 0 ]; do gen_only=true shift ;; + -p) + pub_only=true + shift + ;; -q) #repo_name="CPPGET.ORG/QUEUE" repo_dir="cppget.org/queue/1/alpha" @@ -75,62 +83,66 @@ while [ $# -gt 0 ]; do esac done -if [ -z "$group" -o "${#dirs[@]}" -eq 0 ]; then - error "$usage" -fi +if [ -z "$pub_only" ]; then + + if [ -z "$group" -o "${#dirs[@]}" -eq 0 ]; then + error "$usage" + fi -mkdir -p /tmp/dist + mkdir -p /tmp/dist -# Dist individual packages into the repository. -# -function dist() # -{ - local o="$repo_dir/$1" - local b="$(basename $2)" - local d="$2-default" - - # If *-default/ exists, use that (old style out of tree configuration). - # Otherwise, use the source directory itself (new style forwarded - # configuration). + # Dist individual packages into the repository. # - if ! test -d "$d"; then - d="$2" + function dist() # + { + local o="$repo_dir/$1" + local b="$(basename $2)" + local d="$2-default" + + # If *-default/ exists, use that (old style out of tree configuration). + # Otherwise, use the source directory itself (new style forwarded + # configuration). + # if ! test -d "$d"; then - error "neither $2-default nor $2 exist" + d="$2" + if ! test -d "$d"; then + error "neither $2-default nor $2 exist" + fi fi - fi - mkdir -p "$o" + mkdir -p "$o" - # Clean up old packages. - # - if [ -n "$clean" ]; then - rm -f "$o/$b"-* - fi + # Clean up old packages. + # + if [ -n "$clean" ]; then + rm -f "$o/$b"-* + fi - b "dist($d/)" config.dist.root=/tmp/dist "config.dist.archives=$owd/$o/tar.gz" -} + b "dist($d/)" config.dist.root=/tmp/dist "config.dist.archives=$owd/$o/tar.gz" + } -for d in "${dirs[@]}"; do - dist "$group" "$d" -done + for d in "${dirs[@]}"; do + dist "$group" "$d" + done -if [ -n "$dist_only" ]; then - exit 0 -fi + if [ -n "$dist_only" ]; then + exit 0 + fi -# Regenerate the repository. -# -info "Insert $repo_name signing key and press Enter" -read -etc/rep-update "$repo_dir/" \ - --openssl-option -engine --openssl-option pkcs11 \ - --openssl-option -keyform --openssl-option engine \ - --key "label_SIGN key" + # Regenerate the repository. + # + info "Insert $repo_name signing key and press Enter" + read + etc/rep-update "$repo_dir/" \ + --openssl-option -engine --openssl-option pkcs11 \ + --openssl-option -keyform --openssl-option engine \ + --key "label_SIGN key" + + if [ -n "$gen_only" ]; then + exit 0 + fi -if [ -n "$gen_only" ]; then - exit 0 -fi +fi # !pub_only # Sync repository. # -- cgit v1.1