Flakeify repository and remove Stack
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,5 +1,6 @@ | ||||
| data/ | ||||
| bin/ | ||||
| /result | ||||
| /config.dhall | ||||
| /Dockerfile | ||||
| /docker-stack.yml | ||||
|  | ||||
							
								
								
									
										13
									
								
								build-docker
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								build-docker
									
									
									
									
									
								
							| @ -1,13 +0,0 @@ | ||||
| #!/bin/bash | ||||
| set -e | ||||
| # Date: 12/27/2022 | ||||
| # Author: James Eversole | ||||
| # ISC License | ||||
| # This script completes a stack build and then builds a docker image | ||||
| # containing Purr. The image name is the first argument to the script. | ||||
|  | ||||
| IMAGE_NAME=${1:-"purr"} | ||||
|  | ||||
| stack setup | ||||
| stack build --copy-bins | ||||
| docker build . -t $IMAGE_NAME | ||||
							
								
								
									
										60
									
								
								flake.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								flake.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @ -0,0 +1,60 @@ | ||||
| { | ||||
|   "nodes": { | ||||
|     "flake-utils": { | ||||
|       "inputs": { | ||||
|         "systems": "systems" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1681202837, | ||||
|         "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "cfacdce06f30d2b68473a46042957675eebb3401", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs": { | ||||
|       "locked": { | ||||
|         "lastModified": 1683067191, | ||||
|         "narHash": "sha256-41nOQDiYytmT6YVfI+X/Qo+rfIJOSuQ7OTAANAFp82o=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "a002cddf22e5f6c59c5cdeece1285c7ae9236d7d", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "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 | ||||
| } | ||||
							
								
								
									
										58
									
								
								flake.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								flake.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,58 @@ | ||||
| { | ||||
|   description = "purr - a web application for generating and sharing secrets "; | ||||
|  | ||||
|   inputs = { | ||||
|     nixpkgs.url = "github:NixOS/nixpkgs"; | ||||
|     flake-utils.url = "github:numtide/flake-utils"; | ||||
|   }; | ||||
|  | ||||
|   outputs = { self, nixpkgs, flake-utils }: | ||||
|     flake-utils.lib.eachDefaultSystem (system: | ||||
|       let | ||||
|         pkgs = nixpkgs.legacyPackages.${system}; | ||||
|  | ||||
|         haskellPackages = pkgs.haskellPackages; | ||||
|  | ||||
|         jailbreakUnbreak = pkg: | ||||
|           pkgs.haskell.lib.doJailbreak (pkg.overrideAttrs (_: { meta = { }; })); | ||||
|  | ||||
|         packageName = "purr"; | ||||
|       in { | ||||
|         packages.${packageName} = | ||||
|           haskellPackages.callCabal2nix packageName self rec { | ||||
|             crypto-simple =  | ||||
|               pkgs.haskell.lib.dontCheck haskellPackages.crypto-simple; | ||||
|           }; | ||||
|  | ||||
|         packages.default = self.packages.${system}.${packageName}; | ||||
|         defaultPackage = self.packages.${system}.default; | ||||
|  | ||||
|         devShells.default = pkgs.mkShell { | ||||
|           buildInputs = with pkgs; [ | ||||
|             ghcid | ||||
|             cabal-install | ||||
|           ]; | ||||
|           inputsFrom = map (__getAttr "env") (__attrValues self.packages.${system}); | ||||
|         }; | ||||
|         devShell = self.devShells.${system}.default; | ||||
|         packages.purrImage = pkgs.dockerTools.buildImage { | ||||
|           name = "purr"; | ||||
|           copyToRoot = pkgs.buildEnv { | ||||
|             name = "image-root"; | ||||
|             paths = [ self.packages.${system}.default ]; | ||||
|             pathsToLink = [ "/bin" ]; | ||||
|           }; | ||||
|           tag = "latest"; | ||||
|           config = { | ||||
|             Cmd = [ | ||||
|               "/bin/Purr-musl" | ||||
|             ]; | ||||
|             ExposedPorts = { | ||||
|               "3000/tcp" = {}; | ||||
|             }; | ||||
|             extraCommands = '' | ||||
|             ''; | ||||
|           }; | ||||
|         }; | ||||
|       }); | ||||
| } | ||||
| @ -1,12 +1,8 @@ | ||||
| cabal-version: 1.12 | ||||
| 
 | ||||
| -- This file has been generated from package.yaml by hpack version 0.34.4. | ||||
| -- | ||||
| -- see: https://github.com/sol/hpack | ||||
| 
 | ||||
| name:           Purr | ||||
| name:           purr | ||||
| version:        0.3.0 | ||||
| description:    https://git.eversole.co/James/Purr | ||||
| description:    https://git.eversole.co/purr | ||||
| author:         James Eversole | ||||
| maintainer:     james@eversole.co | ||||
| copyright:      2022 James Eversole | ||||
| @ -52,13 +48,13 @@ library | ||||
|     , bytestring >=0.10.12.1 | ||||
|     , containers >=0.6.4.1 | ||||
|     , crypto-simple >=0.1.0.0 | ||||
|     , dhall >=1.40 && <1.41.2 | ||||
|     , dhall >=1.40 | ||||
|     , file-embed ==0.0.15.0 | ||||
|     , http-types >=0.12.3 | ||||
|     , iso8601-time >=0.1.5 | ||||
|     , mtl >=2.2.2 | ||||
|     , random >=1.2 | ||||
|     , scotty ==0.12 | ||||
|     , scotty >=0.12 | ||||
|     , shakespeare >=2.0.20 | ||||
|     , split >=0.2.3.4 | ||||
|     , sqlite-simple >=0.4.18.0 | ||||
| @ -83,7 +79,7 @@ executable Purr-musl | ||||
|       GeneralizedNewtypeDeriving | ||||
|       OverloadedStrings | ||||
|       ScopedTypeVariables | ||||
|   ghc-options: -threaded -rtsopts -with-rtsopts=-N -static -optl-static -optl-pthread -fPIC | ||||
|   ghc-options: -threaded -rtsopts -with-rtsopts=-N -optl-pthread -fPIC | ||||
|   build-depends: | ||||
|       Purr | ||||
|     , base >=4.7 | ||||
| @ -92,13 +88,13 @@ executable Purr-musl | ||||
|     , bytestring >=0.10.12.1 | ||||
|     , containers >=0.6.4.1 | ||||
|     , crypto-simple >=0.1.0.0 | ||||
|     , dhall >=1.40 && <1.41.2 | ||||
|     , dhall >=1.40 | ||||
|     , file-embed ==0.0.15.0 | ||||
|     , http-types >=0.12.3 | ||||
|     , iso8601-time >=0.1.5 | ||||
|     , mtl >=2.2.2 | ||||
|     , random >=1.2 | ||||
|     , scotty ==0.12 | ||||
|     , scotty >=0.12 | ||||
|     , shakespeare >=2.0.20 | ||||
|     , split >=0.2.3.4 | ||||
|     , sqlite-simple >=0.4.18.0 | ||||
							
								
								
									
										27
									
								
								stack.yaml
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								stack.yaml
									
									
									
									
									
								
							| @ -1,27 +0,0 @@ | ||||
| # This file was automatically generated by 'stack init' | ||||
| # | ||||
| resolver: | ||||
|   url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/19/13.yaml | ||||
|  | ||||
| # User packages to be built. | ||||
| packages: | ||||
| - . | ||||
| # | ||||
| extra-deps: | ||||
| - crypto-simple-0.1.0.0@sha256:5c0e1e04a814d903743d7543245951a91a46817230fdf478fadca57116805fc1,1502 | ||||
|  | ||||
| docker: | ||||
|   enable: true | ||||
|   image: "utdemir/ghc-musl:v24-ghc902" | ||||
|  | ||||
| local-bin-path: | ||||
|   ./bin | ||||
| #ghc-options: | ||||
|  | ||||
| # Require a specific version of stack, using version ranges | ||||
| # require-stack-version: -any # Default | ||||
| # require-stack-version: ">=2.7" | ||||
| # | ||||
| # Override the architecture used by stack, especially useful on Windows | ||||
| # arch: i386 | ||||
| # arch: x86_64 | ||||
| @ -1,20 +0,0 @@ | ||||
| # This file was autogenerated by Stack. | ||||
| # You should not edit this file by hand. | ||||
| # For more information, please see the documentation at: | ||||
| #   https://docs.haskellstack.org/en/stable/lock_files | ||||
|  | ||||
| packages: | ||||
| - completed: | ||||
|     hackage: crypto-simple-0.1.0.0@sha256:5c0e1e04a814d903743d7543245951a91a46817230fdf478fadca57116805fc1,1502 | ||||
|     pantry-tree: | ||||
|       size: 472 | ||||
|       sha256: 66c4ac2c2ddb74d31370026799a44fa78dc3b64d82cec0a1bc87b30e816195a4 | ||||
|   original: | ||||
|     hackage: crypto-simple-0.1.0.0@sha256:5c0e1e04a814d903743d7543245951a91a46817230fdf478fadca57116805fc1,1502 | ||||
| snapshots: | ||||
| - completed: | ||||
|     size: 618740 | ||||
|     url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/19/13.yaml | ||||
|     sha256: ef98d70e4018bf01feb00ccdcd33ab26d056dbb71b38057c78fdd0d1ec671c85 | ||||
|   original: | ||||
|     url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/19/13.yaml | ||||
		Reference in New Issue
	
	Block a user