diff options
Diffstat (limited to 'nongnu/services')
-rw-r--r-- | nongnu/services/vpn.scm | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/nongnu/services/vpn.scm b/nongnu/services/vpn.scm deleted file mode 100644 index b76cf03..0000000 --- a/nongnu/services/vpn.scm +++ /dev/null @@ -1,72 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org> -;;; -;;; This file is not part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. - -(define-module (nongnu services vpn) - #:use-module (guix gexp) - #:use-module (gnu packages) - #:use-module (gnu services) - #:use-module (gnu services shepherd) - #:use-module (nongnu packages vpn) - #:export (zerotier-one-service)) - -(define %zerotier-action-join - (shepherd-action - (name 'join) - (documentation "Join a network") - (procedure #~(lambda (running network) - (let* ((zerotier-cli (string-append #$zerotier "/sbin/zerotier-cli")) - (cmd (string-join (list zerotier-cli "join" network))) - (port (open-input-pipe cmd)) - (str (get-string-all port))) - (display str) - (status:exit-val (close-pipe port))))))) - -(define %zerotier-action-leave - (shepherd-action - (name 'leave) - (documentation "Leave a network") - (procedure #~(lambda (running network) - (let* ((zerotier-cli (string-append #$zerotier "/sbin/zerotier-cli")) - (cmd (string-join (list zerotier-cli "leave" network))) - (port (open-input-pipe cmd)) - (str (get-string-all port))) - (display str) - (status:exit-val (close-pipe port))))))) - - - -(define zerotier-one-shepherd-service - (lambda (config) - (list (shepherd-service - (documentation "ZeroTier One daemon.") - (provision '(zerotier-one)) - (requirement '(networking)) - (actions (list %zerotier-action-join - %zerotier-action-leave)) - (start #~(make-forkexec-constructor - (list (string-append #$zerotier "/sbin/zerotier-one")))) - (stop #~(make-kill-destructor)))))) - -(define zerotier-one-service-type - (service-type (name 'zerotier-one) - (extensions - (list (service-extension shepherd-root-service-type - zerotier-one-shepherd-service))))) - -(define* (zerotier-one-service #:key (config (list))) - (service zerotier-one-service-type config)) |