diff options
| author | Rutger Broekhoff | 2024-01-24 23:37:50 +0100 |
|---|---|---|
| committer | Rutger Broekhoff | 2024-01-24 23:37:50 +0100 |
| commit | 0451973538c92d260cf887392ebdf6b16b8ec772 (patch) | |
| tree | 24a657faade0872753a384fe419b36c6eca31249 | |
| parent | d3f53661d5366306a1cf9ef66fbf02a754cc5c3d (diff) | |
| download | gitolfs3-0451973538c92d260cf887392ebdf6b16b8ec772.tar.gz gitolfs3-0451973538c92d260cf887392ebdf6b16b8ec772.zip | |
Add flake checks
| -rw-r--r-- | flake.lock | 51 | ||||
| -rw-r--r-- | flake.nix | 55 | ||||
| -rw-r--r-- | shell/src/main.rs | 4 |
3 files changed, 84 insertions, 26 deletions
| @@ -1,5 +1,21 @@ | |||
| 1 | { | 1 | { |
| 2 | "nodes": { | 2 | "nodes": { |
| 3 | "advisory-db": { | ||
| 4 | "flake": false, | ||
| 5 | "locked": { | ||
| 6 | "lastModified": 1706115649, | ||
| 7 | "narHash": "sha256-Qrqb54qGaRsFdLDj8EJtI5leFGFfqWHLRgC+t6KWlpQ=", | ||
| 8 | "owner": "rustsec", | ||
| 9 | "repo": "advisory-db", | ||
| 10 | "rev": "1d2202ea2b32fabd3307641010301bfe187ef11a", | ||
| 11 | "type": "github" | ||
| 12 | }, | ||
| 13 | "original": { | ||
| 14 | "owner": "rustsec", | ||
| 15 | "repo": "advisory-db", | ||
| 16 | "type": "github" | ||
| 17 | } | ||
| 18 | }, | ||
| 3 | "crane": { | 19 | "crane": { |
| 4 | "inputs": { | 20 | "inputs": { |
| 5 | "nixpkgs": [ | 21 | "nixpkgs": [ |
| @@ -7,16 +23,16 @@ | |||
| 7 | ] | 23 | ] |
| 8 | }, | 24 | }, |
| 9 | "locked": { | 25 | "locked": { |
| 10 | "lastModified": 1701384536, | 26 | "lastModified": 1705625727, |
| 11 | "narHash": "sha256-PdYjpXmkn4FYJU7uvmCa54b0PPXBgDZHJaJpSEWR1Ek=", | 27 | "narHash": "sha256-naMq6+TNLpEiBBjc0XaCbMLYJxJXWTZz4JGSpYGgIOM=", |
| 12 | "rev": "07c531adf572dafd494db0672cdac00e48216171", | 28 | "rev": "8f515142e805dc377cf8edb0ff75d14a11307f89", |
| 13 | "revCount": 469, | 29 | "revCount": 485, |
| 14 | "type": "tarball", | 30 | "type": "tarball", |
| 15 | "url": "https://api.flakehub.com/f/pinned/ipetkov/crane/0.15.1/018c226e-9985-758b-9809-17419c4ebd2d/source.tar.gz" | 31 | "url": "https://api.flakehub.com/f/pinned/ipetkov/crane/0.16.0/018d1f38-c6e9-7615-a492-9b554687ba26/source.tar.gz" |
| 16 | }, | 32 | }, |
| 17 | "original": { | 33 | "original": { |
| 18 | "type": "tarball", | 34 | "type": "tarball", |
| 19 | "url": "https://flakehub.com/f/ipetkov/crane/0.15.1.tar.gz" | 35 | "url": "https://flakehub.com/f/ipetkov/crane/0.16.0.tar.gz" |
| 20 | } | 36 | } |
| 21 | }, | 37 | }, |
| 22 | "flake-utils": { | 38 | "flake-utils": { |
| @@ -24,26 +40,26 @@ | |||
| 24 | "systems": "systems" | 40 | "systems": "systems" |
| 25 | }, | 41 | }, |
| 26 | "locked": { | 42 | "locked": { |
| 27 | "lastModified": 1701680307, | 43 | "lastModified": 1705309234, |
| 28 | "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", | 44 | "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", |
| 29 | "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", | 45 | "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", |
| 30 | "revCount": 88, | 46 | "revCount": 90, |
| 31 | "type": "tarball", | 47 | "type": "tarball", |
| 32 | "url": "https://api.flakehub.com/f/pinned/numtide/flake-utils/0.1.88%2Brev-4022d587cbbfd70fe950c1e2083a02621806a725/018c340d-3287-7c66-818b-f2f646a808e3/source.tar.gz" | 48 | "url": "https://api.flakehub.com/f/pinned/numtide/flake-utils/0.1.90%2Brev-1ef2e671c3b0c19053962c07dbda38332dcebf26/018d0c5a-ac7d-77f2-bef1-1527903ad3cc/source.tar.gz" |
| 33 | }, | 49 | }, |
| 34 | "original": { | 50 | "original": { |
| 35 | "type": "tarball", | 51 | "type": "tarball", |
| 36 | "url": "https://flakehub.com/f/numtide/flake-utils/0.1.88.tar.gz" | 52 | "url": "https://flakehub.com/f/numtide/flake-utils/0.1.90.tar.gz" |
| 37 | } | 53 | } |
| 38 | }, | 54 | }, |
| 39 | "nixpkgs": { | 55 | "nixpkgs": { |
| 40 | "locked": { | 56 | "locked": { |
| 41 | "lastModified": 1703467016, | 57 | "lastModified": 1705916986, |
| 42 | "narHash": "sha256-/5A/dNPhbQx/Oa2d+Get174eNI3LERQ7u6WTWOlR1eQ=", | 58 | "narHash": "sha256-iBpfltu6QvN4xMpen6jGGEb6jOqmmVQKUrXdOJ32u8w=", |
| 43 | "rev": "d02d818f22c777aa4e854efc3242ec451e5d462a", | 59 | "rev": "d7f206b723e42edb09d9d753020a84b3061a79d8", |
| 44 | "revCount": 553579, | 60 | "revCount": 554771, |
| 45 | "type": "tarball", | 61 | "type": "tarball", |
| 46 | "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2311.553579%2Brev-d02d818f22c777aa4e854efc3242ec451e5d462a/018ca90b-a320-767a-a3c2-3cd4ab8c3551/source.tar.gz" | 62 | "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2311.554771%2Brev-d7f206b723e42edb09d9d753020a84b3061a79d8/018d35d3-1b83-7e69-a58c-3fca76cb78bb/source.tar.gz" |
| 47 | }, | 63 | }, |
| 48 | "original": { | 64 | "original": { |
| 49 | "type": "tarball", | 65 | "type": "tarball", |
| @@ -52,6 +68,7 @@ | |||
| 52 | }, | 68 | }, |
| 53 | "root": { | 69 | "root": { |
| 54 | "inputs": { | 70 | "inputs": { |
| 71 | "advisory-db": "advisory-db", | ||
| 55 | "crane": "crane", | 72 | "crane": "crane", |
| 56 | "flake-utils": "flake-utils", | 73 | "flake-utils": "flake-utils", |
| 57 | "nixpkgs": "nixpkgs" | 74 | "nixpkgs": "nixpkgs" |
| @@ -1,12 +1,16 @@ | |||
| 1 | { | 1 | { |
| 2 | inputs = { | 2 | inputs = { |
| 3 | nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.2311.*.tar.gz"; | 3 | nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.2311.*.tar.gz"; |
| 4 | flake-utils.url = "https://flakehub.com/f/numtide/flake-utils/0.1.88.tar.gz"; | 4 | flake-utils.url = "https://flakehub.com/f/numtide/flake-utils/0.1.90.tar.gz"; |
| 5 | crane.url = "https://flakehub.com/f/ipetkov/crane/0.15.1.tar.gz"; | 5 | crane.url = "https://flakehub.com/f/ipetkov/crane/0.16.0.tar.gz"; |
| 6 | crane.inputs.nixpkgs.follows = "nixpkgs"; | 6 | crane.inputs.nixpkgs.follows = "nixpkgs"; |
| 7 | advisory-db = { | ||
| 8 | url = "github:rustsec/advisory-db"; | ||
| 9 | flake = false; | ||
| 10 | }; | ||
| 7 | }; | 11 | }; |
| 8 | 12 | ||
| 9 | outputs = { self, crane, nixpkgs, flake-utils, ... }@inputs: | 13 | outputs = { self, nixpkgs, flake-utils, crane, advisory-db, ... }@inputs: |
| 10 | flake-utils.lib.eachDefaultSystem | 14 | flake-utils.lib.eachDefaultSystem |
| 11 | (system: | 15 | (system: |
| 12 | let | 16 | let |
| @@ -16,19 +20,56 @@ | |||
| 16 | }; | 20 | }; |
| 17 | 21 | ||
| 18 | craneLib = crane.lib.${system}; | 22 | craneLib = crane.lib.${system}; |
| 23 | src = craneLib.cleanCargoSource (craneLib.path ./.); | ||
| 19 | 24 | ||
| 20 | gitolfs3 = craneLib.buildPackage { | 25 | commonArgs = { |
| 26 | inherit src; | ||
| 27 | strictDeps = true; | ||
| 21 | pname = "gitolfs3"; | 28 | pname = "gitolfs3"; |
| 22 | version = "0.1.0"; | 29 | version = "0.1.0"; |
| 23 | src = craneLib.cleanCargoSource (craneLib.path ./.); | ||
| 24 | }; | 30 | }; |
| 31 | |||
| 32 | cargoArtifacts = craneLib.buildDepsOnly commonArgs; | ||
| 33 | |||
| 34 | gitolfs3 = craneLib.buildPackage (commonArgs // { | ||
| 35 | # We already have the gitolfs3-nextest check | ||
| 36 | doCheck = false; | ||
| 37 | }); | ||
| 25 | in | 38 | in |
| 26 | { | 39 | { |
| 40 | checks = { | ||
| 41 | inherit gitolfs3; | ||
| 42 | |||
| 43 | gitolfs3-clippy = craneLib.cargoClippy (commonArgs // { | ||
| 44 | inherit cargoArtifacts; | ||
| 45 | cargoClippyExtraArgs = "--all-targets -- --deny warnings"; | ||
| 46 | }); | ||
| 47 | |||
| 48 | gitolfs3-doc = craneLib.cargoDoc (commonArgs // { | ||
| 49 | inherit cargoArtifacts; | ||
| 50 | }); | ||
| 51 | |||
| 52 | # Check formatting | ||
| 53 | gitolfs3-fmt = craneLib.cargoFmt commonArgs; | ||
| 54 | |||
| 55 | # Audit dependencies | ||
| 56 | gitolfs3-audit = craneLib.cargoAudit (commonArgs // { | ||
| 57 | inherit advisory-db; | ||
| 58 | }); | ||
| 59 | |||
| 60 | # Run tests with cargo-nextest | ||
| 61 | gitolfs3-nextest = craneLib.cargoNextest (commonArgs // { | ||
| 62 | inherit cargoArtifacts; | ||
| 63 | partitions = 1; | ||
| 64 | partitionType = "count"; | ||
| 65 | }); | ||
| 66 | }; | ||
| 67 | |||
| 27 | packages.gitolfs3 = gitolfs3; | 68 | packages.gitolfs3 = gitolfs3; |
| 28 | packages.default = self.packages.${system}.gitolfs3; | 69 | packages.default = self.packages.${system}.gitolfs3; |
| 29 | 70 | ||
| 30 | devShells.default = pkgs.mkShell { | 71 | devShells.default = craneLib.devShell { |
| 31 | inputsFrom = [ gitolfs3 ]; | 72 | checks = self.checks.${system}; |
| 32 | }; | 73 | }; |
| 33 | 74 | ||
| 34 | formatter = pkgs.nixpkgs-fmt; | 75 | formatter = pkgs.nixpkgs-fmt; |
diff --git a/shell/src/main.rs b/shell/src/main.rs index ef0ef48..4901e7f 100644 --- a/shell/src/main.rs +++ b/shell/src/main.rs | |||
| @@ -56,7 +56,7 @@ fn parse_cmd(mut cmd: &str) -> Option<Vec<String>> { | |||
| 56 | let mut args = Vec::<String>::new(); | 56 | let mut args = Vec::<String>::new(); |
| 57 | 57 | ||
| 58 | cmd = cmd.trim_matches(is_posix_space); | 58 | cmd = cmd.trim_matches(is_posix_space); |
| 59 | while cmd != "" { | 59 | while !cmd.is_empty() { |
| 60 | if cmd.starts_with('\'') { | 60 | if cmd.starts_with('\'') { |
| 61 | let (arg, remaining) = parse_sq(cmd)?; | 61 | let (arg, remaining) = parse_sq(cmd)?; |
| 62 | args.push(arg); | 62 | args.push(arg); |
| @@ -91,7 +91,7 @@ fn main() -> ExitCode { | |||
| 91 | eprintln!("Missing argument for argument '-c'"); | 91 | eprintln!("Missing argument for argument '-c'"); |
| 92 | return bad_usage; | 92 | return bad_usage; |
| 93 | }; | 93 | }; |
| 94 | if args.next() != None { | 94 | if args.next().is_some() { |
| 95 | eprintln!("Too many arguments passed"); | 95 | eprintln!("Too many arguments passed"); |
| 96 | return bad_usage; | 96 | return bad_usage; |
| 97 | } | 97 | } |