aboutsummaryrefslogtreecommitdiff
(define-module (org euandre packages)
  #:use-module ((guix licenses) #:prefix licenses:)
  #:use-module ((org euandre queue) #:prefix q:)
  #:use-module (gnu packages)
  #:use-module (gnu packages guile)
  #:use-module (gnu packages texinfo)
  #:use-module (guix build-system gnu)
  #:use-module (guix download)
  #:use-module (guix gexp)
  #:use-module (guix packages)
  #:use-module (guix utils))



(define-public git-permalink-0-1-0
  (package
    (name "git-permalink")
    (version "0.1.0")
    (source
      (origin
        (method url-fetch)
        (uri "https://euandre.org/git/git-permalink/snapshot/git-permalink-v0.1.0.tar.xz")
        (sha256
          (base32 "07waci3y0xdlbr8gl1lzdbsiz0csnrshcm6f18cdzn7y97irhb15"))))
    (build-system gnu-build-system)
    (native-inputs
      (list))
    (inputs
      (list))
    (arguments
      (list
       #:make-flags #~(list (string-append "PREFIX=" #$output))
       #:phases
       #~(modify-phases %standard-phases
           (delete 'configure))))
    (synopsis "Git extension to generate web permalinks of files in a repository")
    (description
      "It knows about many of the existing code forges, but allows for URL
template overrides to be used on custom domains or deployments via git
config.")
    (home-page "https://euandre.org/s/git-permalink/")
    (license licenses:agpl3+)))

(define-public git-permalink-0-2-0
  (package
    (name "git-permalink")
    (version "0.2.0")
    (source
      (origin
        (method url-fetch)
        (uri "https://euandre.org/git/git-permalink/snapshot/git-permalink-v0.2.0.tar.xz")
        (sha256
          (base32 "10qiigp29jamb23mdrf1yp0gqmihlsg931ibpiqpf4pn28l5d9ly"))))
    (build-system gnu-build-system)
    (native-inputs
      (list))
    (inputs
      (list))
    (arguments
      (list
       #:make-flags #~(list (string-append "PREFIX=" #$output))
       #:phases
       #~(modify-phases %standard-phases
           (delete 'configure))))
    (synopsis "Git extension to generate web permalinks of files in a repository")
    (description
      "It knows about many of the existing code forges, but allows for URL
template overrides to be used on custom domains or deployments via git
config.")
    (home-page "https://euandre.org/s/git-permalink/")
    (license licenses:agpl3+)))

(define-public remembering-0-1-2
  (package
    (name "remembering")
    (version "0.1.2")
    (source
      (origin
        (method url-fetch)
        (uri "https://euandre.org/git/remembering/snapshot/remembering-v0.1.2.tar.xz")
        (sha256
          (base32 "1syzn41w4f754ihblwxcv3wn653lh92cgg6g06db1qrx3m2zvw5v"))))
    (build-system gnu-build-system)
    (native-inputs
      (list))
    (inputs
      (list))
    (arguments
      (list
       #:make-flags #~(list (string-append "PREFIX=" #$output))
       #:phases
       #~(modify-phases %standard-phases
           (delete 'configure))))
    (synopsis "Add memory to dmenu, fzf and similar tools")
    (description
      "It can wrap such tools to accumulate preferences over time, and
re-arrange the input according to common picks.")
    (home-page "https://euandre.org/s/remembering/")
    (license licenses:agpl3+)))

(define-public td
  (package
    (name "td")
    (version "4a8a7a2662c94b2581f587e9a4b81feba4f5e7d8")
    (source
      (origin
        (method url-fetch)
        (uri "https://euandre.org/git/td/snapshot/td-4a8a7a2662c94b2581f587e9a4b81feba4f5e7d8.tar.xz")
        (sha256
          (base32 "01g1vnlz1kch8j9zzaxyixih04azdvrfabfzg7xqny32h2p62md2"))))
    (build-system gnu-build-system)
    (native-inputs
      (list))
    (inputs
      (list))
    (arguments
      (list
       #:make-flags #~(list (string-append "PREFIX=" #$output))
       #:phases
       #~(modify-phases %standard-phases
           (delete 'configure))))
    (synopsis "Minimalistic bug tracker CLI")
    (description
      "Create and maintain a TODOs.md files as a bug database.

It is a tool for distributed, offline issue tracking, reified as a simple text
file in the repository.")
    (home-page "https://euandre.org/s/td/")
    (license licenses:agpl3+)))

(define-public guile-heredoc
  (package
    (name "guile-heredoc")
    (version "065435cdce609604e33b879b9be3e81ab89f3e7b")
    (source
      (origin
        (method url-fetch)
        (uri "https://euandre.org/git/guile-heredoc/snapshot/guile-heredoc-065435cdce609604e33b879b9be3e81ab89f3e7b.tar.xz")
        (sha256
          (base32 "1y1110bg4ki0dvn8hggxy34wg7ig4r3377nc84isnj3dydqm2vjd"))))
    (build-system gnu-build-system)
    (native-inputs
      (list
       texinfo))
    (inputs
      (list
       guile-3.0))
    (arguments
      (list
       #:make-flags #~(list (string-append "PREFIX=" #$output))
       #:phases
       #~(modify-phases %standard-phases
           (delete 'configure))))
    (synopsis "Guile heredoc syntax")
    (description
      "Guile heredoc syntax long.")
    (home-page "https://euandre.org/s/guile-heredoc/")
    (license licenses:agpl3+)))

(define-public (pkg name version checksum)
  (package
    (name name)
    (version version)
    (source
      (origin
        (method url-fetch)
        (uri
          (string-append
           "https://euandre.org/git/" name "/snapshot/" name "-" version ".tar.xz"))
        (sha256
          (base32 checksum))))
    (build-system gnu-build-system)
    (arguments
      (list
       #:make-flags #~(list (string-append "PREFIX=" #$output))
       #:phases
       #~(modify-phases %standard-phases
           (delete 'configure))))
    (synopsis    "")
    (description "")
    (home-page (string-append "https://euandre.org/s/" name "/"))
    (license licenses:agpl3+)))

(define-public eut
  (pkg
    "eut"
    "c5fbe36d5e71a94589039ad9bc422da543fddf01"
    "013aayqb64qvafvnpshwg30nndjv5gj69l5xs0li6xvjkhmpsvnw"))

(define-public cage
  (pkg
   "cage"
   "c0482531fc16a55715b759b695d27d555d927ab8"
   "0laan68dj3s1n2d2alcwpvhnjjc2483kyx5xl384rcwrn3s0kcyl"))

(define-public nicely
  (pkg
   "nicely"
   "6699e732f00d2a8d8c377527dc588824ba3cbece"
   "1j6s7z29m126mxgacqbk0g4lmk8ap526z716d70kbwadh91n1a5v"))

(define-public q
  (pkg
   "q"
   "5e8e65015a77ed7606c6cfbd2d1cedc79e42a6a5"
   "1dramr7p5ncbnna0v3ncaa77rm1c8vzxw5si4n6d3rr0ji2v48ac"))

(define-public syskeep
  (pkg
    "syskeep"
    "41ff39d838d8ad44c9da24f8b4cfc2e71a5ed739"
    "0an4i8682jjqazw95lkxb0vr98y2cn0bbqm53vr585s7j0n6zi6r"))



(define (format-inputs l)
  (map (lambda (p)
         (list (package-name p)
               p
               "out"))
       l))

(define (normalize-inputs l)
  (map (compose (lambda (l)
                  (cons (package-name (car l))
                        l))
                list
                specification->package+output
                symbol->string)
       l))

(define (go-package name inputs version checksum)
  (package
    (name name)
    (version version)
    (source
      (origin
        (method url-fetch)
        (uri
          (string-append "https://papo.im/git/"
                         name
                         "/snapshot/"
                         name
                         "-"
                         version
                         ".tar.xz"))
        (sha256
          (base32 checksum))))
    (build-system gnu-build-system)
    (arguments
      (list
       #:strip-binaries? #f
       #:make-flags
       #~(list
          "-e"
          (string-append "PREFIX=" #$output)
          (string-append "VERSION=" #$version)
          (string-append "CC=" #$(cc-for-target)))
       #:phases
       #~(modify-phases %standard-phases
           (delete 'configure)
           (add-before 'build 'setenv-golang
             (lambda _
               (define (path->flags option)
                 (let ((search-path (getenv "GOLIBPACKPATH")))
                   (string-join
                    (map (lambda (path)
                           (string-append option " " path))
                         (if search-path
                           (string-split search-path #\:)
                           '()))
                    " ")))
               (setenv "GOCFLAGS"  (path->flags "-I"))
               (setenv "GOLDFLAGS" (path->flags "-L")))))))
    (native-inputs
      (append
       (format-inputs
        (list q:go-full))
       inputs))
    (native-search-paths
      (list
       (search-path-specification
         (variable "GOLIBPACKPATH")
         (files
           (list "lib/go")))))
    (synopsis    #f) ;; FIXME: get
    (description #f) ;;        from
    (home-page   #f) ;;        tarball!
    (license licenses:agpl3+)))


(define-public gobang
  (go-package
   "gobang"
   '()
   "b1bed38e5e0a261616343c7555962162416c28e2"
   "1h937x3clk3xydvl7876qd3b6plapjsnxmdlyan1iydmh6ym7vg0"))

(define-public golite
  (go-package
   "golite"
   (normalize-inputs '(sqlite))
   "b31e279bade22276f27f4990b7564a2114f3058a"
   "14q9bhkw1v60mby187balwnnwyz2ig8hi03v5f2nm8p3m8sl5ykd"))

(define-public binder
  (go-package
   "binder"
   (append (format-inputs     (list gobang))
           (normalize-inputs '(eut socat lsof)))
   "aa44df7545e13f6d2bb5ea088786d14f4a31a04d"
   "15zdcvx1gxlzz3g7gasckna3xfrf0c6yd8pvii169ivgm0rrbpll"))

(define-public wscat
  (go-package "wscat"
   (append (format-inputs     (list gobang))
           (normalize-inputs '(eut)))
   "00f822df8bcecc3b40bdc39f0cd5dfb6d1efc45e"
   "0ypj05w6kh7dd55qn0gfc1fdiyy5kfalypxm5dhsbmqkzk09m3id"))

(define-public glaze
  (go-package
   "glaze"
   (append (format-inputs     (list gobang))
           (normalize-inputs '(eut)))
   "ebe6b2ae31145fd3534a0fb583410ce2cd8e8d69"
   "0r0lsfx5g6crgyrzf8kqid3370lvyq0h573qbcpzl6mcm57nc9hj"))

(define-public untls
  (go-package
   "untls"
   (append (format-inputs     (list gobang))
           (normalize-inputs '(eut)))
   "3833dbae57bcf87a33ecbb38fb877861fb1c8d63"
   "0pxmqhzy4286w3aivq1qykqdr4mcd6b3p7q9frbnwlqmk5gfp36z"))

(define-public papod
  (go-package
   "papod"
   (append (format-inputs     (list gobang golite))
           (normalize-inputs '(sqlite sqlite:static)))
   "db0315223571daaf43ab5e8456bed7f3d7f9dafa"
   "19dr8w1hpi9h8rjad9dwb0s6r41xgj1x4m4j7yndchikwrwg4lgx"))



(list
 git-permalink-0-1-0
 git-permalink-0-2-0
 remembering-0-1-2
 td
 eut
 cage
 nicely
 q
 syskeep
 guile-heredoc

 gobang
 golite
 binder
 glaze
 untls
 wscat
 papod)