diff options
author | Andrew Tropin <andrew@trop.in> | 2022-03-11 10:12:30 +0300 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-03-20 19:02:41 +0100 |
commit | 92c23970709bc58c33b99ab9449eaf67ac5a0694 (patch) | |
tree | d00f6208865c0d0333cb5fc735b9902938e9a2fa | |
parent | 3c149de46199aa67407e2f365485361f0bb686e4 (diff) | |
download | guix-92c23970709bc58c33b99ab9449eaf67ac5a0694.tar.gz guix-92c23970709bc58c33b99ab9449eaf67ac5a0694.zip |
home: symlink-manager: Respect XDG_CONFIG_HOME during activation.
* gnu/home/services/symlink-manager.scm (update-symlinks-script): Respect
XDG_CONFIG_HOME during activation.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r-- | gnu/home/services/symlink-manager.scm | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/gnu/home/services/symlink-manager.scm b/gnu/home/services/symlink-manager.scm index 16031ea5d3..3b851229f3 100644 --- a/gnu/home/services/symlink-manager.scm +++ b/gnu/home/services/symlink-manager.scm @@ -50,14 +50,29 @@ (define home-directory (getenv "HOME")) + (define xdg-config-home + (or (getenv "XDG_CONFIG_HOME") + (string-append (getenv "HOME") "/.config"))) + (define backup-directory (string-append home-directory "/" (number->string (current-time)) "-guix-home-legacy-configs-backup")) + (define (preprocess-file file) + "If file is in XDG-CONFIGURATION-FILES-DIRECTORY use +subdirectory from XDG_CONFIG_HOME to generate a target path." + (if (string-prefix? #$xdg-configuration-files-directory file) + (string-append + (substring xdg-config-home + (1+ (string-length home-directory))) + (substring file + (string-length #$xdg-configuration-files-directory))) + (string-append "." file))) + (define (target-file file) ;; Return the target of FILE, a config file name sans leading dot ;; such as "config/fontconfig/fonts.conf" or "bashrc". - (string-append home-directory "/." file)) + (string-append home-directory "/" (preprocess-file file))) (define (symlink-to-store? file) (catch 'system-error @@ -70,7 +85,7 @@ (define (backup-file file) (define backup - (string-append backup-directory "/." file)) + (string-append backup-directory "/" (preprocess-file file))) (mkdir-p backup-directory) (format #t (G_ "Backing up ~a...") (target-file file)) |