This patch adds a "guix gc" button to the low disk space notification that 'gsd-housekeeping' emits. diff --git a/plugins/housekeeping/gsd-disk-space.c b/plugins/housekeeping/gsd-disk-space.c index bd3437e..89027d8 100644 --- a/plugins/housekeeping/gsd-disk-space.c +++ b/plugins/housekeeping/gsd-disk-space.c @@ -546,6 +546,21 @@ empty_trash_callback (NotifyNotification *n, notify_notification_close (n, NULL); } +static void +guix_gc_callback (NotifyNotification *n, + const char *action) +{ + const gchar *argv[] = { "guix", "gc", NULL }; + + g_assert (action != NULL); + g_assert (strcmp (action, "run-guix-gc") == 0); + + g_spawn_async (NULL, (gchar **) argv, NULL, G_SPAWN_SEARCH_PATH, + NULL, NULL, NULL, NULL); + + notify_notification_close (n, NULL); +} + static void on_notification_closed (NotifyNotification *n) { @@ -591,6 +606,13 @@ ldsm_notify (const char *summary, g_free); } + notify_notification_add_action (notification, + "run-guix-gc", + _("Collect Unused Guix Items"), + (NotifyActionCallback) guix_gc_callback, + NULL, + NULL); + has_trash = ldsm_mount_has_trash (mount_path); if (has_trash) { >
path: root/tests/discovery.scm
AgeCommit message (Expand)Author
2017-07-03discovery: Recurse into directories pointed to by a symlink....Reported by Christopher Baines <mail@cbaines.net> and Alex Kost <alezost@gmail.com> at <https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00290.html>. * guix/discovery.scm (scheme-files): When ENTRY is a symlink that doesn't end in '.scm', call 'stat' and recurse if it points to a directory. * tests/discovery.scm ("scheme-modules recurses in symlinks to directories"): New test. Ludovic Courtès
2017-06-18discovery: 'scheme-files' returns '() for a non-accessible directory....Fixes a regression introduced in d27cc3bfaafe6b5b0831e88afb1c46311d382a0b. Reported by Ricardo Wurmus <rekado@elephly.net>. * guix/discovery.scm (scheme-files): Catch 'scandir*' system errors. Return '() and optionally raise a warning upon 'system-error'. * tests/discovery.scm ("scheme-modules, non-existent directory"): New test. Ludovic Courtès
2017-05-03Add (guix discovery)....* guix/discovery.scm, tests/discovery.scm: New files. * gnu/packages.scm (scheme-files, file-name->module-name) (scheme-modules, all-package-modules): Remove. (fold-packages): Rewrite in terms of 'fold-module-public-variables'. * gnu/tests.scm: Use (guix discovery). * Makefile.am (MODULES): Add guix/discovery.scm. (SCM_TESTS): Add tests/discovery.scm. Ludovic Courtès