nix #19
4
.gitignore
vendored
4
.gitignore
vendored
@ -114,6 +114,10 @@ ENV/
|
|||||||
env.bak/
|
env.bak/
|
||||||
venv.bak/
|
venv.bak/
|
||||||
|
|
||||||
|
#direnv
|
||||||
|
.envrc
|
||||||
|
.direnv
|
||||||
|
|
||||||
# Spyder project settings
|
# Spyder project settings
|
||||||
.spyderproject
|
.spyderproject
|
||||||
.spyproject
|
.spyproject
|
||||||
|
42
do.sh
42
do.sh
@ -4,25 +4,47 @@
|
|||||||
|
|
||||||
set -Eeuo pipefail # -e "Automatic exit from bash shell script on error" -u "Treat unset variables and parameters as errors"
|
set -Eeuo pipefail # -e "Automatic exit from bash shell script on error" -u "Treat unset variables and parameters as errors"
|
||||||
|
|
||||||
|
checknix() {
|
||||||
|
if [[ "${DO_NIX_CUSTOM:=0}" -eq 1 ]]; then
|
||||||
|
echo "In an interactive nix env."
|
||||||
|
else
|
||||||
|
echo "Using poetry as runner, no nix detected."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
echo "I am ${FUNCNAME[0]}ing"
|
echo "I am ${FUNCNAME[0]}ing"
|
||||||
poetry build
|
poetry build
|
||||||
}
|
}
|
||||||
|
|
||||||
test() {
|
|
||||||
echo "I am ${FUNCNAME[0]}ing"
|
|
||||||
poetry run flake8 pdme tests
|
|
||||||
poetry run mypy pdme
|
|
||||||
poetry run pytest
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt() {
|
fmt() {
|
||||||
poetry run black .
|
if [[ "${DO_NIX_CUSTOM:=0}" -eq 1 ]]; then
|
||||||
|
black .
|
||||||
|
else
|
||||||
|
poetry run black .
|
||||||
|
fi
|
||||||
find . -type f -name "*.py" -exec sed -i -e 's/ /\t/g' {} \;
|
find . -type f -name "*.py" -exec sed -i -e 's/ /\t/g' {} \;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test() {
|
||||||
|
echo "I am ${FUNCNAME[0]}ing"
|
||||||
|
if [[ "${DO_NIX_CUSTOM:=0}" -eq 1 ]]; then
|
||||||
|
flake8 pdme tests
|
||||||
|
mypy pdme
|
||||||
|
pytest
|
||||||
|
else
|
||||||
|
poetry run flake8 pdme tests
|
||||||
|
poetry run mypy pdme
|
||||||
|
poetry run pytest
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
htmlcov() {
|
htmlcov() {
|
||||||
poetry run pytest --cov-report=html
|
if [[ "${DO_NIX_CUSTOM:=0}" -eq 1 ]]; then
|
||||||
|
pytest --cov-report=html
|
||||||
|
else
|
||||||
|
poetry run pytest --cov-report=html
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
release() {
|
release() {
|
||||||
@ -30,7 +52,7 @@ release() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
all() {
|
all() {
|
||||||
build && test
|
build && fmt && test
|
||||||
}
|
}
|
||||||
|
|
||||||
"$@" # <- execute the task
|
"$@" # <- execute the task
|
||||||
|
95
flake.lock
generated
Normal file
95
flake.lock
generated
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1648297722,
|
||||||
|
"narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1653893745,
|
||||||
|
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1648854265,
|
||||||
|
"narHash": "sha256-e/RlfodBOMr2SH9diDPYMraTWvhOWSSsXDQikHFdUvM=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e194871435cad8ffb1d64b64fb7df3b2b8a10088",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e194871435cad8ffb1d64b64fb7df3b2b8a10088",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1655043425,
|
||||||
|
"narHash": "sha256-A+oT+aQGhW5lXy8H0cqBLsYtgcnT5glmGOXWQDcGw6I=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "914ef51ffa88d9b386c71bdc88bffc5273c08ada",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"poetry2nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1654921554,
|
||||||
|
"narHash": "sha256-hkfMdQAHSwLWlg0sBVvgrQdIiBP45U1/ktmFpY4g2Mo=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "poetry2nix",
|
||||||
|
"rev": "7b71679fa7df00e1678fc3f1d1d4f5f372341b63",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "poetry2nix",
|
||||||
|
"rev": "7b71679fa7df00e1678fc3f1d1d4f5f372341b63",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"poetry2nix": "poetry2nix"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
55
flake.nix
Normal file
55
flake.nix
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
description = "Application packaged using poetry2nix";
|
||||||
|
|
||||||
|
inputs.flake-utils.url = "github:numtide/flake-utils?rev=0f8662f1319ad6abf89b3380dd2722369fc51ade";
|
||||||
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs?rev=e194871435cad8ffb1d64b64fb7df3b2b8a10088";
|
||||||
|
inputs.poetry2nix.url = "github:nix-community/poetry2nix?rev=7b71679fa7df00e1678fc3f1d1d4f5f372341b63";
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils, poetry2nix }:
|
||||||
|
{
|
||||||
|
# Nixpkgs overlay providing the application
|
||||||
|
overlay = nixpkgs.lib.composeManyExtensions [
|
||||||
|
poetry2nix.overlay
|
||||||
|
(final: prev: {
|
||||||
|
# The application
|
||||||
|
pdme = prev.poetry2nix.mkPoetryApplication {
|
||||||
|
overrides = [
|
||||||
|
prev.poetry2nix.defaultPoetryOverrides
|
||||||
|
];
|
||||||
|
projectDir = ./.;
|
||||||
|
};
|
||||||
|
pdmeEnv = prev.poetry2nix.mkPoetryEnv {
|
||||||
|
overrides = [
|
||||||
|
prev.poetry2nix.defaultPoetryOverrides
|
||||||
|
];
|
||||||
|
projectDir = ./.;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
} // (flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = [ self.overlay ];
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
apps = {
|
||||||
|
pdme = pkgs.pdme;
|
||||||
|
};
|
||||||
|
|
||||||
|
defaultApp = pkgs.pdme;
|
||||||
|
devShell = pkgs.mkShell {
|
||||||
|
buildInputs = [
|
||||||
|
pkgs.poetry
|
||||||
|
pkgs.pdmeEnv
|
||||||
|
pkgs.pdme
|
||||||
|
];
|
||||||
|
shellHook = ''
|
||||||
|
export DO_NIX_CUSTOM=1
|
||||||
|
'';
|
||||||
|
packages = [ pkgs.nodejs-16_x ];
|
||||||
|
};
|
||||||
|
|
||||||
|
}));
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user