From: Pierre Neidhardt <mail@ambrevar.xyz>
To: zimoun <zimon.toutoune@gmail.com>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: Package file indexing
Date: Thu, 09 Jan 2020 15:14:09 +0100 [thread overview]
Message-ID: <875zhk90pa.fsf@ambrevar.xyz> (raw)
In-Reply-To: <CAJ3okZ3M_oG0ZnLVV3T2aGs+6ABzXb7vhdieTf7Bb=DmZcTyNw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3303 bytes --]
zimoun <zimon.toutoune@gmail.com> writes:
> Hi Pierre,
>
> On Thu, 9 Jan 2020 at 14:01, Pierre Neidhardt <mail@ambrevar.xyz> wrote:
>>
>> zimoun <zimon.toutoune@gmail.com> writes:
>
>> >> To avoid confusion, I think this should be an option/subcommand of
>> >> search. Something like -path and -name in find(1).
>> >
>> > I agree that explicit keywords, e.g., "file:" and "package:", avoid confusion.
>>
>> I disagree. What about matching a path which contains "file:" or
>> "package:"? Then you end up with confusing commands.
>
> About "file:", no issue:
> guix search file:file:
It might not be ambiguous for the machine, but it is to the human
reader! :)
--8<---------------cut here---------------start------------->8---
guix search /file:
--8<---------------cut here---------------end--------------->8---
is more readable in my opinion.
>> Simon, regarding your examples:
>>
>> > - guix search bin/gmsh gimp
>> > - guix search file:ieee*.sty bin/gmsh latex
>> > - guix search file:bin/gmsh
>>
>> why mixing both the "file:" prefix and the "/"?
>
> Yes, I am suggesting to mix both.
>
> I would like to have all this syntax:
>
>> - guix search file:gmsh.h gimp
>> - guix search bin/gmsh gimp
>> - guix search file:ieee*.sty bin/gmsh latex
>> - guix search file:bin/gmsh
>> - guix search package:gimp
But for which benefit? It seems that this single example
>> - guix search bin/gmsh gimp
covers all your needs.
> Now, if we speak about the "search" command-line syntax, today the way
> is to write a regexp and then to filter with 'recsel'. It is UNIX
> philosophy to compose via pipes but the drawback is: one *has to*
> first (read the Guix manual [1] to) know the existence of 'recsel' and
> second read the documentation of 'recutils' for complex filtering. So,
> long time ago, I was thinking to add more syntax [2]. Today, the
> syntax is:
>
> guix search "" | recsel -C -e 'name ~ "agda" && !(name ~ "mode")'
> -p synopsis
>
> and I find more welcoming something avoiding the pipe, e.g.,
>
> guix search 'name ~ "agda" && !(name ~ "mode") -p synopsis'
This is still rather arcanic (understand: too hard to be useful to the
general user) in my opinion. Every time I use a program that has some
search semantic, I need to look up the manual because I forgot the
syntax and other intricacies. So I end up not doing it often.
For advanced search, we could provide "explorable" features with a
graphical user interface (which I plan to work on later) or Emacs (a big
like `guix-packages-by-name', but more general). Those interface would
allow the user to chain searches by narrowing down lists. What you
print in the end is irrelevant since you can have an interactive
presentation (unlike the shell).
Example:
- Display list of all packages.
- Run "agda" search against names.
- Narrow down.
- Run "mode" search against names.
- Narrow down to the complement.
- Run a general search against "foo bar".
- Print the result.
- Display synopsis only of the result.
For the general case, a "do what I mean" search field that works like
Internet search engines is a better approach in my opinion.
What do you think?
--
Pierre Neidhardt
https://ambrevar.xyz/
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
next prev parent reply other threads:[~2020-01-09 14:14 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-14 18:31 Improve package search mikadoZero
2019-03-14 20:49 ` Leo Famulari
2019-03-14 22:01 ` Tobias Geerinckx-Rice
2019-03-14 22:09 ` Tobias Geerinckx-Rice
2019-03-14 22:46 ` Pierre Neidhardt
2019-03-14 23:09 ` Tobias Geerinckx-Rice
2019-03-23 16:27 ` Package file indexing Ludovic Courtès
2019-03-25 8:46 ` Pierre Neidhardt
2019-03-26 12:41 ` Ludovic Courtès
2020-01-02 17:12 ` Pierre Neidhardt
2020-01-02 19:15 ` Christopher Baines
2020-01-03 11:26 ` Ludovic Courtès
2020-01-09 11:19 ` Pierre Neidhardt
2020-01-09 12:24 ` zimoun
2020-01-09 13:01 ` Pierre Neidhardt
2020-01-09 16:49 ` Christopher Baines
2020-01-10 12:35 ` Pierre Neidhardt
2020-01-10 13:30 ` Christopher Baines
2020-01-11 18:26 ` Pierre Neidhardt
2020-01-12 13:29 ` Christopher Baines
2020-01-13 14:28 ` Pierre Neidhardt
2020-01-13 17:57 ` Christopher Baines
2020-01-13 18:21 ` Pierre Neidhardt
2020-01-13 19:45 ` Christopher Baines
2020-01-14 9:21 ` Pierre Neidhardt
2020-01-02 22:50 ` zimoun
2020-01-03 16:00 ` raingloom
2020-01-06 16:56 ` zimoun
2020-01-09 13:01 ` Pierre Neidhardt
2020-01-09 13:53 ` zimoun
2020-01-09 14:14 ` Pierre Neidhardt [this message]
2020-01-09 14:36 ` zimoun
2020-01-09 15:38 ` Pierre Neidhardt
2020-01-09 16:59 ` zimoun
2020-01-09 12:57 ` Pierre Neidhardt
2020-01-09 12:55 ` Pierre Neidhardt
2020-01-09 14:05 ` zimoun
2020-01-09 14:21 ` Pierre Neidhardt
2020-01-09 14:51 ` zimoun
2020-01-09 15:41 ` Pierre Neidhardt
2020-01-09 17:04 ` zimoun
2020-01-09 17:27 ` Pierre Neidhardt
2020-01-15 16:23 ` Pierre Neidhardt
2020-01-15 17:27 ` Nicolò Balzarotti
2020-01-15 18:02 ` Pierre Neidhardt
2020-01-15 22:14 ` Ludovic Courtès
2019-03-16 2:11 ` Improve package search mikadoZero
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=875zhk90pa.fsf@ambrevar.xyz \
--to=mail@ambrevar.xyz \
--cc=guix-devel@gnu.org \
--cc=zimon.toutoune@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).