From 819c3fd9746ecda6a9fd005d1dd7efc70944d2c1 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Thu, 7 Jun 2018 11:07:03 +0300 Subject: Initial commit. --- guix-latest-eval | 5 ++++ guix.scm | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100755 guix-latest-eval create mode 100644 guix.scm 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 '[0-9a-f]\{40\}' \ + | 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 + +;; 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 . + +;;; 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 -- cgit v1.2.3