From 4c2f3ac69303e3b0b7c6ad90e1902604f6e88d20 Mon Sep 17 00:00:00 2001 From: xrelkd <46590321+xrelkd@users.noreply.github.com> Date: Wed, 30 Aug 2023 22:18:24 +0800 Subject: Install shell completions in `Nix Flake` (#421) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update `flake.lock` Flake lock file updates: • Updated input 'devenv': 'github:cachix/devenv/8d6d129b666778538b76bcb069ab82f813094e5c' (2023-05-30) → 'github:cachix/devenv/3654eb5d47218cfa2d12280ba5ac1ace0a9dd225' (2023-08-30) • Updated input 'devenv/pre-commit-hooks': 'github:cachix/pre-commit-hooks.nix/fb58866e20af98779017134319b5663b8215d912' (2023-04-27) → 'github:cachix/pre-commit-hooks.nix/5843cf069272d92b60c3ed9e55b7a8989c01d4c7' (2023-06-29) • Updated input 'devenv/pre-commit-hooks/flake-utils': 'github:numtide/flake-utils/5aed5285a952e0b949eb3ba02c12fa4fcfef535f' (2022-11-02) → 'github:numtide/flake-utils/a1720a10a6cfe8234c0e93907ffe81be440f4cef' (2023-05-31) • Added input 'devenv/pre-commit-hooks/flake-utils/systems': 'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09) • Updated input 'devenv/pre-commit-hooks/nixpkgs-stable': 'github:NixOS/nixpkgs/9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8' (2023-03-15) → 'github:NixOS/nixpkgs/c37ca420157f4abc31e26f436c1145f8951ff373' (2023-06-03) • Updated input 'fenix': 'github:nix-community/fenix/9ea56d5de762971f6a7319711bae0532ca454dc9' (2023-05-30) → 'github:nix-community/fenix/76e468cd74a08edcbabb14ce1698ebd2f5fad9d2' (2023-08-29) • Updated input 'fenix/rust-analyzer-src': 'github:rust-lang/rust-analyzer/bc8295255c5bcc293251d47590dcbfd320eaab87' (2023-05-29) → 'github:rust-lang/rust-analyzer/62268e474e9165de0cdb08d3794eec4b6ef1c6cd' (2023-08-28) • Updated input 'flake-parts': 'github:hercules-ci/flake-parts/80717d11615b6f42d1ad2e18ead51193fc15de69' (2023-05-30) → 'github:hercules-ci/flake-parts/59cf3f1447cfc75087e7273b04b31e689a8599fb' (2023-08-01) • Updated input 'flake-parts/nixpkgs-lib': 'github:NixOS/nixpkgs/da45bf6ec7bbcc5d1e14d3795c025199f28e0de0?dir=lib' (2023-04-30) → 'github:NixOS/nixpkgs/9e1960bc196baf6881340d53dccb203a951745a2?dir=lib' (2023-08-01) • Updated input 'flake-root': 'github:srid/flake-root/f1c0b93d05bdbea6c011136ba1a135c80c5b326c' (2023-04-08) → 'github:srid/flake-root/d9a70d9c7a5fd7f3258ccf48da9335e9b47c3937' (2023-08-22) • Updated input 'mission-control': 'github:Platonic-Systems/mission-control/a0c93bd764a3c25e6999397e9f5f119c1b124e38' (2023-05-09) → 'github:Platonic-Systems/mission-control/9d25d9f8d610916fc144f6afc1f064392fbeec1c' (2023-07-28) • Updated input 'nix2container': 'github:nlewo/nix2container/2e0a633344489b3171afe136b820b4602f9d1807' (2023-05-16) → 'github:nlewo/nix2container/ab381a7d714ebf96a83882264245dbd34f0a7ec8' (2023-07-09) • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/5e871d8aa6f57cc8e0dc087d1c5013f6e212b4ce' (2023-05-29) → 'github:NixOS/nixpkgs/3efb0f6f404ec8dae31bdb1a9b17705ce0d6986e' (2023-08-28) • Updated input 'treefmt-nix': 'github:numtide/treefmt-nix/3d352b2b1a46164443aa114bd29d8d208d8a9bd0' (2023-05-30) → 'github:numtide/treefmt-nix/6befd3b6b8544952e0261f054cf16769294bacba' (2023-08-28) • Updated input 'treefmt-nix/nixpkgs': 'github:nixos/nixpkgs/d9f759f2ea8d265d974a6e1259bd510ac5844c5d' (2023-04-08) → 'github:nixos/nixpkgs/ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e' (2023-08-10) * install shell completions in `Nix Flake` * add GitHub Actions workflow for checking `Nix Flake` --- .github/workflows/nix.yaml | 24 +++++++++++ flake.lock | 104 ++++++++++++++++++++++++++------------------- nix/default.nix | 10 +++++ 3 files changed, 95 insertions(+), 43 deletions(-) create mode 100644 .github/workflows/nix.yaml diff --git a/.github/workflows/nix.yaml b/.github/workflows/nix.yaml new file mode 100644 index 0000000..fbc848e --- /dev/null +++ b/.github/workflows/nix.yaml @@ -0,0 +1,24 @@ +name: "Nix Flakes" + +on: + push: + branches: [dev, main] + + pull_request: + branches: [dev, main] + +jobs: + build-nix-flake: + name: Build Nix Flake + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Install Nix + uses: cachix/install-nix-action@v22 + + - name: Build Nix Flake + run: nix build + + - name: Test executable + run: ./result/bin/joshuto version diff --git a/flake.lock b/flake.lock index cac9530..bc35852 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1685458650, - "narHash": "sha256-QbhHZ13NM5YjEOT9FxVP1mZON5OvZr80/BNKaVqoRRo=", + "lastModified": 1693363254, + "narHash": "sha256-le4CbQz8rKheEkGZcZzmx1ycCQ4tjFMAkcpu3Uq+tEk=", "owner": "cachix", "repo": "devenv", - "rev": "8d6d129b666778538b76bcb069ab82f813094e5c", + "rev": "3654eb5d47218cfa2d12280ba5ac1ace0a9dd225", "type": "github" }, "original": { @@ -29,11 +29,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1685427675, - "narHash": "sha256-fWvqK8RhC6LABuUM7JL+loHhoRFcJx8rkAXGroVeKKw=", + "lastModified": 1693290084, + "narHash": "sha256-BMN2Sf1yuv5pw2koZZdMCCaghUYyo0hOtxY/v2zmiL8=", "owner": "nix-community", "repo": "fenix", - "rev": "9ea56d5de762971f6a7319711bae0532ca454dc9", + "rev": "76e468cd74a08edcbabb14ce1698ebd2f5fad9d2", "type": "github" }, "original": { @@ -63,11 +63,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1685457039, - "narHash": "sha256-bEFtQm+YyLxQjKQAaBHJyPN1z2wbhBnr2g1NJWSYjwM=", + "lastModified": 1690933134, + "narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "80717d11615b6f42d1ad2e18ead51193fc15de69", + "rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb", "type": "github" }, "original": { @@ -77,11 +77,11 @@ }, "flake-root": { "locked": { - "lastModified": 1680964220, - "narHash": "sha256-dIdTYcf+KW9a4pKHsEbddvLVSfR1yiAJynzg2x0nfWg=", + "lastModified": 1692742795, + "narHash": "sha256-f+Y0YhVCIJ06LemO+3Xx00lIcqQxSKJHXT/yk1RTKxw=", "owner": "srid", "repo": "flake-root", - "rev": "f1c0b93d05bdbea6c011136ba1a135c80c5b326c", + "rev": "d9a70d9c7a5fd7f3258ccf48da9335e9b47c3937", "type": "github" }, "original": { @@ -91,12 +91,15 @@ } }, "flake-utils": { + "inputs": { + "systems": "systems" + }, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", "type": "github" }, "original": { @@ -160,11 +163,11 @@ }, "mission-control": { "locked": { - "lastModified": 1683658484, - "narHash": "sha256-JkGnWyYZxOnyOhztrxLSqaod6+O/3rRypq0dAqA/zn0=", + "lastModified": 1690573269, + "narHash": "sha256-9NSmHRQvzBzfuKD3zHE2fM5xPa+hHSy7xcWQqZaCjFw=", "owner": "Platonic-Systems", "repo": "mission-control", - "rev": "a0c93bd764a3c25e6999397e9f5f119c1b124e38", + "rev": "9d25d9f8d610916fc144f6afc1f064392fbeec1c", "type": "github" }, "original": { @@ -220,11 +223,11 @@ ] }, "locked": { - "lastModified": 1684252411, - "narHash": "sha256-4T89zvNljrrErlsiWG/u9/AY3qj6KXeiaa/Mpx0SEsk=", + "lastModified": 1688922987, + "narHash": "sha256-RnQwrCD5anqWfyDAVbfFIeU+Ha6cwt5QcIwIkaGRzQw=", "owner": "nlewo", "repo": "nix2container", - "rev": "2e0a633344489b3171afe136b820b4602f9d1807", + "rev": "ab381a7d714ebf96a83882264245dbd34f0a7ec8", "type": "github" }, "original": { @@ -252,11 +255,11 @@ "nixpkgs-lib": { "locked": { "dir": "lib", - "lastModified": 1682879489, - "narHash": "sha256-sASwo8gBt7JDnOOstnps90K1wxmVfyhsTPPNTGBPjjg=", + "lastModified": 1690881714, + "narHash": "sha256-h/nXluEqdiQHs1oSgkOOWF+j8gcJMWhwnZ9PFabN6q0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "da45bf6ec7bbcc5d1e14d3795c025199f28e0de0", + "rev": "9e1960bc196baf6881340d53dccb203a951745a2", "type": "github" }, "original": { @@ -285,27 +288,27 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1678872516, - "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=", + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-22.11", + "ref": "nixos-23.05", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1685383865, - "narHash": "sha256-3uQytfnotO6QJv3r04ajSXbEFMII0dUtw0uqYlZ4dbk=", + "lastModified": 1693250523, + "narHash": "sha256-y3up5gXMTbnCsXrNEB5j+7TVantDLUYyQLu/ueiXuyg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5e871d8aa6f57cc8e0dc087d1c5013f6e212b4ce", + "rev": "3efb0f6f404ec8dae31bdb1a9b17705ce0d6986e", "type": "github" }, "original": { @@ -317,11 +320,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1680945546, - "narHash": "sha256-8FuaH5t/aVi/pR1XxnF0qi4WwMYC+YxlfdsA0V+TEuQ=", + "lastModified": 1691654369, + "narHash": "sha256-gSILTEx1jRaJjwZxRlnu3ZwMn1FVNk80qlwiCX8kmpo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d9f759f2ea8d265d974a6e1259bd510ac5844c5d", + "rev": "ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e", "type": "github" }, "original": { @@ -346,11 +349,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1682596858, - "narHash": "sha256-Hf9XVpqaGqe/4oDGr30W8HlsWvJXtMsEPHDqHZA6dDg=", + "lastModified": 1688056373, + "narHash": "sha256-2+SDlNRTKsgo3LBRiMUcoEUb6sDViRNQhzJquZ4koOI=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "fb58866e20af98779017134319b5663b8215d912", + "rev": "5843cf069272d92b60c3ed9e55b7a8989c01d4c7", "type": "github" }, "original": { @@ -375,11 +378,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1685378411, - "narHash": "sha256-Ufkqek5m8GzV3cz3Mw7bc0hO1d5hN0cO5BoTAK303K8=", + "lastModified": 1693248848, + "narHash": "sha256-TIroiasNKgsVHEjO4y8fBPHgFON1t91DMmOaXNLixXM=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "bc8295255c5bcc293251d47590dcbfd320eaab87", + "rev": "62268e474e9165de0cdb08d3794eec4b6ef1c6cd", "type": "github" }, "original": { @@ -389,16 +392,31 @@ "type": "github" } }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1685455340, - "narHash": "sha256-yv72jHfXgSLrq/gDPZQfDmKJLEibz2wbCeimr6b4NF4=", + "lastModified": 1693247164, + "narHash": "sha256-M6qZo8H8fBFnipCy6q6RlpSXF3sDvfTEtyFwdAP7juM=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "3d352b2b1a46164443aa114bd29d8d208d8a9bd0", + "rev": "6befd3b6b8544952e0261f054cf16769294bacba", "type": "github" }, "original": { diff --git a/nix/default.nix b/nix/default.nix index 60e1981..ca449c8 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , rustPlatform +, installShellFiles , darwin , version ? "git" }: @@ -22,6 +23,15 @@ rustPlatform.buildRustPackage rec { darwin.apple_sdk.frameworks.Foundation ]; + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installShellCompletion --cmd joshuto \ + --bash <($out/bin/joshuto completions bash) \ + --zsh <($out/bin/joshuto completions zsh) \ + --fish <($out/bin/joshuto completions fish) + ''; + patchPhase = '' sed -i 's/env!("CARGO_PKG_VERSION")/\"${version}\"/g' src/main.rs ''; -- cgit v1.2.3