From 9026be364d5e7ec04c739bfbc5fcc20b03bddf43 Mon Sep 17 00:00:00 2001 From: Ryan Schanzenbacher Date: Wed, 10 Apr 2024 20:13:45 -0400 Subject: FISH --- modules/ryan-services/file-manager.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 modules/ryan-services/file-manager.scm (limited to 'modules/ryan-services') diff --git a/modules/ryan-services/file-manager.scm b/modules/ryan-services/file-manager.scm new file mode 100644 index 0000000..9f0bdc4 --- /dev/null +++ b/modules/ryan-services/file-manager.scm @@ -0,0 +1,25 @@ +(define-module (ryan-services file-manager) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + #:use-module (srfi srfi-1) + #:use-module (guix gexp)) + +(define-public (home-symlinks files) + ;; Simple service to symlink two paths. Treats all paths with HOME prepended + (for-each (lambda (pair) + (let ((path1 (car pair)) + (path2 (cadr pair))) + (let ((full-path1 (string-append (getenv "HOME") "/" path1)) + (full-path2 (string-append (getenv "HOME") "/" path2))) + (if (file-exists? full-path2) + (if (eq? (stat:type (lstat full-path2)) 'regular) + ((display (format #f "WARNING: Deleting regular file ~a.\n" full-path2)) + (delete-file full-path2) + (symlink full-path1 full-path2)) + #f) + (symlink full-path1 full-path2))))) + files)) -- cgit v1.2.3