setup-all-dchroots: add bullseye
[mirror/dsa-puppet.git] / modules / schroot / files / setup-all-dchroots
index f528b3b..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)
-
-if [ "${1:-}" = "buildd" ]; then
-    MODE=buildd
-    if ! [ -d /srv/buildd/ ]; then
-        echo >&2 "Error: /srv/buildd does not exist or is not a directory."
-        exit 1
-    fi
-else
-    MODE=porterbox
-fi
-
 get_suites() {
     case "$1" in
-      ia64|s390|sparc)
-        echo "wheezy"
-        ;;
-      arm64|ppc64el)
-        echo "sid stretch jessie"
-        ;;
-      amd64|i386)
-        echo "sid stretch jessie wheezy squeeze"
-        ;;
-      kfreebsd-*)
-        echo "sid         jessie wheezy"
-        ;;
-      mips64el)
-        echo "sid"
-        ;;
-      ppc64)
-        echo "sid"
+      amd64|i386|armel|armhf)
+        echo "sid bullseye buster stretch jessie"
         ;;
       *)
-        echo "sid stretch jessie wheezy"
+        echo "sid bullseye buster stretch"
         ;;
     esac
 }
 
-extra=""
-
-case `hostname` in
-    pizzetti)
-        archs="ppc64"
-        extra="$extra -m http://ftp.de.debian.org/debian-ports"
-        extra="$extra -k /root/debian-ports-archive-2015.gpg"
-        extra="$extra -I debian-ports-archive-keyring"
-        ;;
-    *)
-        archs="$DPKGARCH"
-        case "$DPKGARCH" in
-            amd64)
-                archs="$archs i386"
-                ;;
-            arm64)
-                archs="$archs armhf armel"
-                ;;
-            armhf)
-                if [ "$(uname -m)" = "aarch64" ] ; then
-                    archs="$archs arm64"
-                fi
-                archs="$archs armel"
-                ;;
-            armel)
-                if [ "$(uname -m)" = "armv7l" ] && grep -w vfpv3 -q /proc/cpuinfo ; then
-                    archs="$archs armhf"
-                fi
-                ;;
-            mips64el)
-                archs="$archs mipsel"
-                ;;
-            mipsel)
-                if grep -w "Loongson-3" /proc/cpuinfo ; then
-                    archs="$archs mips64el"
-                fi
-                ;;
-            s390|s390x)
-                archs="s390 s390x"
-                ;;
-        esac
-    ;;
-esac
-
-err=0
-
 do_one() {
     local a="$1"; shift
     local s="$1"; shift
@@ -120,13 +46,13 @@ do_one() {
     case "$MODE" in
         buildd)
             mkdir -p /srv/buildd/unpack
-            if ! chronic setup-dchroot -f -a "$a" $extra -D -d '/srv/buildd/unpack' -K "$s"
+            if ! $SILENT setup-dchroot $EXTRAARGS -f -a "$a" -D -d '/srv/buildd/unpack' -K "$s"
             then
                 return 1
             fi
             ;;
         porterbox)
-            if ! chronic setup-dchroot -f -a "$a" $extra "$s"
+            if ! $SILENT setup-dchroot $EXTRAARGS -f -a "$a" "$s"
             then
                 return 1
             fi
@@ -138,8 +64,117 @@ do_one() {
     return 0
 }
 
+usage()
+{
+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
+}
+
+##########
+# "main"
+##########
+
+
+# parse options
+##########
+EXTRAARGS=""
+limitarch=""
+limitsuite=""
+while getopts "cha:s:" OPTION
+do
+    case $OPTION in
+        a)
+            limitarch="$OPTARG"
+            ;;
+        c)
+            EXTRAARGS="$EXTRAARGS -c"
+            ;;
+        h)
+            usage
+            exit 0
+            ;;
+        s)
+            limitsuite="$OPTARG"
+            ;;
+        *)
+            usage >&2
+            exit 1
+            ;;
+    esac
+done
+shift $(($OPTIND - 1))
+
+# parse arguments
+##########
+if [ "$#" -gt 1 ]; then
+    usage >&2
+    exit 1
+elif [ "$#" = 1 ]; then
+    if [ "${1:-}" = "buildd" ]; then
+        MODE=buildd
+        if ! [ -d /srv/buildd/ ]; then
+            echo >&2 "Error: /srv/buildd does not exist or is not a directory."
+            exit 1
+        fi
+    else
+        usage >&2
+        exit 1
+    fi
+else
+    MODE=porterbox
+fi
+
+# figure out whether to be verbose or not
+##########
+if [ -t 0 ] ; then
+    SILENT=""
+else
+    SILENT="chronic"
+fi
+
+# get list of archs based on dpkg architecture
+##########
+DPKGARCH=$(dpkg --print-architecture)
+archs="$DPKGARCH"
+case "$DPKGARCH" in
+    amd64)
+        archs="$archs i386"
+        ;;
+    arm64)
+        archs="$archs armhf armel"
+        ;;
+    armhf)
+        if [ "$(uname -m)" = "aarch64" ] ; then
+            archs="$archs arm64"
+        fi
+        archs="$archs armel"
+        ;;
+    armel)
+        if [ "$(uname -m)" = "armv7l" ] && grep -w vfpv3 -q /proc/cpuinfo ; then
+            archs="$archs armhf"
+        fi
+        ;;
+    mips64el)
+        archs="$archs mipsel"
+        ;;
+    mipsel)
+        archs="$archs mips64el"
+        ;;
+esac
+
+err=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