diff --git a/CMakeLists.txt b/CMakeLists.txt index 0552bca5ed..0448b21141 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -98,7 +98,7 @@ INSTALL( # zypper-aptitude compat tool INSTALL( - PROGRAMS tools/aptitude tools/apt-get + PROGRAMS tools/aptitude tools/apt-get tools/zypper-fsearch DESTINATION ${INSTALL_PREFIX}/bin ) INSTALL( diff --git a/tools/zypper-fsearch b/tools/zypper-fsearch new file mode 100755 index 0000000000..07045e283f --- /dev/null +++ b/tools/zypper-fsearch @@ -0,0 +1,21 @@ +#!/usr/bin/perl -w +use strict; + +my $pattern=shift; +my $solvdir="/var/cache/zypp/solv"; +open(my $cnf, "/etc/zypp/zypp.conf") or die "zypp.conf: $!"; +while(<$cnf>) { + if(m/^cachedir = (.*)/) {$solvdir="$1/solv"} + if(m/^solvfilesdir = (.*)/) {$solvdir=$1} +} +chdir($solvdir) or die; +my @idx=<*/solv.idx> or die "no solv.idx files"; +open(my $pipe, "-|", "grep", "--with-filename", "--", $pattern, @idx) or die $!; + +print "Name\t\tVersion\t\tArch\tRepository\n" if -t STDOUT; +while(<$pipe>) { + chop; + s{^([^/]+)/solv.idx:}{}; + print "$_\t$1\n"; +} + diff --git a/zypper.spec.cmake b/zypper.spec.cmake index 42795b47b8..ab5aaa797a 100644 --- a/zypper.spec.cmake +++ b/zypper.spec.cmake @@ -143,6 +143,7 @@ rm -rf "$RPM_BUILD_ROOT" %config(noreplace) %{_sysconfdir}/logrotate.d/zypp-refresh.lr %{_sysconfdir}/bash_completion.d/zypper.sh %{_bindir}/zypper +%{_bindir}/zypper-fsearch %{_bindir}/yzpper %{_bindir}/installation_sources %{_sbindir}/zypp-refresh