(use-modules (gnu packages bash)) (use-modules (gnu packages base)) (use-modules (gnu packages tex)) (use-modules (gnu packages code)) (use-modules (gnu packages version-control)) (use-modules (guix build-system gnu)) (use-modules (guix packages)) (use-modules (guix gexp)) (use-modules (guix modules)) (use-modules (guix build utils)) (use-modules (guix store)) (use-modules (ice-9 textual-ports)) (use-modules (ice-9 rdelim)) (unsetenv "GIT_DIR") (let ((tmp-dirname (tmpnam)) (git (run-with-store (open-connection) (package-file git "bin/git"))) (bash (run-with-store (open-connection) (package-file bash "bin/bash"))) (tar (run-with-store (open-connection) (package-file tar "bin/tar")))) (format (current-error-port) "Found the required programs: - git: ~a - bash: ~a - tar: ~a " git bash tar) (format (current-error-port) "Using temporary directory ~a\n" tmp-dirname) (mkdir tmp-dirname) (mkdir (string-append tmp-dirname "/source")) (invoke git "archive" "master" "-o" (string-append tmp-dirname "/source/source.tar.gz")) (with-directory-excursion (string-append tmp-dirname "/source") (invoke tar "xf" (string-append tmp-dirname "/source/source.tar.gz")) (delete-file (string-append tmp-dirname "/source/source.tar.gz"))) (with-directory-excursion tmp-dirname (invoke bash "-c" (format #f "guix hash -r source > hash"))) (invoke bash "-c" (format #f "~a describe --tags --always > ~a/version" git tmp-dirname)) (invoke bash "-c" (format #f "~a rev-parse master > ~a/commit" git tmp-dirname)) (let ((hash (call-with-input-file (string-append tmp-dirname "/hash") read-line)) (version (call-with-input-file (string-append tmp-dirname "/version") read-line)) (commit (call-with-input-file (string-append tmp-dirname "/commit") read-line)) (interned-modules (run-with-store (open-connection) (interned-file (string-append tmp-dirname "/source/guix") "ci-checkout" #:recursive? #t))) (base-repository (getcwd))) (delete-file-recursively tmp-dirname) (invoke git "clone" (format #f "~a/../webid-oidc-channel" base-repository) tmp-dirname) (with-directory-excursion tmp-dirname (invoke git "rm" "-f" "-r" "--ignore-unmatch" ".") (copy-recursively interned-modules "." #:follow-symlinks? #t) (chmod "vkraus/packages/webid-oidc.scm" #o644) (let ((port (open-file "vkraus/packages/webid-oidc.scm" "a"))) (write `(define-public webid-oidc (webid-oidc-release ,version ,commit ,hash)) port) (display "\n" port) (write `(define-public webid-oidc-html (webid-oidc-htmlize webid-oidc)) port) (display "\n" port) (write `(define-public webid-oidc:website (make-website webid-oidc)) port) (display "\n" port) (close-port port)) (invoke git "add" "-A") (invoke bash "-c" (format #f "~a diff-index --quiet HEAD || ~a commit -m 'Update package'" git git)) (invoke git "push" "origin" "master")))) #~(system* #$(file-append hello "/bin/hello"))