From 5ff1d53bd82829ca31c2eb9c99c22305efd5abd5 Mon Sep 17 00:00:00 2001 From: Carlo Landmeter Date: Fri, 10 Jan 2020 09:28:00 +0100 Subject: add script to administer dabuild --- dabuild-admin | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 dabuild-admin (limited to 'dabuild-admin') diff --git a/dabuild-admin b/dabuild-admin new file mode 100755 index 0000000..86c5da8 --- /dev/null +++ b/dabuild-admin @@ -0,0 +1,25 @@ +#!/bin/sh + +readonly cmd=$1 + +manage_config() { + docker run --user 1000:1000 --rm -it --workdir /mnt/abuild \ + -v dabuild-config:/mnt/abuild alpine sh +} + +usage() { + cat <<- EOF + dabuild: version (unknown) + + Available commands: + config: access abuild configuration + help: this help screen + EOF +} + + +case $cmd in + config) manage_config;; + help) usage;; + *) usage; exit 1;; +esac -- cgit v1.3 From c881e41b1d4f4722c4dbda6f646e50aa378e2298 Mon Sep 17 00:00:00 2001 From: Carlo Landmeter Date: Fri, 10 Jan 2020 10:31:36 +0100 Subject: admin: add cmd to list all volumes --- dabuild-admin | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'dabuild-admin') diff --git a/dabuild-admin b/dabuild-admin index 86c5da8..fe74182 100755 --- a/dabuild-admin +++ b/dabuild-admin @@ -7,12 +7,17 @@ manage_config() { -v dabuild-config:/mnt/abuild alpine sh } +list_volumes() { + docker volume ls --quiet --filter name="^dabuild" +} + usage() { cat <<- EOF dabuild: version (unknown) Available commands: config: access abuild configuration + volumes: list created dabuild volumes help: this help screen EOF } @@ -20,6 +25,7 @@ usage() { case $cmd in config) manage_config;; + volumes) list_volumes;; help) usage;; *) usage; exit 1;; esac -- cgit v1.3 From 8dd4a740439ea72bb288f5b07cf204e0bdbe42c2 Mon Sep 17 00:00:00 2001 From: Carlo Landmeter Date: Sat, 11 Jan 2020 22:17:45 +0100 Subject: admin: add enable multi-arch --- dabuild-admin | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'dabuild-admin') diff --git a/dabuild-admin b/dabuild-admin index fe74182..87861d4 100755 --- a/dabuild-admin +++ b/dabuild-admin @@ -11,6 +11,11 @@ list_volumes() { docker volume ls --quiet --filter name="^dabuild" } +enable_multiarch() { + docker run --rm --privileged multiarch/qemu-user-static \ + --reset --persistent yes --credential yes +} + usage() { cat <<- EOF dabuild: version (unknown) @@ -18,6 +23,7 @@ usage() { Available commands: config: access abuild configuration volumes: list created dabuild volumes + multiarch: enable docker multi-arch support help: this help screen EOF } @@ -26,6 +32,7 @@ usage() { case $cmd in config) manage_config;; volumes) list_volumes;; + multiarch) enable_multiarch;; help) usage;; *) usage; exit 1;; esac -- cgit v1.3 From 01864fcb022ea355be58f366d8e30ce5008a51f3 Mon Sep 17 00:00:00 2001 From: Carlo Landmeter Date: Tue, 14 Jan 2020 10:21:45 +0100 Subject: admin: set shell to -eu --- dabuild-admin | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'dabuild-admin') diff --git a/dabuild-admin b/dabuild-admin index 87861d4..a235f24 100755 --- a/dabuild-admin +++ b/dabuild-admin @@ -1,6 +1,8 @@ #!/bin/sh -readonly cmd=$1 +set -eu + +readonly cmd=${1:-help} manage_config() { docker run --user 1000:1000 --rm -it --workdir /mnt/abuild \ -- cgit v1.3 From 86fc81da6841708a04bcc4d084e03a43dc508334 Mon Sep 17 00:00:00 2001 From: Carlo Landmeter Date: Sat, 18 Jan 2020 14:39:04 +0100 Subject: admin: multiarch add enable/disable with warning --- dabuild-admin | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) (limited to 'dabuild-admin') diff --git a/dabuild-admin b/dabuild-admin index a235f24..6303e9c 100755 --- a/dabuild-admin +++ b/dabuild-admin @@ -4,6 +4,24 @@ set -eu readonly cmd=${1:-help} +die() { + echo "$@" >&2 + exit 1 +} + +ask() { + local question="$1" + while true; do + # SC2039 -p is non posix but widely available + read -rp "$question" yn + case $yn in + [Yy]) return 0;; + [Nn]) exit;; + *) echo "Please answer y/n.";; + esac + done +} + manage_config() { docker run --user 1000:1000 --rm -it --workdir /mnt/abuild \ -v dabuild-config:/mnt/abuild alpine sh @@ -13,9 +31,27 @@ list_volumes() { docker volume ls --quiet --filter name="^dabuild" } -enable_multiarch() { - docker run --rm --privileged multiarch/qemu-user-static \ - --reset --persistent yes --credential yes +multiarch() { + case "${2:-help}" in + enable) ask "Are you sure you want to enable multi-arch system wide? (y/n): " + docker run --rm --privileged multiarch/qemu-user-static \ + --reset --persistent yes --credential yes ;; + disable) sudo --prompt="Sudo password:" find /proc/sys/fs/binfmt_misc \ + -type f -name 'qemu-*' -exec sh -c 'echo -1 > {}' \; ;; + help) multiarch_usage ;; + *) die "Unknown subcommand \"$2\"" ;; + esac +} + +multiarch_usage() { + cat <<- EOF + dabuild: version (unknown) + + Available subcommands: + enable: enable multi-arch support via binfmt_misc + disable: disable mutli-arch support + help: this help screen + EOF } usage() { @@ -30,11 +66,10 @@ usage() { EOF } - case $cmd in config) manage_config;; volumes) list_volumes;; - multiarch) enable_multiarch;; + multiarch) multiarch "$@";; help) usage;; *) usage; exit 1;; esac -- cgit v1.3 From 8ff016b9a6a8f131cef589ffb4a2eb35d7ad79e4 Mon Sep 17 00:00:00 2001 From: Carlo Landmeter Date: Sat, 18 Jan 2020 14:47:15 +0100 Subject: admin: use correct program and uppercase globals --- dabuild-admin | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'dabuild-admin') diff --git a/dabuild-admin b/dabuild-admin index 6303e9c..299cb6a 100755 --- a/dabuild-admin +++ b/dabuild-admin @@ -2,7 +2,9 @@ set -eu -readonly cmd=${1:-help} +readonly CMD=${1:-help} +readonly VERSION=unknown +readonly PROGRAM=${0##*/} die() { echo "$@" >&2 @@ -45,7 +47,7 @@ multiarch() { multiarch_usage() { cat <<- EOF - dabuild: version (unknown) + $PROGRAM ($VERSION) Available subcommands: enable: enable multi-arch support via binfmt_misc @@ -56,7 +58,7 @@ multiarch_usage() { usage() { cat <<- EOF - dabuild: version (unknown) + $PROGRAM ($VERSION) Available commands: config: access abuild configuration @@ -66,7 +68,7 @@ usage() { EOF } -case $cmd in +case $CMD in config) manage_config;; volumes) list_volumes;; multiarch) multiarch "$@";; -- cgit v1.3