aboutsummaryrefslogtreecommitdiff
path: root/src/guix/packages.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/guix/packages.scm')
-rw-r--r--src/guix/packages.scm72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/guix/packages.scm b/src/guix/packages.scm
new file mode 100644
index 0000000..7fe4e93
--- /dev/null
+++ b/src/guix/packages.scm
@@ -0,0 +1,72 @@
+(define-module (packages)
+ #:use-module ((ice-9 popen) #:prefix popen:)
+ #:use-module ((ice-9 rdelim) #:prefix rdelim:)
+ #:use-module ((org euandre queue) #:prefix queue:)
+ #:use-module ((org euandre packages) #:prefix org-euandre:)
+ #:use-module ((xyz euandreh heredoc) #:prefix heredoc:)
+ #:use-module (gnu)
+ #:use-module (guix build utils)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix packages))
+(use-package-modules
+ check
+ finance
+ groff
+ haskell-apps
+ haskell-xyz
+ imagemagick
+ python
+ python-web
+ python-xyz
+ version-control)
+(heredoc:enable-syntax)
+
+
+(define working-dir
+ (if (directory-exists? "/opt/deploy/current")
+ "/opt/deploy/current"
+ (canonicalize-path ".")))
+
+(define version-cmd #"-
+ if grep -q deployer /etc/passwd && [ -e /opt/deploy/current ]; then
+ sudo -u deployer git -C /opt/deploy/current rev-parse HEAD
+ else
+ git rev-parse HEAD
+ fi
+ "#)
+
+(define repo-version
+ (let* ((port (popen:open-input-pipe version-cmd))
+ (v (rdelim:read-line port)))
+ (popen:close-pipe port)
+ v))
+
+(define-public server
+ (package
+ (name "server")
+ (version repo-version)
+ (source
+ (local-file working-dir #:recursive? #t))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:make-flags #~(list (string-append "PREFIX=" %output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'install 'installcheck
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (define dash-j (format #f "-j~a" (parallel-job-count)))
+ (apply invoke "make" dash-j "installcheck" make-flags))))))
+ (native-inputs
+ (list
+ git-minimal
+ pandoc
+ shellcheck))
+ (home-page #f)
+ (synopsis #f)
+ (description #f)
+ (license #f)))
+
+(list
+ server)