Compare commits
No commits in common. "kjhkjhkjh" and "master" have entirely different histories.
2
.envrc
2
.envrc
|
@ -1,2 +0,0 @@
|
||||||
# devenv needs to know the path to the current working directory to create and manage mutable state
|
|
||||||
use flake . --no-pure-eval
|
|
|
@ -1,12 +1,8 @@
|
||||||
result
|
result
|
||||||
result-*
|
result-*
|
||||||
.venv
|
|
||||||
.direnv
|
|
||||||
.devenv
|
|
||||||
|
|
||||||
dist
|
dist
|
||||||
|
|
||||||
config.ini
|
|
||||||
test.db
|
test.db
|
||||||
|
|
||||||
.ruff_cache
|
.ruff_cache
|
35
README.md
35
README.md
|
@ -3,46 +3,29 @@
|
||||||
EDB-system for PVVVV
|
EDB-system for PVVVV
|
||||||
|
|
||||||
## Nix
|
## Nix
|
||||||
|
|
||||||
### Hvordan kjøre
|
### Hvordan kjøre
|
||||||
|
|
||||||
nix run github:Programvareverkstedet/dibbler
|
`nix run github:Prograrmvarverkstedet/dibbler`
|
||||||
|
|
||||||
### Hvordan utvikle?
|
|
||||||
|
|
||||||
python -m venv .venv
|
### Bygge nytt image
|
||||||
source .venv/activate
|
|
||||||
pip install -e .
|
|
||||||
cp example-config.ini config.ini
|
|
||||||
dibbler -c config.ini create-db
|
|
||||||
dibbler -c config.ini loop
|
|
||||||
|
|
||||||
eller hvis du tolererer nix og postgres:
|
|
||||||
|
|
||||||
direnv allow # eller bare `nix develop`
|
|
||||||
devenv up
|
|
||||||
dibbler create-db
|
|
||||||
dibbler loop
|
|
||||||
|
|
||||||
### Bygge image
|
|
||||||
|
|
||||||
For å bygge et image trenger du en builder som takler å bygge for arkitekturen du skal lage et image for.
|
For å bygge et image trenger du en builder som takler å bygge for arkitekturen du skal lage et image for.
|
||||||
|
|
||||||
_(Eller be til gudene om at cross compile funker)_
|
(Eller be til gudene om at cross compile funker)
|
||||||
|
|
||||||
Flaket exposer en modul som autologger inn med en bruker som automatisk kjører dibbler, og setter opp et minimalistisk miljø.
|
Flaket exposer en modul som autologger inn med en bruker som automatisk kjører dibbler, og setter opp et minimalistisk miljø.
|
||||||
|
|
||||||
Før du bygger imaget burde du lage en `config.ini` fil lokalt som inneholder instillingene dine. **NB: Denne kommer til å ligge i nix storen.**
|
Før du bygger imaget burde du endre conf.py lokalt til å inneholde instillingene dine. **NB: Denne kommer til å ligge i nix storen.**
|
||||||
|
|
||||||
Du kan også endre hvilken `config.ini` som blir brukt direkte i pakken eller i modulen.
|
Du kan også endre hvilken conf.py som blir brukt direkte i pakken eller i modulen.
|
||||||
|
|
||||||
Se eksempelet for hvordan skrot er satt opp i `flake.nix`
|
Se eksempelet for hvordan skrot er satt opp i flake.nix
|
||||||
|
|
||||||
### Bygge image for skrot
|
### Bygge image for skrot
|
||||||
|
Skrot har et image definert i flake.nix:
|
||||||
|
|
||||||
Skrot har et system image definert i `flake.nix`:
|
1. endre conf.py
|
||||||
|
|
||||||
1. lag `config.ini` (`cp {example-,}config.ini`)
|
|
||||||
2. `nix build .#images.skrot`
|
2. `nix build .#images.skrot`
|
||||||
3. ???
|
3. ???
|
||||||
4. non-profit!
|
4. non-profit
|
|
@ -0,0 +1,13 @@
|
||||||
|
db_url = "postgresql://robertem@127.0.0.1/pvvvv"
|
||||||
|
quit_allowed = True
|
||||||
|
stop_allowed = False
|
||||||
|
show_tracebacks = True
|
||||||
|
input_encoding = "utf8"
|
||||||
|
|
||||||
|
low_credit_warning_limit = -100
|
||||||
|
user_recent_transaction_limit = 100
|
||||||
|
|
||||||
|
# See https://pypi.org/project/brother_ql/ for label types
|
||||||
|
# Set rotate to False for endless labels
|
||||||
|
label_type = "62"
|
||||||
|
label_rotate = False
|
|
@ -1,12 +1,7 @@
|
||||||
import os
|
|
||||||
|
|
||||||
from sqlalchemy import create_engine
|
from sqlalchemy import create_engine
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
|
|
||||||
from dibbler.conf import config
|
from dibbler.conf import config
|
||||||
|
|
||||||
engine = create_engine(
|
engine = create_engine(config.get("database", "url"))
|
||||||
os.environ.get("DIBBLER_DATABASE_URL")
|
|
||||||
or config.get("database", "url")
|
|
||||||
)
|
|
||||||
Session = sessionmaker(bind=engine)
|
Session = sessionmaker(bind=engine)
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
import argparse
|
import argparse
|
||||||
import sys
|
|
||||||
import os
|
|
||||||
|
|
||||||
from dibbler.conf import config
|
from dibbler.conf import config
|
||||||
|
|
||||||
|
@ -12,7 +10,6 @@ parser.add_argument(
|
||||||
help="Path to the config file",
|
help="Path to the config file",
|
||||||
type=str,
|
type=str,
|
||||||
required=False,
|
required=False,
|
||||||
default=os.environ.get("DIBBLER_CONFIG_FILE", None)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
subparsers = parser.add_subparsers(
|
subparsers = parser.add_subparsers(
|
||||||
|
@ -27,8 +24,6 @@ subparsers.add_parser("slabbedasker", help="Find out who is slabbedasker")
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
if args.config is None:
|
|
||||||
print("ERROR: no config was provided", file=sys.stderr)
|
|
||||||
config.read(args.config)
|
config.read(args.config)
|
||||||
|
|
||||||
if args.subcommand == "loop":
|
if args.subcommand == "loop":
|
||||||
|
|
|
@ -1,20 +1,18 @@
|
||||||
[general]
|
[general]
|
||||||
; quit_allowed = false
|
quit_allowed = true
|
||||||
; stop_allowed = false
|
stop_allowed = false
|
||||||
quit_allowed = true ; not for prod
|
|
||||||
stop_allowed = true ; not for prod
|
|
||||||
show_tracebacks = true
|
show_tracebacks = true
|
||||||
input_encoding = 'utf8'
|
input_encoding = 'utf8'
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
; url = postgresql://dibbler:hunter2@127.0.0.1/pvvvv
|
; url = postgresql://robertem@127.0.0.1/pvvvv
|
||||||
url = sqlite:///test.db ; devenv will override this to postgres using DIBBLER_DATABASE_URL
|
url = sqlite:///test.db
|
||||||
|
|
||||||
[limits]
|
[limits]
|
||||||
low_credit_warning_limit = -100
|
low_credit_warning_limit = -100
|
||||||
user_recent_transaction_limit = 100
|
user_recent_transaction_limit = 100
|
||||||
|
|
||||||
# See https://pypi.org/project/brother_ql_next/ for label types
|
# See https://pypi.org/project/brother_ql/ for label types
|
||||||
# Set rotate to False for endless labels
|
# Set rotate to False for endless labels
|
||||||
[printer]
|
[printer]
|
||||||
label_type = "62"
|
label_type = "62"
|
||||||
|
|
256
flake.lock
256
flake.lock
|
@ -1,103 +1,15 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"cachix": {
|
|
||||||
"inputs": {
|
|
||||||
"devenv": [
|
|
||||||
"devenv"
|
|
||||||
],
|
|
||||||
"flake-compat": [
|
|
||||||
"devenv"
|
|
||||||
],
|
|
||||||
"git-hooks": [
|
|
||||||
"devenv"
|
|
||||||
],
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1728672398,
|
|
||||||
"narHash": "sha256-KxuGSoVUFnQLB2ZcYODW7AVPAh9JqRlD5BrfsC/Q4qs=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "cachix",
|
|
||||||
"rev": "aac51f698309fd0f381149214b7eee213c66ef0a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"ref": "latest",
|
|
||||||
"repo": "cachix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"devenv": {
|
|
||||||
"inputs": {
|
|
||||||
"cachix": "cachix",
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"git-hooks": "git-hooks",
|
|
||||||
"nix": "nix",
|
|
||||||
"nixpkgs": "nixpkgs_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731619804,
|
|
||||||
"narHash": "sha256-wyxFaVooL8SzvQNpolpx32X+GoBPnCAg9E0i/Ekn3FU=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "devenv",
|
|
||||||
"rev": "87edaaf1dddf17fe16eabab3c8edaf7cca2c3bc2",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "devenv",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1696426674,
|
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": [
|
|
||||||
"devenv",
|
|
||||||
"nix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1712014858,
|
|
||||||
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1692799911,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -106,174 +18,24 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"git-hooks": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": [
|
|
||||||
"devenv"
|
|
||||||
],
|
|
||||||
"gitignore": "gitignore",
|
|
||||||
"nixpkgs": [
|
|
||||||
"devenv",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"nixpkgs-stable": [
|
|
||||||
"devenv"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1730302582,
|
|
||||||
"narHash": "sha256-W1MIJpADXQCgosJZT8qBYLRuZls2KSiKdpnTVdKBuvU=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"rev": "af8a16fe5c264f5e9e18bcee2859b40a656876cf",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"devenv",
|
|
||||||
"git-hooks",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1709087332,
|
|
||||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"libgit2": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1697646580,
|
|
||||||
"narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
|
|
||||||
"owner": "libgit2",
|
|
||||||
"repo": "libgit2",
|
|
||||||
"rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "libgit2",
|
|
||||||
"repo": "libgit2",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": [
|
|
||||||
"devenv"
|
|
||||||
],
|
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"libgit2": "libgit2",
|
|
||||||
"nixpkgs": "nixpkgs_2",
|
|
||||||
"nixpkgs-23-11": [
|
|
||||||
"devenv"
|
|
||||||
],
|
|
||||||
"nixpkgs-regression": [
|
|
||||||
"devenv"
|
|
||||||
],
|
|
||||||
"pre-commit-hooks": [
|
|
||||||
"devenv"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1727438425,
|
|
||||||
"narHash": "sha256-X8ES7I1cfNhR9oKp06F6ir4Np70WGZU5sfCOuNBEwMg=",
|
|
||||||
"owner": "domenkozar",
|
|
||||||
"repo": "nix",
|
|
||||||
"rev": "f6c5ae4c1b2e411e6b1e6a8181cc84363d6a7546",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "domenkozar",
|
|
||||||
"ref": "devenv-2.24",
|
|
||||||
"repo": "nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730531603,
|
"lastModified": 1693145325,
|
||||||
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
|
"narHash": "sha256-Gat9xskErH1zOcLjYMhSDBo0JTBZKfGS0xJlIRnj6Rc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
|
"rev": "cddebdb60de376c1bdb7a4e6ee3d98355453fe56",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-unstable",
|
"type": "indirect"
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1717432640,
|
|
||||||
"narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "88269ab3044128b7c2f4c7d68448b2fb50456870",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "release-24.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1716977621,
|
|
||||||
"narHash": "sha256-Q1UQzYcMJH4RscmpTkjlgqQDX5yi1tZL0O345Ri6vXQ=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "devenv-nixpkgs",
|
|
||||||
"rev": "4267e705586473d3e5c8d50299e71503f16a6fb6",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"ref": "rolling",
|
|
||||||
"repo": "devenv-nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731611831,
|
|
||||||
"narHash": "sha256-R51rOqkWMfubBkZ9BY4Y1VaRoeqEBshlfQ8mMH5RjqI=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "cea28c811faadb50bee00d433bbf2fea845a43e4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable-small",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devenv": "devenv",
|
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs_4"
|
"nixpkgs": "nixpkgs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
|
|
89
flake.nix
89
flake.nix
|
@ -1,85 +1,35 @@
|
||||||
{
|
{
|
||||||
description = "Dibbler samspleisebod";
|
description = "Dibbler samspleisebod";
|
||||||
|
|
||||||
inputs = {
|
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small";
|
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
|
||||||
devenv.url = "github:cachix/devenv";
|
|
||||||
};
|
|
||||||
|
|
||||||
nixConfig = {
|
outputs = { self, nixpkgs, flake-utils }:
|
||||||
extra-trusted-public-keys = [
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
];
|
|
||||||
extra-substituters = [
|
|
||||||
"https://devenv.cachix.org"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = { self, ... } @ inputs:
|
|
||||||
inputs.flake-utils.lib.eachDefaultSystem (system: let
|
|
||||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
|
||||||
inherit (pkgs) lib;
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
packages = {
|
packages = {
|
||||||
default = self.packages.${system}.dibbler;
|
default = self.packages.${system}.dibbler;
|
||||||
|
dibbler = pkgs.callPackage ./nix/dibbler.nix {
|
||||||
|
python3Packages = pkgs.python311Packages;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
dibbler = pkgs.python311Packages.callPackage ./nix/dibbler.nix { };
|
apps = {
|
||||||
skrot-vm = self.nixosConfigurations.skrot.config.system.build.vm;
|
default = self.apps.${system}.dibbler;
|
||||||
|
dibbler = flake-utils.lib.mkApp {
|
||||||
# devenv cruft
|
drv = self.packages.${system}.dibbler;
|
||||||
devenv-up = self.devShells.${system}.default.config.procfileScript;
|
};
|
||||||
devenv-test = self.devShells.${system}.default.config.test;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
devShells = {
|
devShells = {
|
||||||
default = self.devShells.${system}.dibbler;
|
default = self.devShells.${system}.dibbler;
|
||||||
dibbler = inputs.devenv.lib.mkShell {
|
dibbler = pkgs.mkShell {
|
||||||
inherit inputs pkgs;
|
packages = with pkgs; [
|
||||||
modules = [({ config, ... }: {
|
python311Packages.black
|
||||||
# https://devenv.sh/reference/options/
|
ruff
|
||||||
|
|
||||||
enterShell = ''
|
|
||||||
if [[ ! -f config.ini ]]; then
|
|
||||||
cp -v example-config.ini config.ini
|
|
||||||
fi
|
|
||||||
|
|
||||||
export REPO_ROOT=$(realpath .) # used by mkPythonEditablePackage
|
|
||||||
export DIBBLER_CONFIG_FILE=$(realpath config.ini)
|
|
||||||
export DIBBLER_DATABASE_URL=postgresql://dibbler:hunter2@/dibbler?host=${config.env.PGHOST}
|
|
||||||
'';
|
|
||||||
|
|
||||||
packages = [
|
|
||||||
|
|
||||||
/* self.packages.${system}.dibbler */
|
|
||||||
(pkgs.python311Packages.mkPythonEditablePackage {
|
|
||||||
inherit (self.packages.${system}.dibbler)
|
|
||||||
pname version
|
|
||||||
build-system dependencies;
|
|
||||||
scripts = (lib.importTOML ./pyproject.toml).project.scripts;
|
|
||||||
root = "$REPO_ROOT";
|
|
||||||
})
|
|
||||||
|
|
||||||
pkgs.python311Packages.black
|
|
||||||
pkgs.ruff
|
|
||||||
];
|
|
||||||
|
|
||||||
services.postgres = {
|
|
||||||
enable = true;
|
|
||||||
initialDatabases = [
|
|
||||||
{
|
|
||||||
name = "dibbler";
|
|
||||||
user = "dibbler";
|
|
||||||
pass = "hunter2";
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
})];
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -91,10 +41,10 @@
|
||||||
|
|
||||||
images.skrot = self.nixosConfigurations.skrot.config.system.build.sdImage;
|
images.skrot = self.nixosConfigurations.skrot.config.system.build.sdImage;
|
||||||
|
|
||||||
nixosConfigurations.skrot = inputs.nixpkgs.lib.nixosSystem {
|
nixosConfigurations.skrot = nixpkgs.lib.nixosSystem {
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
(inputs.nixpkgs + "/nixos/modules/installer/sd-card/sd-image-aarch64.nix")
|
(nixpkgs + "/nixos/modules/installer/sd-card/sd-image-aarch64.nix")
|
||||||
self.nixosModules.default
|
self.nixosModules.default
|
||||||
({...}: {
|
({...}: {
|
||||||
system.stateVersion = "22.05";
|
system.stateVersion = "22.05";
|
||||||
|
@ -123,6 +73,5 @@
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,17 @@
|
||||||
{ lib
|
{ lib
|
||||||
|
, python3Packages
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, buildPythonApplication
|
|
||||||
, setuptools
|
|
||||||
, brother-ql
|
|
||||||
, matplotlib
|
|
||||||
, psycopg2
|
|
||||||
, python-barcode
|
|
||||||
, sqlalchemy
|
|
||||||
}:
|
}:
|
||||||
|
python3Packages.buildPythonApplication {
|
||||||
buildPythonApplication {
|
|
||||||
pname = "dibbler";
|
pname = "dibbler";
|
||||||
version = "0.0.0";
|
version = "unstable-2021-09-07";
|
||||||
pyproject = true;
|
|
||||||
|
|
||||||
src = lib.cleanSource ../.;
|
src = lib.cleanSource ../.;
|
||||||
|
|
||||||
build-system = [ setuptools ];
|
format = "pyproject";
|
||||||
dependencies = [
|
|
||||||
# we override pname to satisfy mkPythonEditablePackage
|
nativeBuildInputs = with python3Packages; [ setuptools ];
|
||||||
(brother-ql.overridePythonAttrs { pname = "brother-ql-next"; })
|
propagatedBuildInputs = with python3Packages; [
|
||||||
|
brother-ql
|
||||||
matplotlib
|
matplotlib
|
||||||
psycopg2
|
psycopg2
|
||||||
python-barcode
|
python-barcode
|
||||||
|
|
|
@ -23,10 +23,7 @@ in {
|
||||||
group = "dibbler";
|
group = "dibbler";
|
||||||
extraGroups = [ "lp" ];
|
extraGroups = [ "lp" ];
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
shell = (
|
shell = ((pkgs.writeShellScriptBin "login-shell" "${screen} -x dibbler") // {shellPath = "/bin/login-shell";});
|
||||||
(pkgs.writeShellScriptBin "login-shell" "${screen} -x dibbler")
|
|
||||||
// {shellPath = "/bin/login-shell";}
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ classifiers = [
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"SQLAlchemy >= 2.0, <2.1",
|
"SQLAlchemy >= 2.0, <2.1",
|
||||||
"brother_ql_next",
|
"brother-ql",
|
||||||
"matplotlib",
|
"matplotlib",
|
||||||
"psycopg2 >= 2.8, <2.10",
|
"psycopg2 >= 2.8, <2.10",
|
||||||
"python-barcode",
|
"python-barcode",
|
||||||
|
@ -32,3 +32,4 @@ line-length = 100
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
line-length = 100
|
line-length = 100
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue