summaryrefslogtreecommitdiff
path: root/stage-pkg
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2021-04-15 12:59:53 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2021-04-15 12:59:53 +0200
commita59a1edc34c8139419adf8029c725de604f92470 (patch)
tree244a77935891996e457899effd28b8fd6fbc1f45 /stage-pkg
parentb83677a048516c400bce7fcd18649253c20e7ad1 (diff)
Redo stage script to first prepare everything and then upload
Diffstat (limited to 'stage-pkg')
-rwxr-xr-xstage-pkg104
1 files changed, 58 insertions, 46 deletions
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 [<options>] <group> <dir>..."
@@ -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() # <group> <dir>
-{
- 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() # <group> <dir>
+ {
+ 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.
#