summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleg Pykhalov <go.wigust@gmail.com>2018-06-07 11:07:03 +0300
committerOleg Pykhalov <go.wigust@gmail.com>2018-06-07 11:20:29 +0300
commit819c3fd9746ecda6a9fd005d1dd7efc70944d2c1 (patch)
tree3db4e17225324b1885f050111a746397f5e2c70d
downloadguix-latest-eval-master.tar.gz
Initial commit.HEADmaster
-rwxr-xr-xguix-latest-eval5
-rw-r--r--guix.scm89
2 files changed, 94 insertions, 0 deletions
diff --git a/guix-latest-eval b/guix-latest-eval
new file mode 100755
index 0000000..b18f9bb
--- /dev/null
+++ b/guix-latest-eval
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+curl -sSL 'https://hydra.gnu.org/jobset/gnu/master/latest-eval' \
+ | grep -oe '<td>[0-9a-f]\{40\}</td>' \
+ | sed 's/<\/\?td>//g';
diff --git a/guix.scm b/guix.scm
new file mode 100644
index 0000000..8b74f98
--- /dev/null
+++ b/guix.scm
@@ -0,0 +1,89 @@
+;;; guix.scm --- Get the most recent fully evaluated commit from the build farm
+
+;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+
+;; Emacs-Guix-Misc 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.
+;;
+;; Guix-Latest-Eval 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 Guix-Latest-Eval.
+;; If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This file contains Guix package for development version of
+;; Guix-Latest-Eval. To build or install, run:
+;;
+;; guix build --file=guix.scm
+;; guix package --install-from-file=guix.scm
+
+;;; Code:
+
+(use-modules ((guix licenses) #:prefix license:)
+ (guix build utils)
+ (guix build-system trivial)
+ (guix gexp)
+ (guix git-download)
+ (guix packages)
+ (gnu packages bash)
+ (gnu packages curl)
+ (ice-9 popen)
+ (ice-9 rdelim))
+
+(define %source-dir (dirname (current-filename)))
+
+(define (git-output . args)
+ "Execute 'git ARGS ...' command and return its output without trailing
+newspace."
+ (with-directory-excursion %source-dir
+ (let* ((port (apply open-pipe* OPEN_READ "git" args))
+ (output (read-string port)))
+ (close-port port)
+ (string-trim-right output #\newline))))
+
+(define (current-commit)
+ (git-output "log" "-n" "1" "--pretty=format:%H"))
+
+(let ((commit (current-commit)))
+ (package
+ (name "guix-latest-eval")
+ (version (string-append "0.0.1" "-" (string-take commit 7)))
+ (source (local-file %source-dir
+ #:recursive? #t
+ #:select? (git-predicate %source-dir)))
+ (build-system trivial-build-system)
+ (inputs
+ `(("bash" ,bash)
+ ("curl" ,curl)))
+ (arguments
+ `(#:modules
+ ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (copy-recursively (assoc-ref %build-inputs "source") ".")
+ (setenv "PATH" (string-append
+ (assoc-ref %build-inputs "bash") "/bin" ":"
+ (assoc-ref %build-inputs "curl") "/bin" ":"))
+ (substitute* "guix-latest-eval"
+ (("/bin/sh") (which "bash"))
+ (("curl") (which "curl")))
+ (let ((directory "bin"))
+ (install-file "guix-latest-eval"
+ (string-append %output "/" directory)))
+ #t)))
+ (home-page #f)
+ (synopsis "Get the most recent fully evaluated commit from the build farm")
+ (description
+ "This package provides a Curl script to get the most recent fully
+evaluated commit from the build farm.")
+ (license license:gpl3+)))
+
+;;; guix.scm ends here