From 536d9433c45a5019551d462df3b7578ccbf53067 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sat, 30 May 2026 07:45:21 +0000 Subject: idk update all of it --- .gitignore | 1 - .gitmodules | 8 ------- build.zig | 39 ++++++++----------------------- build.zig.zon | 12 +++------- ext/zighttp | 1 - ext/ziglmdb | 1 - flake.lock | 49 +++++++++++++++------------------------ flake.nix | 74 ++++++++++++++++++++++++++++++++++++++++++----------------- 8 files changed, 83 insertions(+), 102 deletions(-) delete mode 160000 ext/zighttp delete mode 160000 ext/ziglmdb diff --git a/.gitignore b/.gitignore index 69d242d..58ae243 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,3 @@ db zig-out .zig-cache ssh -* diff --git a/.gitmodules b/.gitmodules index 83080fc..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,8 +0,0 @@ -[submodule "ext/zighttp"] - path = ext/zighttp - url = git@ps.run:zighttp - branch = main -[submodule "ext/ziglmdb"] - path = ext/ziglmdb - url = git@ps.run:ziglmdb - branch = main diff --git a/build.zig b/build.zig index b46d414..7b05285 100644 --- a/build.zig +++ b/build.zig @@ -6,48 +6,27 @@ pub fn build(b: *std.Build) void { const exe = b.addExecutable(.{ .name = "chirp", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, + .root_module = b.createModule(.{ + .root_source_file = b.path("src/main.zig"), + .target = target, + .optimize = optimize, + }), }); // other modules exe.root_module.omit_frame_pointer = false; - const exe_check = b.addExecutable(.{ - .name = "chirp", - .root_source_file = b.path("src/main.zig"), - .target = target, - .optimize = optimize, - }); - - const check = b.step("check", "Check if chirp compiles"); - check.dependOn(&exe_check.step); - const lmdb = b.dependency("lmdb", .{ .target = target, .optimize = optimize }); - var lmdb_mod = lmdb.module("lmdb"); - lmdb_mod.omit_frame_pointer = false; - var db_mod = lmdb.module("db"); - db_mod.omit_frame_pointer = false; - const http = b.dependency("http", .{ .target = target, .optimize = optimize }); - const http_mod = http.module("http"); - // lmdb_mod.omit_frame_pointer = false; - - exe.root_module.addImport("http", http_mod); - exe.root_module.addImport("lmdb", lmdb_mod); - exe.root_module.addImport("db", db_mod); - exe.linkLibC(); - - exe_check.root_module.addImport("http", http_mod); - exe_check.root_module.addImport("lmdb", lmdb_mod); - exe_check.root_module.addImport("db", db_mod); - exe_check.linkLibC(); + exe.root_module.addImport("lmdb", lmdb.module("lmdb")); + exe.root_module.addImport("db", lmdb.module("db")); + exe.root_module.link_libc = true; b.installArtifact(exe); const run_cmd = b.addRunArtifact(exe); run_cmd.step.dependOn(b.getInstallStep()); + const run_step = b.step("run", "Run the app"); run_step.dependOn(&run_cmd.step); } diff --git a/build.zig.zon b/build.zig.zon index 9a97ec6..b284d7b 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -3,20 +3,14 @@ .fingerprint = 0xec28bf8bb19d527d, .version = "0.0.0", .paths = .{ - "src/main.zig", + "src", "build.zig", "build.zig.zon", }, .dependencies = .{ .lmdb = .{ - // .url = "git+https://github.com/patrick-scho/ziglmdb#34515088c250366d2e37345997b9c54039395050", - // .hash = "12205e0c136638e96ddea66e9df03f37d12307a3cc5c6e3adb59f6c3c29632dd0096", - .path = "ext/ziglmdb", - }, - .http = .{ - // .url = "git+https://github.com/patrick-scho/zighttp#cbbbc36896f78f177617755a59278342214f4c04", - // .hash = "1220042dc55c4bf5fe1509264ce93a9f773a66db34212b5d670ef86fdda2d57d7333", - .path = "ext/zighttp", + .url = "https://ps.run/git/ziglmdb/snapshot/ziglmdb-main.tar.gz", + .hash = "lmdb-0.0.0-mZjNUcbKBgCMIbeE-uFBaSx7x8bhNmENPw7HoieUgTxy", }, }, } diff --git a/ext/zighttp b/ext/zighttp deleted file mode 160000 index d2215f1..0000000 --- a/ext/zighttp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d2215f174d1c9c8a66c62094d99e1c8d2305b1c1 diff --git a/ext/ziglmdb b/ext/ziglmdb deleted file mode 160000 index 8a83e68..0000000 --- a/ext/ziglmdb +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8a83e6882df4994d1e32d7c633dd4e14e937d9a5 diff --git a/flake.lock b/flake.lock index 90c9144..31358fc 100644 --- a/flake.lock +++ b/flake.lock @@ -1,30 +1,12 @@ { "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1744463964, - "narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=", + "lastModified": 1777954456, + "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650", + "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1", "type": "github" }, "original": { @@ -36,22 +18,27 @@ }, "root": { "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "zig": "zig" } }, - "systems": { + "zig": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "lastModified": 1778524253, + "narHash": "sha256-zm8q9v7KmBjtMTP1x6kk2Fh3XrAySDnZl3dMZl0Jqkc=", + "owner": "silversquirl", + "repo": "zig-flake", + "rev": "824cb996143ba0f42653b5312a1d3cb8822c3947", "type": "github" }, "original": { - "owner": "nix-systems", - "repo": "default", + "owner": "silversquirl", + "repo": "zig-flake", "type": "github" } } diff --git a/flake.nix b/flake.nix index e32262f..87e704b 100644 --- a/flake.nix +++ b/flake.nix @@ -1,35 +1,67 @@ { description = "Chirp Flake"; - inputs.self.submodules = true; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - inputs.flake-utils.url = "github:numtide/flake-utils"; + inputs.zig = { + url = "github:silversquirl/zig-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; - outputs = { self, nixpkgs, flake-utils }: - flake-utils.lib.eachDefaultSystem (system: - let - pkgs = import nixpkgs { inherit system; }; - in { - packages.default = pkgs.stdenvNoCC.mkDerivation { + outputs = { self, nixpkgs, zig, ... }: + let + forAllSystems = f: + builtins.mapAttrs + (system: pkgs: f pkgs zig.packages.${system}.nightly) + nixpkgs.legacyPackages; + in { + devShells = forAllSystems (pkgs: zig: { + default = pkgs.mkShellNoCC { + packages = [pkgs.bash zig zig.zls]; + }; + }); + + packages = forAllSystems (pkgs: zig: { + default = zig.makePackage { pname = "chirp"; version = "0.0.0"; src = ./.; + zigReleaseMode = "fast"; + depsHash = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo="; + }; + }); - buildPhase = '' - mkdir -p .zig-cache-global/zig - ${pkgs.zig}/bin/zig build --global-cache-dir .zig-cache-global - ''; - - installPhase = '' - mkdir -p $out/bin - cp zig-out/bin/chirp $out/bin - ''; + nixosModules.default = { config, lib, pkgs, ... }: + let cfg = config.services.zhttpws; + in { + options.services.zhttpws = { + enable = lib.mkEnableOption "zhttpws"; + domain = lib.mkOption { + type = lib.types.str; + }; + port = lib.mkOption { + type = lib.types.port; + }; }; - apps.default = { - type = "app"; - program = "${self.packages.${system}.default}/bin/chirp"; + config = lib.mkIf cfg.enable { + systemd.services.chirp = { + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + ExecStart = "${self.packages.${pkgs.system}.default}/bin/chirp"; + DynamicUser = true; + Restart = "always"; + }; + environment = { + PORT = toString cfg.port; + }; + }; + + services.caddy.virtualHosts."${cfg.domain}".extraConfig = '' + reverse_proxy localhost:${toString cfg.port} + ''; }; - }); + }; + }; } -- cgit v1.2.3