1
0
mirror of https://github.com/moparisthebest/pacman synced 2025-02-28 09:21:53 -05:00

Add makepkg option --packagelist

makepkg --packagelist prints the name of each package that would
normally be produced, minus $PKGEXT, and exits.

Implements FS#42150

Signed-off-by: Ivy Foster <joyfulgirl@archlinux.us>
Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Ivy Foster 2015-03-20 19:19:57 -05:00 committed by Allan McRae
parent b520c6312f
commit bf3aec8c32
2 changed files with 28 additions and 3 deletions

View File

@ -203,6 +203,9 @@ Options
(Passed to pacman) Prevent pacman from displaying a progress bar;
useful if you are redirecting makepkg output to file.
*\--packagelist*::
List the packages that would be produced without building. Listed
package names do not include PKGEXT.
Additional Features
-------------------

View File

@ -2834,6 +2834,21 @@ run_split_packaging() {
pkgname=${pkgname_backup[@]}
}
print_all_package_names() {
local version=$(get_full_version)
local architecture pkg opts a
for pkg in ${pkgname[@]}; do
pkgbuild_get_attribute "$pkg" 'arch' 1 architecture
pkgbuild_get_attribute "$pkg" 'options' 1 opts
for a in ${architecture[@]}; do
printf "%s-%s-%s\n" "$pkg" "$version" "$a"
if in_opt_array "debug" ${opts[@]} && in_opt_array "strip" ${opts[@]}; then
printf "%s-%s-%s-%s\n" "$pkg" "@DEBUGSUFFIX@" "$version" "$a"
fi
done
done
}
# Canonicalize a directory path if it exists
canonicalize_path() {
local path="$1";
@ -2893,6 +2908,7 @@ usage() {
printf -- "$(gettext " --nocheck Do not run the %s function in the %s")\n" "check()" "$BUILDSCRIPT"
printf -- "$(gettext " --noprepare Do not run the %s function in the %s")\n" "prepare()" "$BUILDSCRIPT"
printf -- "$(gettext " --nosign Do not create a signature for the package")\n"
printf -- "$(gettext " --packagelist Only list packages that would be produced, without PKGEXT")\n"
printf -- "$(gettext " --pkg <list> Only build listed packages from a split package")\n"
printf -- "$(gettext " --sign Sign the resulting package with %s")\n" "gpg"
printf -- "$(gettext " --skipchecksums Do not verify checksums of the source files")\n"
@ -2938,9 +2954,9 @@ ARGLIST=("$@")
OPT_SHORT="AcCdefFghiLmop:rRsSV"
OPT_LONG=('allsource' 'check' 'clean' 'cleanbuild' 'config:' 'force' 'geninteg'
'help' 'holdver' 'ignorearch' 'install' 'key:' 'log' 'noarchive' 'nobuild'
'nocolor' 'nocheck' 'nodeps' 'noextract' 'noprepare' 'nosign' 'pkg:' 'repackage'
'rmdeps' 'sign' 'skipchecksums' 'skipinteg' 'skippgpcheck' 'source' 'syncdeps'
'verifysource' 'version')
'nocolor' 'nocheck' 'nodeps' 'noextract' 'noprepare' 'nosign' 'packagelist'
'pkg:' 'repackage' 'rmdeps' 'sign' 'skipchecksums' 'skipinteg'
'skippgpcheck' 'source' 'syncdeps' 'verifysource' 'version')
# Pacman Options
OPT_LONG+=('asdeps' 'noconfirm' 'needed' 'noprogressbar')
@ -2983,6 +2999,7 @@ while true; do
-o|--nobuild) NOBUILD=1 ;;
-p) shift; BUILDFILE=$1 ;;
--pkg) shift; IFS=, read -ra p <<<"$1"; PKGLIST+=("${p[@]}"); unset p ;;
--packagelist) PACKAGELIST=1 IGNOREARCH=1;;
-r|--rmdeps) RMDEPS=1 ;;
-R|--repackage) REPKG=1 ;;
--sign) SIGNPKG='y' ;;
@ -3264,6 +3281,11 @@ if { [[ -z $SIGNPKG ]] && check_buildenv "sign" "y"; } || [[ $SIGNPKG == 'y' ]];
fi
fi
if (( PACKAGELIST )); then
print_all_package_names
exit 0
fi
if (( ! PKGVERFUNC )); then
check_build_status
fi