From 26c812d47861b66fa7fc2fdf039692e5de3a96cc Mon Sep 17 00:00:00 2001 From: "Collin J. Doering" Date: Wed, 22 Dec 2021 21:29:55 -0500 Subject: [PATCH] rekahsoft-gnu: Add hledger-ui and required dependencies --- rekahsoft-gnu/packages/haskell-apps.scm | 178 ++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 rekahsoft-gnu/packages/haskell-apps.scm diff --git a/rekahsoft-gnu/packages/haskell-apps.scm b/rekahsoft-gnu/packages/haskell-apps.scm new file mode 100644 index 0000000..aa8f0da --- /dev/null +++ b/rekahsoft-gnu/packages/haskell-apps.scm @@ -0,0 +1,178 @@ +;; (C) Copyright Collin J. Doering 2021 +;; +;; This program 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. +;; +;; 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 General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;; File: haskell-apps.scm +;; Author: Collin J. Doering +;; Date: Dec 22, 2021 + +(define-module (rekahsoft-gnu packages haskell-apps) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system haskell) + #:use-module (gnu packages haskell-web) + #:use-module (gnu packages haskell-xyz) + #:use-module (gnu packages haskell-check) + #:use-module (gnu packages version-control) + #:use-module (gnu packages finance) + #:use-module (rekahsoft-gnu packages haskell-web)) + +(define-public ghc-vty + (package + (name "ghc-vty") + (version "5.33") + (source + (origin + (method url-fetch) + (uri (hackage-uri "vty" version)) + (sha256 + (base32 "0qsx4lwlkp6mwyr7rm1r9dg5ic1lc1awqgyag0nj1qgj2gnv6nc9")))) + (build-system haskell-build-system) + (inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-microlens" ,ghc-microlens) + ("ghc-microlens-mtl" ,ghc-microlens-mtl) + ("ghc-microlens-th" ,ghc-microlens-th) + ("ghc-hashable" ,ghc-hashable) + ("ghc-parallel" ,ghc-parallel) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-vector" ,ghc-vector) + ("ghc-ansi-terminal" ,ghc-ansi-terminal))) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-smallcheck" ,ghc-smallcheck) + ("ghc-quickcheck-assertions" ,ghc-quickcheck-assertions) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-smallcheck" ,ghc-test-framework-smallcheck) + ("ghc-random" ,ghc-random) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-smallcheck" ,ghc-smallcheck) + ("ghc-quickcheck-assertions" ,ghc-quickcheck-assertions) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-smallcheck" ,ghc-test-framework-smallcheck) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-random" ,ghc-random) + ("ghc-string-qq" ,ghc-string-qq))) + (arguments + `(#:cabal-revision + ("1" "1in66nd2xkb6mxxzazny900pz1xj83iqsql42c0rwk72chnnb8cd"))) + (home-page "https://github.com/jtdaugherty/vty") + (synopsis "A simple terminal UI library") + (description + "vty is terminal GUI library in the niche of ncurses. It is intended to be easy to use, have no confusing corner cases, and good support for common terminal types. . See the @vty-examples@ package as well as the program @test/interactive_terminal_test.hs@ included in the @vty@ package for examples on how to use the library. . Import the \"Graphics.Vty\" convenience module to get access to the core parts of the library. . © 2006-2007 Stefan O'Rear; BSD3 license. . © Corey O'Connor; BSD3 license. . © Jonathan Daugherty; BSD3 license.") + (license license:bsd-3))) + +(define-public ghc-brick + (package + (name "ghc-brick") + (version "0.65") + (source + (origin + (method url-fetch) + (uri (hackage-uri "brick" version)) + (sha256 + (base32 "1yk9r5igg5p7aixlpls167z2fajq3vp0xxqcjw4cg168g20lnhbs")))) + (build-system haskell-build-system) + (inputs + `(("ghc-vty" ,ghc-vty) + ("ghc-data-clist" ,ghc-data-clist) + ("ghc-dlist" ,ghc-dlist) + ("ghc-microlens" ,ghc-microlens) + ("ghc-microlens-th" ,ghc-microlens-th) + ("ghc-microlens-mtl" ,ghc-microlens-mtl) + ("ghc-config-ini" ,ghc-config-ini) + ("ghc-vector" ,ghc-vector) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-text-zipper" ,ghc-text-zipper) + ("ghc-word-wrap" ,ghc-word-wrap) + ("ghc-random" ,ghc-random))) + (native-inputs `(("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/jtdaugherty/brick/") + (synopsis "A declarative terminal user interface library") + (description + "Write terminal user interfaces (TUIs) painlessly with 'brick'! You write an event handler and a drawing function and the library does the rest. . . > module Main where > > import Brick > > ui :: Widget () > ui = str \"Hello, world!\" > > main :: IO () > main = simpleMain ui . . To get started, see: . * . * The . * The demonstration programs in the 'programs' directory . . This package deprecates .") + (license license:bsd-3))) + +(define-public hledger-ui + (package + (name "hledger-ui") + (version "1.21") + (source + (origin + (method url-fetch) + (uri (hackage-uri name version)) + (sha256 + (base32 "1h9d686z0y8cvq6780g6r8fdrs76y9649js0c350b6xnhzggbx0l")))) + (build-system haskell-build-system) + (native-inputs `(("ghc-hspec-discover" ,ghc-hspec-discover))) + (inputs + `(("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-async" ,ghc-async) + ("ghc-brick" ,ghc-brick) + ("ghc-cmdargs" ,ghc-cmdargs) + ("ghc-data-default" ,ghc-data-default) + ("ghc-doclayout" ,ghc-doclayout) + ("ghc-extra" ,ghc-extra) + ("ghc-fsnotify" ,ghc-fsnotify) + ("hledger" ,hledger) + ("ghc-hledger-lib" ,ghc-hledger-lib) + ("ghc-megaparsec" ,ghc-megaparsec) + ("ghc-microlens" ,ghc-microlens) + ("ghc-microlens-platform" ,ghc-microlens-platform) + ("ghc-safe" ,ghc-safe) + ("ghc-split" ,ghc-split) + ("ghc-text-zipper" ,ghc-text-zipper) + ("ghc-vector" ,ghc-vector) + ("ghc-vty" ,ghc-vty))) + (home-page "https://hledger.org") + (synopsis + "Curses-style terminal interface for the hledger accounting system") + (description + "A simple curses-style terminal user interface for the hledger +accounting system. It can be a more convenient way to browse your accounts +than the CLI. This package currently does not support Microsoft Windows, except +in WSL.") + (license license:gpl3)))