summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-04-27 15:31:37 +0200
committerLudovic Courtès <ludo@gnu.org>2018-04-27 18:45:02 +0200
commit6ddb59607be810caa1aa40b402b38564d8d9a6bc (patch)
tree1f1d22f8d3eea5a7fefafe89a88fa2093b88b4c5 /gnu
parent60912a888d4c238850da38efe2cbf39a29dbf877 (diff)
downloadguix-6ddb59607be810caa1aa40b402b38564d8d9a6bc.tar.gz
guix system: Report wrong file system 'device' fields.
Previously, if you wrote (device "my-label") without (title 'label),
you'd get:

  guix system: error: stat: No such file or directory: "my-label"

Now you get a proper error and a hint.

Reported by Pierre-Antoine Rouby.

* guix/scripts/system.scm (check-file-system-availability)[literal]: New
variable.  Loop over LITERAL.
* gnu/system/file-systems.scm (%pseudo-file-system-types): New variable.
* guix/ui.scm (display-hint): Make public.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/system/file-systems.scm9
1 files changed, 8 insertions, 1 deletions
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index 7f5afb00fe..c0c635508c 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,6 +47,7 @@
             spec->file-system
             specification->file-system-mapping
 
+            %pseudo-file-system-types
             %fuse-control-file-system
             %binary-format-file-system
             %shared-memory-file-system
@@ -203,6 +204,12 @@ TARGET in the other system."
 ;;; Common file systems.
 ;;;
 
+(define %pseudo-file-system-types
+  ;; List of know pseudo file system types.  This is used when validating file
+  ;; system definitions.
+  '("binfmt_misc" "cgroup" "devpts" "devtmpfs" "fusectl"
+    "proc" "sysfs" "tmpfs"))
+
 (define %fuse-control-file-system
   ;; Control file system for Linux' file systems in user-space (FUSE).
   (file-system