From 27bc021e14d29eed97560abd17997df70a960721 Mon Sep 17 00:00:00 2001 From: Evelyn Alicke Date: Wed, 19 Feb 2025 18:11:54 +0100 Subject: [PATCH] init --- .envrc | 1 + .forgejo | 1 + .github/workflows/build_nix.yml | 13 +++++ .gitignore | 2 + Cargo.toml | 6 +++ README.md | 61 +++++++++++++++++++++ default.nix | 7 +++ flake.lock | 94 +++++++++++++++++++++++++++++++++ flake.nix | 22 ++++++++ shell.nix | 7 +++ src/main.rs | 3 ++ 11 files changed, 217 insertions(+) create mode 100644 .envrc create mode 120000 .forgejo create mode 100644 .github/workflows/build_nix.yml create mode 100644 .gitignore create mode 100644 Cargo.toml create mode 100644 README.md create mode 100644 default.nix create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 shell.nix create mode 100644 src/main.rs diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.forgejo b/.forgejo new file mode 120000 index 0000000..821c19d --- /dev/null +++ b/.forgejo @@ -0,0 +1 @@ +.github \ No newline at end of file diff --git a/.github/workflows/build_nix.yml b/.github/workflows/build_nix.yml new file mode 100644 index 0000000..87d2eba --- /dev/null +++ b/.github/workflows/build_nix.yml @@ -0,0 +1,13 @@ +name: "Build legacy Nix package on Ubuntu" + +on: + push: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: cachix/install-nix-action@v26 + - name: Building package + run: nix build diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2d5df85 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/target +.direnv diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..47e4b46 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "snow" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/README.md b/README.md new file mode 100644 index 0000000..a87353c --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +Notes: + + + +# Build Tooling requirements: + +* Eval / Check / Lint + * `deadnix` + * `nixfmt` + * `nix-tree` + * `nix-visualize` + +* Diff + * `nvd` + * `nix-diff` + * secrets (list commits affecting secret) + +* Secret Management: + * Generate & Store from expression to pass-like-store + * lazy eval secret decryption and recryption + * Deploy to ```systemd-secrets``` + +* NextBoot to drv (&reboot) + +# Architecture Considerations +## `action`: + +### Arguments +`buildOn = any of [local, target, delegate=$?]` +`filter = any of [$hostname, $fqdn, $label]` +`goal = any of nix-eval $system.config.system.*` TODO: figure out better fitering + + + +## goals: + + +## action +```toml +[action."diff"] +command = "" +``` + + +## connection: +information to establish execution on an actor +```toml +[[connection]] +type = "ssh" +source = "global" +destination = "target" +``` + +## actor: +```toml +[actor] +capabilities = { + build = [ "self", "native" ] + secrets.unattended = true +} +``` diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..39bacff --- /dev/null +++ b/default.nix @@ -0,0 +1,7 @@ +(import ( + fetchTarball { + url = "https://github.com/edolstra/flake-compat/archive/99f1c2157fba4bfe6211a321fd0ee43199025dbf.tar.gz"; + sha256 = "0x2jn3vrawwv9xp15674wjz9pixwjyj3j771izayl962zziivbx2"; } +) { + src = ./.; +}).defaultNix diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..1993666 --- /dev/null +++ b/flake.lock @@ -0,0 +1,94 @@ +{ + "nodes": { + "naersk": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1739824009, + "narHash": "sha256-fcNrCMUWVLMG3gKC5M9CBqVOAnJtyRvGPxptQFl5mVg=", + "owner": "nix-community", + "repo": "naersk", + "rev": "e5130d37369bfa600144c2424270c96f0ef0e11d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "master", + "repo": "naersk", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1739184465, + "narHash": "sha256-7Z9kNbr6qZwPG1z/6Hn/re4SS9nu1krxyknyNeCBh/o=", + "path": "/nix/store/szsvc6ja438ly9440hjnlnxfgazd7751-source", + "rev": "58edd1e2acbc9be9fe29964344c6419db013141e", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1739863612, + "narHash": "sha256-UbtgxplOhFcyjBcNbTVO8+HUHAl/WXFDOb6LvqShiZo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "632f04521e847173c54fa72973ec6c39a371211c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "naersk": "naersk", + "nixpkgs": "nixpkgs_2", + "utils": "utils" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "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" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..680de52 --- /dev/null +++ b/flake.nix @@ -0,0 +1,22 @@ +{ + inputs = { + naersk.url = "github:nix-community/naersk/master"; + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + utils.url = "github:numtide/flake-utils"; + }; + + outputs = { self, nixpkgs, utils, naersk }: + utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { inherit system; }; + naersk-lib = pkgs.callPackage naersk { }; + in + { + defaultPackage = naersk-lib.buildPackage ./.; + devShell = with pkgs; mkShell { + buildInputs = [ cargo rustc rustfmt pre-commit rustPackages.clippy ]; + RUST_SRC_PATH = rustPlatform.rustLibSrc; + }; + } + ); +} diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..77db547 --- /dev/null +++ b/shell.nix @@ -0,0 +1,7 @@ +(import ( + fetchTarball { + url = "https://github.com/edolstra/flake-compat/archive/99f1c2157fba4bfe6211a321fd0ee43199025dbf.tar.gz"; + sha256 = "0x2jn3vrawwv9xp15674wjz9pixwjyj3j771izayl962zziivbx2"; } +) { + src = ./.; +}).shellNix diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +}