Subject: [PATCH 0/6] On-line doc and search for services

From: Ludovic Courtès <[email-masked]>
Date: Wed, 13 Sep 2017 23:17:56 +0200

Hello!

This patch series adds a new ‘guix system search’ command to search
through the available services types:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix system search anony network
name: tor
location: gnu/services/networking.scm:670:2
extends: shepherd-root account activate
description: Run the Tor (https://torproject.org) anonymous networking daemon.
relevance: 9

name: static-networking
location: gnu/services/networking.scm:248:2
extends: shepherd-root etc
description: Turn up the specified network interfaces upon startup, with the given IP
+ address, gateway, netmask, and so on.  The value for services of this type is a list of
+ `static-networking' objects, one per network interface.
relevance: 6

name: network-manager
location: gnu/services/networking.scm:947:4
extends: shepherd-root dbus polkit activate profile
description: Run NetworkManager (https://wiki.gnome.org/Projects/NetworkManager), a
+ network management daemon that aims to simplify wired and wireless networking.
relevance: 6

[...]
--8<---------------cut here---------------end--------------->8---

I think this can be pretty useful.  It also works with service types
that have #f as their ‘description’ field, which is the vast majority of
them (help welcome!).

Possible improvements and related things:

  • Display each field and value of the default value of services.

  • Add ‘guix system edit’ or ‘guix edit --service’?

  • Add a web UI to browse services.

Comments welcome!

Ludo’.

Ludovic Courtès (6):
  ui: Generalize relevance computation.
  services: Add a description and location for each service type.
  services: Add 'fold-service-types'.
  guix system: Add 'search' command.
  services: base: Add descriptions.
  services: networking: Add descriptions.

 Makefile.am                    |   1 +
 doc/guix.texi                  |  42 ++++++++++++
 gnu/services.scm               |  37 ++++++++++-
 gnu/services/base.scm          |  85 ++++++++++++++++++++----
 gnu/services/networking.scm    |  55 +++++++++++++---
 guix/scripts/package.scm       |  21 +-----
 guix/scripts/system.scm        |  13 +++-
 guix/scripts/system/search.scm | 144 +++++++++++++++++++++++++++++++++++++++++
 guix/ui.scm                    |  44 +++++++++++++
 po/guix/POTFILES.in            |   1 +
 po/packages/POTFILES.in        |   2 +
 tests/guix-system.sh           |   6 +-
 12 files changed, 403 insertions(+), 48 deletions(-)
 create mode 100644 guix/scripts/system/search.scm

-- 
2.14.1