summaryrefslogtreecommitdiff
path: root/disfluid/maintainer/local-package.scm
diff options
context:
space:
mode:
Diffstat (limited to 'disfluid/maintainer/local-package.scm')
-rw-r--r--disfluid/maintainer/local-package.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/disfluid/maintainer/local-package.scm b/disfluid/maintainer/local-package.scm
new file mode 100644
index 0000000..cdefb28
--- /dev/null
+++ b/disfluid/maintainer/local-package.scm
@@ -0,0 +1,51 @@
+;; disfluid, implementation of the Solid specification
+;; Copyright (C) 2022 Vivien Kraus
+
+;; This program is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU Affero General Public License as
+;; published by the Free Software Foundation, either version 3 of the
+;; License, or (at your option) any later version.
+
+;; This program 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 Affero General Public License for more details.
+
+;; You should have received a copy of the GNU Affero General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+(define-module (disfluid maintainer local-package)
+ #:use-module (disfluid maintainer package)
+ #:use-module (disfluid maintainer scan-source)
+ #:use-module (guix gexp)
+ #:use-module (guix modules)
+ #:use-module (guix packages)
+ #:use-module (guix git-download)
+ #:declarative? #t
+ #:export (local-package))
+
+;; local-package is a package built from the current checkout.
+
+(define (local-package)
+ (let ((scan (scan-source)))
+ (package
+ (inherit (full-package scan))
+ (source
+ (computed-file
+ "self-contained-source"
+ (with-imported-modules
+ (source-module-closure '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils))
+ (copy-recursively
+ #$(directory-union
+ "full-local-source"
+ (list
+ (local-file (getcwd) "local-source"
+ #:recursive? #t
+ #:select?
+ (lambda (filename _)
+ (not (string-contains filename "/.git/"))))
+ (assq-ref scan 'po-files)))
+ #$output
+ #:follow-symlinks? #t))))))))