Commit 55c87b3d authored by Vitaly Lipatov's avatar Vitaly Lipatov

add initial support for short output (just package name, without version-release)

parent 06e6a35e
...@@ -69,6 +69,7 @@ verbose= ...@@ -69,6 +69,7 @@ verbose=
quiet= quiet=
nodeps= nodeps=
force= force=
short=
non_interactive= non_interactive=
skip_installed= skip_installed=
show_command_only= show_command_only=
...@@ -231,6 +232,9 @@ check_option() ...@@ -231,6 +232,9 @@ check_option()
--force) # HELPOPT: force install/remove package (f.i., override) --force) # HELPOPT: force install/remove package (f.i., override)
force="--force" force="--force"
;; ;;
--short) # HELPOPT: short output (package instead package-version-release)
short="--short"
;;
--auto) # HELPOPT: non interactive mode --auto) # HELPOPT: non interactive mode
non_interactive=1 non_interactive=1
;; ;;
......
...@@ -24,6 +24,7 @@ epm_packages() ...@@ -24,6 +24,7 @@ epm_packages()
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm)
CMD="rpm -qa $pkg_filenames" CMD="rpm -qa $pkg_filenames"
[ -n "$short" ] && CMD="rpm -qa --queryformat %{name}\n $pkg_filenames"
;; ;;
apt-dpkg) apt-dpkg)
CMD="dpkg -l $pkg_filenames" CMD="dpkg -l $pkg_filenames"
......
...@@ -63,6 +63,7 @@ dpkg_print_name_version() ...@@ -63,6 +63,7 @@ dpkg_print_name_version()
__do_query() __do_query()
{ {
local CMD
case $PMTYPE in case $PMTYPE in
apt-rpm) apt-rpm)
CMD="rpm -qf" CMD="rpm -qf"
...@@ -96,8 +97,48 @@ __do_query() ...@@ -96,8 +97,48 @@ __do_query()
docmd $CMD $@ docmd $CMD $@
} }
__do_short_query()
{
local CMD
case $PMTYPE in
*-rpm)
CMD="rpm -qf --queryformat %{NAME}\n"
;;
NOapt-dpkg)
showcmd dpkg -S $1
dpkg_print_name_version $(dpkg -S $1 | sed -e "s|:.*||")
return ;;
NOemerge)
CMD="equery belongs"
;;
NOpacman)
CMD="pacman -Qo"
;;
NOslackpkg)
# note: need remove leading slash for grep
docmd grep -R "$(echo $@ | sed -e 's|^/\+||g')" /var/log/packages | sed -e "s|/var/log/packages/||g"
return
;;
*)
fatal "Do not known query command for $PMTYPE"
;;
esac
docmd $CMD $@
}
epm_query_file() epm_query_file()
{ {
# in short mode print handle only real names and do short output
# TODO: move to separate command?
if [ -n "$short" ] ; then
[ -n "$pkg_files" ] || fatal "Run query without file names (needed path to files)"
__do_short_query $pkg_files
return
fi
# file can exists or not # file can exists or not
[ -n "$pkg_filenames" ] || fatal "Run query without file names" [ -n "$pkg_filenames" ] || fatal "Run query without file names"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment