Jelajahi Sumber

Merge pull request #38957 from ajatkj/mkimage-yum-update

mkimage yum update
Tianon Gravi 6 tahun lalu
induk
melakukan
d7ab8ad145
1 mengubah file dengan 14 tambahan dan 7 penghapusan
  1. 14 7
      contrib/mkimage-yum.sh

+ 14 - 7
contrib/mkimage-yum.sh

@@ -13,9 +13,9 @@ usage() {
 $(basename $0) [OPTIONS] <name>
 OPTIONS:
   -p "<packages>"  The list of packages to install in the container.
-                   The default is blank.
+                   The default is blank. Can use multiple times.
   -g "<groups>"    The groups of packages to install in the container.
-                   The default is "Core".
+                   The default is "Core". Can use multiple times.
   -y <yumconf>     The path to the yum config to install packages from. The
                    default is /etc/yum.conf for Centos/RHEL and /etc/dnf/dnf.conf for Fedora
   -t <tag>         Specify Tag information.
@@ -30,7 +30,9 @@ if [ -f /etc/dnf/dnf.conf ] && command -v dnf &> /dev/null; then
 	yum_config=/etc/dnf/dnf.conf
 	alias yum=dnf
 fi
-install_groups="Core"
+# for names with spaces, use double quotes (") as install_groups=('Core' '"Compute Node"')
+install_groups=()
+install_packages=()
 version=
 while getopts ":y:p:g:t:h" opt; do
     case $opt in
@@ -41,10 +43,10 @@ while getopts ":y:p:g:t:h" opt; do
             usage
             ;;
         p)
-            install_packages="$OPTARG"
+            install_packages+=("\"$OPTARG\"")
             ;;
         g)
-            install_groups="$OPTARG"
+            install_groups+=("\"$OPTARG\"")
             ;;
         t)
             version="$OPTARG"
@@ -62,6 +64,11 @@ if [[ -z $name ]]; then
     usage
 fi
 
+# default to Core group if not specified otherwise
+if [ ${#install_groups[*]} -eq 0 ]; then
+   install_groups=('Core')
+fi
+
 target=$(mktemp -d --tmpdir $(basename $0).XXXXXX)
 
 set -x
@@ -87,13 +94,13 @@ fi
 if [[ -n "$install_groups" ]];
 then
     yum -c "$yum_config" --installroot="$target" --releasever=/ --setopt=tsflags=nodocs \
-        --setopt=group_package_types=mandatory -y groupinstall "$install_groups"
+        --setopt=group_package_types=mandatory -y groupinstall "${install_groups[*]}"
 fi
 
 if [[ -n "$install_packages" ]];
 then
     yum -c "$yum_config" --installroot="$target" --releasever=/ --setopt=tsflags=nodocs \
-        --setopt=group_package_types=mandatory -y install "$install_packages"
+        --setopt=group_package_types=mandatory -y install "${install_packages[*]}"
 fi
 
 yum -c "$yum_config" --installroot="$target" -y clean all