aboutsummaryrefslogtreecommitdiff
path: root/guix/forge
diff options
context:
space:
mode:
Diffstat (limited to 'guix/forge')
-rw-r--r--guix/forge/klaus.scm52
1 files changed, 51 insertions, 1 deletions
diff --git a/guix/forge/klaus.scm b/guix/forge/klaus.scm
index 099b42f..ba963ee 100644
--- a/guix/forge/klaus.scm
+++ b/guix/forge/klaus.scm
@@ -18,7 +18,11 @@
;;; <https://www.gnu.org/licenses/>.
(define-module (forge klaus)
- #:use-module ((gnu packages check) #:select (python-nose))
+ #:use-module ((gnu packages check) #:select (python-nose python-pytest))
+ #:use-module ((gnu packages python-web)
+ #:select (python-flask python-werkzeug))
+ #:use-module ((gnu packages python-xyz)
+ #:select (python-dulwich python-humanize python-pygments))
#:use-module ((gnu packages version-control) #:select (git-minimal))
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
@@ -67,3 +71,49 @@ routes using HTTP Digest Authentication.")
"return 1;"))
;; Disable tests broken by this change.
(setenv "GIT_SKIP_TESTS" "t0033 t9700")))))))))
+
+(define-public python-klaus
+ (package
+ (name "python-klaus")
+ (version "2.0.3")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "klaus" version))
+ (sha256
+ (base32
+ "1y06xnynfah5d4zif2fc0n83zdr0d1vkh0rwcinsi6wjxalvnhjw"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:tests? #f ; tests fail
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'configure-git
+ (lambda* (#:key inputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (substitute* file
+ (("\"git\"")
+ (string-append "\"" (search-input-file inputs "/bin/git") "\""))))
+ (list "klaus/ctagsutils.py"
+ "klaus/repo.py"
+ "klaus/utils.py"
+ "tests/test_contrib.py"
+ "tests/test_make_app.py")))))))
+ (inputs
+ (list git-without-safe-directory-check))
+ (native-inputs
+ (list python-pytest))
+ (propagated-inputs
+ (list python-dulwich python-flask python-httpauth
+ python-humanize python-pygments python-werkzeug))
+ (home-page "https://github.com/jonashaag/klaus")
+ (synopsis "Simple git web viewer")
+ (description "klaus is a simple, easy-to-set-up git web viewer. It features
+
+@itemize
+@item Super easy to set up -- no configuration required
+@item Syntax highlighting
+@item Markdown + RestructuredText rendering support
+@item Pull + push support (Git Smart HTTP)
+@item Code navigation using Exuberant ctags
+@end itemize")
+ (license license:isc)))