kjhkjhkjh, take 2 #20
							
								
								
									
										2
									
								
								.envrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.envrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| # devenv needs to know the path to the current working directory to create and manage mutable state | ||||
| use flake . --no-pure-eval | ||||
							
								
								
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +1,12 @@ | ||||
| result | ||||
| result-* | ||||
| .venv | ||||
| .direnv | ||||
| .devenv | ||||
|  | ||||
| dist | ||||
|  | ||||
| config.ini | ||||
| test.db | ||||
|  | ||||
| .ruff_cache | ||||
| .ruff_cache | ||||
|   | ||||
							
								
								
									
										35
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								README.md
									
									
									
									
									
								
							| @@ -3,29 +3,46 @@ | ||||
| EDB-system for PVVVV | ||||
|  | ||||
| ## Nix | ||||
|  | ||||
| ### Hvordan kjøre | ||||
|  | ||||
| `nix run github:Prograrmvarverkstedet/dibbler` | ||||
|     nix run github:Programvareverkstedet/dibbler | ||||
|  | ||||
| ### Hvordan utvikle? | ||||
|  | ||||
| ### Bygge nytt  image | ||||
|     python -m venv .venv | ||||
|     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. | ||||
|  | ||||
| (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ø. | ||||
|  | ||||
| Før du bygger imaget burde du endre conf.py lokalt til å inneholde instillingene dine. **NB: Denne kommer til å ligge i nix storen.** | ||||
| 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.** | ||||
|  | ||||
| Du kan også endre hvilken conf.py som blir brukt direkte i pakken eller i modulen. | ||||
| Du kan også endre hvilken `config.ini` 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 | ||||
| Skrot har et image definert i flake.nix: | ||||
|  | ||||
| 1. endre conf.py | ||||
| Skrot har et system image definert i `flake.nix`: | ||||
|  | ||||
| 1. lag `config.ini` (`cp {example-,}config.ini`) | ||||
| 2. `nix build .#images.skrot` | ||||
| 3. ??? | ||||
| 4. non-profit | ||||
| 4. non-profit! | ||||
|   | ||||
							
								
								
									
										13
									
								
								conf.py
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								conf.py
									
									
									
									
									
								
							| @@ -1,13 +0,0 @@ | ||||
| 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,7 +1,12 @@ | ||||
| import os | ||||
|  | ||||
| from sqlalchemy import create_engine | ||||
| from sqlalchemy.orm import sessionmaker | ||||
|  | ||||
| from dibbler.conf import config | ||||
|  | ||||
| engine = create_engine(config.get("database", "url")) | ||||
| engine = create_engine( | ||||
|     os.environ.get("DIBBLER_DATABASE_URL") | ||||
|     or config.get("database", "url") | ||||
| ) | ||||
| Session = sessionmaker(bind=engine) | ||||
|   | ||||
| @@ -1,4 +1,6 @@ | ||||
| import argparse | ||||
| import sys | ||||
| import os | ||||
|  | ||||
| from dibbler.conf import config | ||||
|  | ||||
| @@ -10,6 +12,7 @@ parser.add_argument( | ||||
|     help="Path to the config file", | ||||
|     type=str, | ||||
|     required=False, | ||||
|     default=os.environ.get("DIBBLER_CONFIG_FILE", None) | ||||
| ) | ||||
|  | ||||
| subparsers = parser.add_subparsers( | ||||
| @@ -24,6 +27,8 @@ subparsers.add_parser("slabbedasker", help="Find out who is slabbedasker") | ||||
|  | ||||
| def main(): | ||||
|     args = parser.parse_args() | ||||
|     if args.config is None: | ||||
|         print("ERROR: no config was provided", file=sys.stderr) | ||||
|     config.read(args.config) | ||||
|  | ||||
|     if args.subcommand == "loop": | ||||
|   | ||||
| @@ -1,18 +1,20 @@ | ||||
| [general] | ||||
| quit_allowed = true | ||||
| stop_allowed = false | ||||
| ; quit_allowed = false | ||||
| ; stop_allowed = false | ||||
| quit_allowed = true ; not for prod | ||||
| stop_allowed = true ; not for prod | ||||
| show_tracebacks = true | ||||
| input_encoding = 'utf8' | ||||
|  | ||||
| [database] | ||||
| ; url = postgresql://robertem@127.0.0.1/pvvvv | ||||
| url = sqlite:///test.db | ||||
| ; url = postgresql://dibbler:hunter2@127.0.0.1/pvvvv | ||||
| url = sqlite:///test.db ; devenv will override this to postgres using DIBBLER_DATABASE_URL | ||||
|  | ||||
| [limits] | ||||
| low_credit_warning_limit = -100 | ||||
| user_recent_transaction_limit = 100 | ||||
|  | ||||
| # See https://pypi.org/project/brother_ql/ for label types | ||||
| # See https://pypi.org/project/brother_ql_next/ for label types | ||||
| # Set rotate to False for endless labels | ||||
| [printer] | ||||
| label_type = "62" | ||||
|   | ||||
							
								
								
									
										256
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										256
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @@ -1,15 +1,103 @@ | ||||
| { | ||||
|   "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": { | ||||
|       "inputs": { | ||||
|         "systems": "systems" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1692799911, | ||||
|         "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=", | ||||
|         "lastModified": 1731533236, | ||||
|         "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44", | ||||
|         "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
| @@ -18,24 +106,174 @@ | ||||
|         "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": { | ||||
|       "locked": { | ||||
|         "lastModified": 1693145325, | ||||
|         "narHash": "sha256-Gat9xskErH1zOcLjYMhSDBo0JTBZKfGS0xJlIRnj6Rc=", | ||||
|         "lastModified": 1730531603, | ||||
|         "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "cddebdb60de376c1bdb7a4e6ee3d98355453fe56", | ||||
|         "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "id": "nixpkgs", | ||||
|         "type": "indirect" | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixos-unstable", | ||||
|         "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": { | ||||
|       "inputs": { | ||||
|         "devenv": "devenv", | ||||
|         "flake-utils": "flake-utils", | ||||
|         "nixpkgs": "nixpkgs" | ||||
|         "nixpkgs": "nixpkgs_4" | ||||
|       } | ||||
|     }, | ||||
|     "systems": { | ||||
|   | ||||
							
								
								
									
										91
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										91
									
								
								flake.nix
									
									
									
									
									
								
							| @@ -1,35 +1,85 @@ | ||||
| { | ||||
|   description = "Dibbler samspleisebod"; | ||||
|  | ||||
|   inputs.flake-utils.url = "github:numtide/flake-utils"; | ||||
|   inputs = { | ||||
|     nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small"; | ||||
|     flake-utils.url = "github:numtide/flake-utils"; | ||||
|     devenv.url = "github:cachix/devenv"; | ||||
|   }; | ||||
|  | ||||
|   outputs = { self, nixpkgs, flake-utils }: | ||||
|     flake-utils.lib.eachDefaultSystem (system: let | ||||
|       pkgs = nixpkgs.legacyPackages.${system}; | ||||
|   nixConfig = { | ||||
|     extra-trusted-public-keys = [ | ||||
|       "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" | ||||
|     ]; | ||||
|     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 { | ||||
|  | ||||
|       packages = { | ||||
|         default = self.packages.${system}.dibbler; | ||||
|         dibbler = pkgs.callPackage ./nix/dibbler.nix { | ||||
|           python3Packages = pkgs.python311Packages; | ||||
|         }; | ||||
|       }; | ||||
|  | ||||
|       apps = { | ||||
|         default = self.apps.${system}.dibbler; | ||||
|         dibbler = flake-utils.lib.mkApp { | ||||
|           drv = self.packages.${system}.dibbler; | ||||
|         }; | ||||
|         dibbler = pkgs.python311Packages.callPackage ./nix/dibbler.nix { }; | ||||
|         skrot-vm = self.nixosConfigurations.skrot.config.system.build.vm; | ||||
|  | ||||
|         # devenv cruft | ||||
|         devenv-up = self.devShells.${system}.default.config.procfileScript; | ||||
|         devenv-test = self.devShells.${system}.default.config.test; | ||||
|       }; | ||||
|  | ||||
|       devShells = { | ||||
|         default = self.devShells.${system}.dibbler; | ||||
|         dibbler = pkgs.mkShell { | ||||
|           packages = with pkgs; [ | ||||
|             python311Packages.black | ||||
|             ruff | ||||
|           ]; | ||||
|         dibbler = inputs.devenv.lib.mkShell { | ||||
|           inherit inputs pkgs; | ||||
|           modules = [({ config, ... }: { | ||||
|             # https://devenv.sh/reference/options/ | ||||
|  | ||||
|             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"; | ||||
|                 } | ||||
|               ]; | ||||
|             }; | ||||
|  | ||||
|           })]; | ||||
|         }; | ||||
|       }; | ||||
|  | ||||
|     }) | ||||
|  | ||||
|     // | ||||
| @@ -41,10 +91,10 @@ | ||||
|  | ||||
|       images.skrot = self.nixosConfigurations.skrot.config.system.build.sdImage; | ||||
|  | ||||
|       nixosConfigurations.skrot = nixpkgs.lib.nixosSystem { | ||||
|       nixosConfigurations.skrot = inputs.nixpkgs.lib.nixosSystem { | ||||
|         system = "aarch64-linux"; | ||||
|         modules = [ | ||||
|           (nixpkgs + "/nixos/modules/installer/sd-card/sd-image-aarch64.nix") | ||||
|           (inputs.nixpkgs + "/nixos/modules/installer/sd-card/sd-image-aarch64.nix") | ||||
|           self.nixosModules.default | ||||
|           ({...}: { | ||||
|             system.stateVersion = "22.05"; | ||||
| @@ -73,5 +123,6 @@ | ||||
|           }) | ||||
|         ]; | ||||
|       }; | ||||
|  | ||||
|     }; | ||||
| } | ||||
|   | ||||
| @@ -1,17 +1,25 @@ | ||||
| { lib | ||||
| , python3Packages | ||||
| , fetchFromGitHub | ||||
| , buildPythonApplication | ||||
| , setuptools | ||||
| , brother-ql | ||||
| , matplotlib | ||||
| , psycopg2 | ||||
| , python-barcode | ||||
| , sqlalchemy | ||||
| }: | ||||
| python3Packages.buildPythonApplication { | ||||
|  | ||||
| buildPythonApplication { | ||||
|   pname = "dibbler"; | ||||
|   version = "unstable-2021-09-07"; | ||||
|   version = "0.0.0"; | ||||
|   pyproject = true; | ||||
|  | ||||
|   src = lib.cleanSource ../.; | ||||
|  | ||||
|   format = "pyproject"; | ||||
|  | ||||
|   nativeBuildInputs = with python3Packages; [ setuptools ]; | ||||
|   propagatedBuildInputs = with python3Packages; [ | ||||
|     brother-ql | ||||
|   build-system = [ setuptools ]; | ||||
|   dependencies = [ | ||||
|     # we override pname to satisfy mkPythonEditablePackage | ||||
|     (brother-ql.overridePythonAttrs { pname = "brother-ql-next"; }) | ||||
|     matplotlib | ||||
|     psycopg2 | ||||
|     python-barcode | ||||
|   | ||||
| @@ -23,7 +23,10 @@ in { | ||||
|         group = "dibbler"; | ||||
|         extraGroups = [ "lp" ]; | ||||
|         isNormalUser = true; | ||||
|         shell = ((pkgs.writeShellScriptBin "login-shell" "${screen} -x dibbler") // {shellPath = "/bin/login-shell";}); | ||||
|         shell = ( | ||||
|           (pkgs.writeShellScriptBin "login-shell" "${screen} -x dibbler") | ||||
|           // {shellPath = "/bin/login-shell";} | ||||
|         ); | ||||
|       }; | ||||
|     }; | ||||
|  | ||||
|   | ||||
| @@ -14,7 +14,7 @@ classifiers = [ | ||||
| ] | ||||
| dependencies = [ | ||||
|     "SQLAlchemy >= 2.0, <2.1", | ||||
|     "brother-ql", | ||||
|     "brother_ql_next", | ||||
|     "matplotlib", | ||||
|     "psycopg2 >= 2.8, <2.10", | ||||
|     "python-barcode", | ||||
| @@ -32,4 +32,3 @@ line-length = 100 | ||||
|  | ||||
| [tool.ruff] | ||||
| line-length = 100 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user