Gist · 12 / URL: https://gist.050821.xyz/12
Public Gist
Expires: Never
goodspeed - created 3 months and 7 days ago
added file: dinit.scm
dinit.scm
;; dinit.scm - Guix package definition for Dinit
(use-modules (guix packages)
             (guix download)
             (guix build-system gnu)
             (guix licenses)
             (gnu packages pkg-config)
             (gnu packages m4)
	     (gnu services)
	     (gnu services shepherd))

(define-public dinit
  (package
   (name "dinit")
   (version "0.19.3")
   (source
    (origin
     (method url-fetch)
     (uri (string-append
           "https://github.com/davmac314/dinit/archive/refs/tags/v"
           version ".tar.gz"))
     (sha256
      (base32 "06xad572cc8lc9689jqg7vkdfn6ghlyg94w6f0yag5ml904vfy1s"))))
   (build-system gnu-build-system)
   (arguments
    `(#:tests? #t
      #:configure-flags (list (string-append "--prefix=" (assoc-ref %outputs "out"))
			      (string-append "--exec-prefix=" (assoc-ref %outputs "out"))
			      "--disable-shutdown")))
   (native-inputs
    (list pkg-config m4))
   (home-page "https://davmac.org/projects/dinit")
   (synopsis "Service manager with dependency management")
   (description
    "Dinit is a service manager for Unix-like operating systems that
allows the user to manage services with dependencies and parallel startup.")
   (license asl2.0)))

(define dinit-service-type
  (shepherd-service-type
   'dinit
   (shepherd-service
    (documentation "Dinit service manage")
    (provision '(dinit))
    (start #~(make-forkexec-constructor
	      (list (file-append dinit "/sbin/dinit"))))
    (stop #~(make-kill-destructor)))))