PDS software with bells & whistles you didn’t even know you needed. will move this to its own account when ready.

add nix package, devshell and an .envrc

authored by nel.pet and committed by tangled.org f9172a90 a094bdc2

+1
.envrc
··· 1 + use flake;
+2
.gitignore
··· 1 1 /target 2 2 .env 3 + .direnv 4 + .result 3 5 reference-pds-hailey/ 4 6 reference-pds-bsky/ 5 7 reference-relay-indigo/
+37
default.nix
··· 1 + { 2 + lib, 3 + rustPlatform, 4 + pkg-config, 5 + openssl, 6 + }: let 7 + toml = (lib.importTOML ./Cargo.toml).package; 8 + in rustPlatform.buildRustPackage { 9 + pname = "tranquil-pds"; 10 + inherit (toml) version; 11 + 12 + src = lib.fileset.toSource { 13 + root = ./.; 14 + fileset = lib.fileset.intersection (lib.fileset.fromSource (lib.sources.cleanSource ./.)) ( 15 + lib.fileset.unions [ 16 + ./Cargo.toml 17 + ./Cargo.lock 18 + ./src 19 + ./.sqlx 20 + ./migrations 21 + ./frontend 22 + ] 23 + ); 24 + }; 25 + 26 + nativeBuildInputs = [ 27 + pkg-config 28 + ]; 29 + 30 + buildInputs = [ 31 + openssl 32 + ]; 33 + 34 + cargoLock.lockFile = ./Cargo.lock; 35 + 36 + doCheck = false; 37 + }
+27
flake.lock
··· 1 + { 2 + "nodes": { 3 + "nixpkgs": { 4 + "locked": { 5 + "lastModified": 1766314097, 6 + "narHash": "sha256-laJftWbghBehazn/zxVJ8NdENVgjccsWAdAqKXhErrM=", 7 + "owner": "nixos", 8 + "repo": "nixpkgs", 9 + "rev": "306ea70f9eb0fb4e040f8540e2deab32ed7e2055", 10 + "type": "github" 11 + }, 12 + "original": { 13 + "owner": "nixos", 14 + "ref": "nixpkgs-unstable", 15 + "repo": "nixpkgs", 16 + "type": "github" 17 + } 18 + }, 19 + "root": { 20 + "inputs": { 21 + "nixpkgs": "nixpkgs" 22 + } 23 + } 24 + }, 25 + "root": "root", 26 + "version": 7 27 + }
+19
flake.nix
··· 1 + { 2 + inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; 3 + outputs = { self, nixpkgs, ... }: let 4 + forAllSystems = 5 + function: 6 + nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed ( 7 + system: function nixpkgs.legacyPackages.${system} 8 + ); 9 + in { 10 + packages = forAllSystems (pkgs: { 11 + tranquil-pds = pkgs.callPackage ./default.nix { }; 12 + default = self.packages.${pkgs.stdenv.hostPlatform.system}.tranquil-pds; 13 + }); 14 + 15 + devShells = forAllSystems (pkgs: { 16 + default = pkgs.callPackage ./shell.nix { }; 17 + }); 18 + }; 19 + }
+38
shell.nix
··· 1 + { 2 + mkShell, 3 + callPackage, 4 + rustPlatform, 5 + 6 + # repo tooling 7 + just, 8 + podman, 9 + podman-compose, 10 + 11 + # rust tooling 12 + clippy, 13 + rustfmt, 14 + rust-analyzer, 15 + 16 + # frontend tooling 17 + deno, 18 + }: let 19 + defaultPackage = callPackage ./default.nix { }; 20 + in mkShell { 21 + inputsFrom = [ defaultPackage ]; 22 + 23 + env = { 24 + RUST_SRC_PATH = rustPlatform.rustLibSrc; 25 + }; 26 + 27 + packages = [ 28 + just 29 + podman 30 + podman-compose 31 + 32 + clippy 33 + rustfmt 34 + rust-analyzer 35 + 36 + deno 37 + ]; 38 + }