aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-07-12 19:57:24 +0100
committerChristopher Baines <mail@cbaines.net>2019-07-12 19:57:24 +0100
commit09d927cb99d488b1d9024ec7592b900b6645d065 (patch)
treef27ea55a225eb18184200c259c2ce1bc6365e721
parenta6bd46b829070fca8843bc0155e5bf2b71d422dd (diff)
downloaddata-service-09d927cb99d488b1d9024ec7592b900b6645d065.tar
data-service-09d927cb99d488b1d9024ec7592b900b6645d065.tar.gz
Add a process-job command
This allows easily processing an individual job by id. This may be useful to use manually, but also when processing jobs in parallel, as forking doesn't work well with the libpq library used by squee.
-rw-r--r--.gitignore1
-rw-r--r--Makefile.am1
-rw-r--r--configure.ac1
-rw-r--r--scripts/guix-data-service-process-job.in36
4 files changed, 39 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 9b06c46..77ade4b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,6 +16,7 @@ tests/*.trs
guix-data-service/config.scm
scripts/guix-data-service
+scripts/guix-data-service-process-job
scripts/guix-data-service-process-jobs
scripts/guix-data-service-query-build-servers
scripts/guix-data-service-process-branch-updated-email
diff --git a/Makefile.am b/Makefile.am
index 758f5e8..e923ec1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,6 +22,7 @@ include guile.am
bin_SCRIPTS = \
scripts/guix-data-service \
+ scripts/guix-data-service-process-job \
scripts/guix-data-service-process-jobs \
scripts/guix-data-service-process-branch-updated-email \
scripts/guix-data-service-query-build-servers
diff --git a/configure.ac b/configure.ac
index a50d90b..deace04 100644
--- a/configure.ac
+++ b/configure.ac
@@ -44,6 +44,7 @@ dnl Substitute placeholders to generate these target files
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([guix-data-service/config.scm])
AC_CONFIG_FILES([scripts/guix-data-service], [chmod +x scripts/guix-data-service])
+AC_CONFIG_FILES([scripts/guix-data-service-process-job], [chmod +x scripts/guix-data-service-process-job])
AC_CONFIG_FILES([scripts/guix-data-service-process-jobs], [chmod +x scripts/guix-data-service-process-jobs])
AC_CONFIG_FILES([scripts/guix-data-service-process-branch-updated-email], [chmod +x scripts/guix-data-service-process-branch-updated-email])
AC_CONFIG_FILES([scripts/guix-data-service-query-build-servers], [chmod +x scripts/guix-data-service-query-build-servers])
diff --git a/scripts/guix-data-service-process-job.in b/scripts/guix-data-service-process-job.in
new file mode 100644
index 0000000..f2753a4
--- /dev/null
+++ b/scripts/guix-data-service-process-job.in
@@ -0,0 +1,36 @@
+#!@GUILE@ --no-auto-compile
+-*- scheme -*-
+-*- geiser-scheme-implementation: guile -*-
+!#
+;;; Guix Data Service -- Information about Guix over time
+;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
+;;;
+;;; This file is part of guix-data-service.
+;;;
+;;; guix-data-service 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-data-service 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 the guix-data-service. If not, see <http://www.gnu.org/licenses/>.
+
+(use-modules (srfi srfi-1)
+ (srfi srfi-37)
+ (ice-9 match)
+ (guix-data-service database)
+ (guix-data-service jobs load-new-guix-revision))
+
+(setvbuf (current-output-port) 'line)
+(setvbuf (current-error-port) 'line)
+
+(match (command-line)
+ ((name job)
+ (process-load-new-guix-revision-job job)))