Flakeify repository and remove Stack
This commit is contained in:
parent
ed2ebc91b8
commit
e95f9e4433
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,6 @@
|
|||||||
data/
|
data/
|
||||||
bin/
|
bin/
|
||||||
|
/result
|
||||||
/config.dhall
|
/config.dhall
|
||||||
/Dockerfile
|
/Dockerfile
|
||||||
/docker-stack.yml
|
/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
|
cabal-version: 1.12
|
||||||
|
|
||||||
-- This file has been generated from package.yaml by hpack version 0.34.4.
|
name: purr
|
||||||
--
|
|
||||||
-- see: https://github.com/sol/hpack
|
|
||||||
|
|
||||||
name: Purr
|
|
||||||
version: 0.3.0
|
version: 0.3.0
|
||||||
description: https://git.eversole.co/James/Purr
|
description: https://git.eversole.co/purr
|
||||||
author: James Eversole
|
author: James Eversole
|
||||||
maintainer: james@eversole.co
|
maintainer: james@eversole.co
|
||||||
copyright: 2022 James Eversole
|
copyright: 2022 James Eversole
|
||||||
@ -52,13 +48,13 @@ library
|
|||||||
, bytestring >=0.10.12.1
|
, bytestring >=0.10.12.1
|
||||||
, containers >=0.6.4.1
|
, containers >=0.6.4.1
|
||||||
, crypto-simple >=0.1.0.0
|
, crypto-simple >=0.1.0.0
|
||||||
, dhall >=1.40 && <1.41.2
|
, dhall >=1.40
|
||||||
, file-embed ==0.0.15.0
|
, file-embed ==0.0.15.0
|
||||||
, http-types >=0.12.3
|
, http-types >=0.12.3
|
||||||
, iso8601-time >=0.1.5
|
, iso8601-time >=0.1.5
|
||||||
, mtl >=2.2.2
|
, mtl >=2.2.2
|
||||||
, random >=1.2
|
, random >=1.2
|
||||||
, scotty ==0.12
|
, scotty >=0.12
|
||||||
, shakespeare >=2.0.20
|
, shakespeare >=2.0.20
|
||||||
, split >=0.2.3.4
|
, split >=0.2.3.4
|
||||||
, sqlite-simple >=0.4.18.0
|
, sqlite-simple >=0.4.18.0
|
||||||
@ -83,7 +79,7 @@ executable Purr-musl
|
|||||||
GeneralizedNewtypeDeriving
|
GeneralizedNewtypeDeriving
|
||||||
OverloadedStrings
|
OverloadedStrings
|
||||||
ScopedTypeVariables
|
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:
|
build-depends:
|
||||||
Purr
|
Purr
|
||||||
, base >=4.7
|
, base >=4.7
|
||||||
@ -92,13 +88,13 @@ executable Purr-musl
|
|||||||
, bytestring >=0.10.12.1
|
, bytestring >=0.10.12.1
|
||||||
, containers >=0.6.4.1
|
, containers >=0.6.4.1
|
||||||
, crypto-simple >=0.1.0.0
|
, crypto-simple >=0.1.0.0
|
||||||
, dhall >=1.40 && <1.41.2
|
, dhall >=1.40
|
||||||
, file-embed ==0.0.15.0
|
, file-embed ==0.0.15.0
|
||||||
, http-types >=0.12.3
|
, http-types >=0.12.3
|
||||||
, iso8601-time >=0.1.5
|
, iso8601-time >=0.1.5
|
||||||
, mtl >=2.2.2
|
, mtl >=2.2.2
|
||||||
, random >=1.2
|
, random >=1.2
|
||||||
, scotty ==0.12
|
, scotty >=0.12
|
||||||
, shakespeare >=2.0.20
|
, shakespeare >=2.0.20
|
||||||
, split >=0.2.3.4
|
, split >=0.2.3.4
|
||||||
, sqlite-simple >=0.4.18.0
|
, 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
|
|
Loading…
x
Reference in New Issue
Block a user