(define-module (vkraus services emacs-tramp-landing-zone) #:use-module ((gnu services) #:select (service-type service-extension special-files-service-type)) #:use-module ((gnu packages base) #:select (coreutils findutils grep)) #:use-module ((gnu packages version-control) #:select (git)) #:use-module ((gnu packages perl) #:select (perl)) #:use-module ((guix gexp) #:select (file-append)) #:export (emacs-tramp-landing-zone-service-type) #:duplicates (merge-generics) #:declarative? #t) (define (special-files-extension _) `(("/usr/bin/test" ,(file-append coreutils "/bin/test")) ("/usr/bin/ls" ,(file-append coreutils "/bin/ls")) ("/usr/bin/cp" ,(file-append coreutils "/bin/cp")) ("/usr/bin/mv" ,(file-append coreutils "/bin/mv")) ("/usr/bin/rm" ,(file-append coreutils "/bin/rm")) ("/usr/bin/chmod" ,(file-append coreutils "/bin/chmod")) ("/usr/bin/find" ,(file-append findutils "/bin/find")) ("/usr/bin/cat" ,(file-append coreutils "/bin/cat")) ("/usr/bin/perl" ,(file-append perl "/bin/perl")) ("/usr/bin/grep" ,(file-append grep "/bin/grep")) ;; git is for remote magit ("/usr/bin/git" ,(file-append git "/bin/git")))) (define emacs-tramp-landing-zone-service-type (service-type (name 'emacs-tramp-landing-zone) (description "Make sure all the coreutils programs (and git) are there when connecting through TRAMP") (extensions (list (service-extension special-files-service-type special-files-extension))) (default-value #t)))