[pacman-dev] [PATCH v2 2/2] Add -F --machinereable option

Florian Pritz bluewind at xinu.at
Tue Oct 27 10:10:35 UTC 2015


On Sun, 25 Oct 2015 14:14:49 -0400 Andrew Gregory
<andrew.gregory.8 at gmail.com> wrote:
> On 10/25/15 at 05:07pm, Florian Pritz wrote:
> > Signed-off-by: Florian Pritz <bluewind at xinu.at>
> > ---
> > 
> > v2:
> >  - Always output paths without leading slash
> > 
> >  doc/pacman.8.txt    |  4 ++++
> >  src/pacman/conf.h   |  2 ++
> >  src/pacman/files.c  | 69 ++++++++++++++++++++++++++++++++++++++---------------
> >  src/pacman/pacman.c |  6 +++++
> >  4 files changed, 62 insertions(+), 19 deletions(-)
> > 
> > diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt
> > index 38b8bb7..1f11cf3 100644
> > --- a/doc/pacman.8.txt
> > +++ b/doc/pacman.8.txt
> > @@ -477,6 +477,10 @@ The '--list', '--search' and '--owns' options are exclusive and can not be combi
> >  *-o <file>, \--owns<file>*::
> >  	Search for packages that own a particular file.
> >  
> > +*--machinereadable*::
> > +	Use a machine readable output format for '--list', '--search' and
> > +	'--owns'. The format is 'repository/pkgname pkgver path'.  
> 
> Spaces are not really reliable field separators.  Every single field
> being printed is allowed to contain spaces by alpm/pacman.

What is then? Best I see is that man PKGBUILD exclude hyphens for
pkgname, pkgver, pkgrel, but obviously it doesn't say anything about
repo names. I would not have expected a space to be allowed in those
though. Is that intentional or should we maybe exclude it too?

> > @@ -222,8 +243,14 @@ static int files_list(alpm_list_t *syncs, alpm_list_t *targets) {
> >  
> >  				if((pkg = alpm_db_get_pkg(db, targ)) != NULL) {
> >  					found = 1;
> > -					dump_file_list(pkg);
> > -					break;
> > +					if(config->op_f_machinereadable) {
> > +						dump_pkg_machinereadable(db, pkg);
> > +						// list all repos if not asked for a specific one  
> 
> I don't like having the machine readable format printing a different
> set of packages than the normal format.

My format includes the repo so a user can easily tell when lines appear
multiple times why that happens while this is not possible with the
normal format. I don't care too much about this though. Allan, Dave?

> 
> > +						continue;  
> 
> Unnecessary continue.

Given the else uses break it seems more readable to be me include the
continue so that the intention is clear. Allan, Dave?

I've fixed the other stuff you mentioned and will send a new patch
once the questions above are cleared.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <https://lists.archlinux.org/pipermail/pacman-dev/attachments/20151027/c7f93d93/attachment-0001.asc>


More information about the pacman-dev mailing list