From 6de7fffcbb5a5afa56a8475f846b72a808c607b2 Mon Sep 17 00:00:00 2001 From: Victor Borja Date: Fri, 28 Nov 2025 02:54:25 -0600 Subject: [PATCH] Add flake.nix to allow running from tangled CI Change-Id: wrynyuwtvklvxokqqnyzyozoxppmptro --- README.md | 18 ++++++++++++++++++ flake.lock | 27 +++++++++++++++++++++++++++ flake.nix | 5 +++++ nix/default.nix | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 97 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 nix/default.nix diff --git a/README.md b/README.md index d883afb..f5d4f93 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,24 @@ cargo build --release The binary will be available at `target/release/tangled-cli`. +### Using with Nix + +This repo provides a runnable flake: + +```sh +nix run git+https://tangled.org/vitorpy.com/tangled-cli +``` + +#### On Tangled CI Pipelines + +Register a [Spindle dependency](https://tangled.org/tangled.org/core/blob/master/docs/spindle/pipeline.md#dependencies) on your workflow: + +```yaml +dependencies: + git+https://tangled.org/victorpy.com/tangled-cli: + - tangled-cli +``` + ### Install from AUR (Arch Linux) Community-maintained package: diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..84ba985 --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1764242076, + "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..7d50ae5 --- /dev/null +++ b/flake.nix @@ -0,0 +1,5 @@ +{ + description = "Tangled CLI"; + outputs = inputs: import ./nix inputs; + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; +} diff --git a/nix/default.nix b/nix/default.nix new file mode 100644 index 0000000..936a947 --- /dev/null +++ b/nix/default.nix @@ -0,0 +1,47 @@ +inputs: +let + inherit (inputs) self nixpkgs; + forAllSystems = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed; + + cliToml = builtins.fromTOML (builtins.readFile ../crates/tangled-cli/Cargo.toml); + + tangled-cli = + { + lib, + rustPlatform, + pkg-config, + openssl, + ... + }: + rustPlatform.buildRustPackage (finalAttrs: { + pname = cliToml.package.name; + version = cliToml.package.version; + src = ./..; + cargoDepsName = finalAttrs.pname; + cargoLock.lockFile = ../Cargo.lock; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ openssl ]; + + meta = { + description = cliToml.package.description; + license = lib.licenses.mit; + }; + }); + + packages = forAllSystems ( + system: + let + pkgs = import nixpkgs { inherit system; }; + default = pkgs.callPackage tangled-cli { }; + in + { + inherit default; + tangled-cli = default; + } + ); + +in +{ + inherit packages; +} -- 2.43.0