setup-all-dchroots: add bullseye
[mirror/dsa-puppet.git] / modules / schroot / files / setup-all-dchroots
index df7d66a..f70de65 100755 (executable)
 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 # OTHER DEALINGS IN THE SOFTWARE.
 
-DPKGARCH=$(dpkg --print-architecture)
-UNAMEARCH=$(uname -m)
+get_suites() {
+    case "$1" in
+      amd64|i386|armel|armhf)
+        echo "sid bullseye buster stretch jessie"
+        ;;
+      *)
+        echo "sid bullseye buster stretch"
+        ;;
+    esac
+}
+
+do_one() {
+    local a="$1"; shift
+    local s="$1"; shift
+
+    case "$MODE" in
+        buildd)
+            mkdir -p /srv/buildd/unpack
+            if ! $SILENT setup-dchroot $EXTRAARGS -f -a "$a" -D -d '/srv/buildd/unpack' -K "$s"
+            then
+                return 1
+            fi
+            ;;
+        porterbox)
+            if ! $SILENT setup-dchroot $EXTRAARGS -f -a "$a" "$s"
+            then
+                return 1
+            fi
+            ;;
+        *)
+            echo >&2 "Invalid mode $MODE"
+            exit 1
+    esac
+    return 0
+}
 
 usage()
 {
@@ -37,22 +70,39 @@ cat << EOF
 usage: $0 [<options>] [buildd]
 
 OPTIONS:
+    -a <ARCH>  limit to ARCH
     -c         write config only
     -h         this help
+    -s <SUITE> limit to SUITE
 EOF
 }
 
-extraargs=""
-while getopts "cu" OPTION
+##########
+# "main"
+##########
+
+
+# parse options
+##########
+EXTRAARGS=""
+limitarch=""
+limitsuite=""
+while getopts "cha:s:" OPTION
 do
     case $OPTION in
+        a)
+            limitarch="$OPTARG"
+            ;;
         c)
-            extraargs="$extraargs -c"
+            EXTRAARGS="$EXTRAARGS -c"
             ;;
         h)
             usage
             exit 0
             ;;
+        s)
+            limitsuite="$OPTARG"
+            ;;
         *)
             usage >&2
             exit 1
@@ -61,6 +111,8 @@ do
 done
 shift $(($OPTIND - 1))
 
+# parse arguments
+##########
 if [ "$#" -gt 1 ]; then
     usage >&2
     exit 1
@@ -79,25 +131,17 @@ else
     MODE=porterbox
 fi
 
+# figure out whether to be verbose or not
+##########
 if [ -t 0 ] ; then
     SILENT=""
 else
     SILENT="chronic"
 fi
 
-get_suites() {
-    case "$1" in
-      amd64|i386|armel|armhf)
-        echo "sid buster stretch jessie"
-        ;;
-      *)
-        echo "sid buster stretch"
-        ;;
-    esac
-}
-
-extra=""
-
+# get list of archs based on dpkg architecture
+##########
+DPKGARCH=$(dpkg --print-architecture)
 archs="$DPKGARCH"
 case "$DPKGARCH" in
     amd64)
@@ -127,33 +171,10 @@ esac
 
 err=0
 
-do_one() {
-    local a="$1"; shift
-    local s="$1"; shift
-
-    case "$MODE" in
-        buildd)
-            mkdir -p /srv/buildd/unpack
-            if ! $SILENT setup-dchroot $extraargs -f -a "$a" $extra -D -d '/srv/buildd/unpack' -K "$s"
-            then
-                return 1
-            fi
-            ;;
-        porterbox)
-            if ! $SILENT setup-dchroot $extraargs -f -a "$a" $extra "$s"
-            then
-                return 1
-            fi
-            ;;
-        *)
-            echo >&2 "Invalid mode $MODE"
-            exit 1
-    esac
-    return 0
-}
-
 for a in $archs; do
+    [ "$limitarch" != "" ] && [ "$limitarch" != "$a" ] && continue
     for s in `get_suites "$a"`; do
+        [ "$limitsuite" != "" ] && [ "$limitsuite" != "$s" ] && continue
         if ! do_one "$a" "$s"; then
             err=1
             echo >&2