summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannes Schulze <contact@haschu.me>2026-10-03 02:20:53 +0200
committerHannes Schulze <contact@haschu.me>2026-10-03 02:20:53 +0200
commit883ade0987dc9f5fb7206244b00fa76a46e50ecd (patch)
tree6d2403e9afe6580842d8834e2792d8c2da211c66
initial commit
-rw-r--r--.gitignore1
-rw-r--r--cgi/index.hs4
-rw-r--r--flake.lock61
-rw-r--r--flake.nix30
-rw-r--r--lib/Settlr/Storage.hs2
-rw-r--r--settlr.cabal27
-rw-r--r--static/settlr.css0
7 files changed, 125 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..56ad05d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+dist*
diff --git a/cgi/index.hs b/cgi/index.hs
new file mode 100644
index 0000000..a15fb99
--- /dev/null
+++ b/cgi/index.hs
@@ -0,0 +1,4 @@
+import Settlr.Storage
+
+main :: IO ()
+main = putStrLn ""
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..36fda4e
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,61 @@
+{
+ "nodes": {
+ "flake-utils": {
+ "inputs": {
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1790822859,
+ "narHash": "sha256-69xHQhAeMAD2wDXO7T2pcOZIF9Sga2W+JkmY2a11Ops=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "c59305bab2065cfecc4944690d9eedbb56f3a9fa",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "flake-utils": "flake-utils",
+ "nixpkgs": "nixpkgs"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..af1d01a
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,30 @@
+{
+ description = "Settle your expenses";
+
+ inputs = {
+ nixpkgs = {
+ url = "github:nixos/nixpkgs/nixos-unstable";
+ };
+ flake-utils = {
+ url = "github:numtide/flake-utils";
+ };
+ };
+
+ outputs = { self, nixpkgs, flake-utils }:
+ flake-utils.lib.eachDefaultSystem (system:
+ let
+ pkgs = import nixpkgs { inherit system; };
+ haskell = pkgs.haskellPackages.ghcWithPackages (p:
+ with p; [ haskell-language-server blaze-html cgi ]);
+ shell = pkgs.mkShell {
+ name = "settlr";
+ packages = [ haskell pkgs.cabal-install ];
+ hardeningDisable = [ "fortify" ];
+ };
+ in
+ {
+ devShells = {
+ default = shell;
+ };
+ });
+}
diff --git a/lib/Settlr/Storage.hs b/lib/Settlr/Storage.hs
new file mode 100644
index 0000000..d646134
--- /dev/null
+++ b/lib/Settlr/Storage.hs
@@ -0,0 +1,2 @@
+module Settlr.Storage(
+ ) where
diff --git a/settlr.cabal b/settlr.cabal
new file mode 100644
index 0000000..d22d002
--- /dev/null
+++ b/settlr.cabal
@@ -0,0 +1,27 @@
+cabal-version: 3.0
+name: settlr
+version: 1.0.0
+synopsis: Settle expenses
+build-type: Simple
+
+common warnings
+ ghc-options: -Wall
+
+library
+ import: warnings
+ exposed-modules: Settlr.Storage
+ hs-source-dirs: lib
+ build-depends: base ^>=4.20.2.0,
+ text,
+ bytestring,
+ cgi,
+ blaze-builder,
+ blaze-markup
+ default-language: Haskell2010
+
+executable index.cgi
+ import: warnings
+ main-is: index.hs
+ hs-source-dirs: cgi
+ default-language: Haskell2010
+ build-depends: base, settlr
diff --git a/static/settlr.css b/static/settlr.css
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/static/settlr.css