]> git.ipfire.org Git - people/ms/bricklayer.git/commitdiff
master: Generate a random label for the disk image
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 27 May 2021 15:45:29 +0000 (15:45 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 27 May 2021 15:45:29 +0000 (15:45 +0000)
This can also be set by the user by using the --label switch.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/bricklayer-master

index 01feb0a40664043abc7997779c58a7fb1fd38917..86dcb0438cd679a023811b8ec5362a22e250695c 100644 (file)
@@ -264,7 +264,8 @@ install_initramfs() {
 
 mkimage() {
        local buildsystem="${1}"
-       local filename="${2}"
+       local label="${2}"
+       local filename="${3}"
        local r=0
 
        # Create a temporary working directory
@@ -288,7 +289,7 @@ mkimage() {
                #-quiet
 
                # The name of the volume
-               -volid "${name}"
+               -volid "${label}"
 
                # Set ISO9660 conformance level
                -iso-level 3
@@ -394,6 +395,7 @@ mkimage() {
 main() {
        local arch="$(uname -m)"
        local filename
+       local label
 
        while [ $# -gt 0 ]; do
                case "${1}" in
@@ -401,6 +403,10 @@ main() {
                                arch="${1#*=}"
                                ;;
 
+                       --label=*)
+                               label="${1#*=}"
+                               ;;
+
                        *.iso)
                                if [ -n "${filename}" ]; then
                                        echo "Filename has already been set" >&2
@@ -424,6 +430,17 @@ main() {
                return 2
        fi
 
+       # Generate a random label if nothing was set
+       if [ -z "${label}" ]; then
+               label="$(make_label)"
+       fi
+
+       # Check if the label is < 16 characters
+       if [ "${#label}" -gt 16 ]; then
+               echo "The label cannot be longer than 16 characters" >&2
+               return 2
+       fi
+
        local has_bios_boot="false"
        local has_efi_boot="false"
 
@@ -453,7 +470,7 @@ main() {
        fi
 
        # Make image and delete it if something went wrong
-       if ! mkimage "${buildsystem}" "${filename}"; then
+       if ! mkimage "${buildsystem}" "${label}" "${filename}"; then
                rm -rf "${buildsystem}" "${filename}"
                return 1
        fi