diff --git a/scripts/create-mkspec.sh b/scripts/create-mkspec.sh index 81e222c1..f75daa4b 100644 --- a/scripts/create-mkspec.sh +++ b/scripts/create-mkspec.sh @@ -1,5 +1,10 @@ #!/bin/bash +_cat() +{ + sed 's/^ *|//' +} + cfg_section() { ini_section "$inifile" $@ @@ -15,14 +20,11 @@ cfg_escape() sed 's/\\/\\\\/g; s/\$/\\$/g; s/`/\\`/g' } -_cat() +# unneeded but kept, because it might come in handy in the future +have_pkg() { - sed 's/^ *|//' -} - -subpackages() -{ - echo $subpackages + echo "$subpackages" | grep -q "\(^[ ]*\|[ ]\+\)$1\([ ]\+\|$\)" + return $? } # -- here we go @@ -54,39 +56,8 @@ _cat <<- EOT |echo "%description" |echo "`cfg_value description`" |echo "" -EOT - -subpackages | grep -q run && _cat <<- EOT - |# --------------------------------------- - |echo "%package -n \$NAME-run" - |echo "Summary: `cfg_value summary`" - |echo "Group: `cfg_value global.group`" - |[ "\$REQUIRES_RUN" ] && echo "Requires: \$REQUIRES_RUN" - |[ "\$CONFLICTS_RUN" ] && echo "Conflicts: \$CONFLICTS_RUN" - |echo "%description -n \$NAME-run" - |echo "Runtime package" - |echo "" -EOT - -subpackages | grep -q devel && _cat <<- EOT - |# --------------------------------------- - |echo "%package -n \$NAME-devel" - |echo "Summary: `cfg_value summary`, development package" - |echo "Group: `cfg_value global.group`" - |[ "\$REQUIRES_DEVEL" ] && echo "Requires: \$REQUIRES_DEVEL" - |[ "\$CONFLICTS_DEVEL" ] && echo "Conflicts: \$CONFLICTS_DEVEL" - |echo "%description -n \$NAME-devel" - |echo "Development package" - |echo "" -EOT - -subpackages | grep -q run && _cat <<- EOT |# --------------------------------------- |echo "%prep -n \$NAME-run" - |echo "" -EOT - -_cat <<- EOT |echo "%setup -q -n \$NAME-\$V" |echo "" |echo "%build" @@ -106,11 +77,24 @@ _cat <<- EOT |echo "" EOT -# -- scripts - for p in $subpackages; do + + P=${p^^} + + _cat <<- EOT + |echo "# --------------------------------------- subpackage $p" + |echo "%package -n \$NAME-$p" + |echo "Summary: `cfg_value summary`" + |echo "Group: `cfg_value global.group`" + |[ "\$REQUIRES_$P" ] && echo "Requires: \$REQUIRES_$P" + |[ "\$CONFLICTS_$P" ] && echo "Conflicts: \$CONFLICTS_$P" + |echo "%description -n \$NAME-$p" + |echo "Runtime package" + |echo "" + EOT + for stage in pre preun post postun; do - echo "================= processing stage $stage: cfg_section pkg.$p.$stage" >&2 + echo "== processing stage $stage: cfg_section pkg.$p.$stage" >&2 cfg_section pkg.$p.$stage >&2 cfg_section pkg.$p.$stage | grep -q . && { _cat <<- EOT @@ -121,29 +105,10 @@ for p in $subpackages; do echo "EOT" } done -done -_cat <<- EOT - |echo "" - |echo "%clean" - |#echo 'rm -rf \$RPM_BUILD_ROOT' -EOT - -subpackages | grep -q run && _cat <<- EOT - |echo "%files -n \$NAME-run -f \$INSTALL_LOG.\$NAME-run" -EOT - -if subpackages | grep -q devel; then _cat <<- EOT - |echo "%files -n \$NAME-devel -f \$INSTALL_LOG.\$NAME-devel" - EOT - cfg_section pkg.devel.post -else _cat <<- EOT - |# don't remember why this was needed - |#echo "%exclude /opt/\$NAME/make/*.mk" - EOT -fi - -_cat <<- EOT + |echo "%files -n \$NAME-$p -f \$INSTALL_LOG.\$NAME-$p" |echo '%defattr (-, root, root)' -EOT + |echo "" + EOT +done