This commit is contained in:
atagen 2024-08-20 11:19:45 +10:00
parent c8ee397794
commit 7f3dc64568
10 changed files with 302 additions and 47 deletions

127
flake.lock generated
View file

@ -216,11 +216,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1723657484,
"narHash": "sha256-oSxczvhDKCc/ilTPiMz46RmTLhyBoVxhGWhp7Ee54eA=",
"lastModified": 1724110726,
"narHash": "sha256-d4vqblq6e5LOowA6OBro3w0sLsT7HOUYBwV6Wa6zLS8=",
"owner": "helix-editor",
"repo": "helix",
"rev": "ff33b07756548935577aefc15cf48a1beb27b162",
"rev": "9e7c488ee33eaabab6ee7c3436f4c58b8c647b4f",
"type": "github"
},
"original": {
@ -236,11 +236,11 @@
]
},
"locked": {
"lastModified": 1723621879,
"narHash": "sha256-7/VysfDaFfmFJ7zgt2H8J04PkSO2bMjoN7e0wwUu6Ek=",
"lastModified": 1723954948,
"narHash": "sha256-TViNzTQdc1BfUftqKTPePwDL0NqliTcX5GyDHM5IHQQ=",
"owner": "n-hass",
"repo": "home-manager",
"rev": "639ab4410badd2a7a4c28b678452e1dc2d30450a",
"rev": "774b50e0b28c9654cfbcb78584ec4819629f6541",
"type": "github"
},
"original": {
@ -269,11 +269,11 @@
"lix": {
"flake": false,
"locked": {
"lastModified": 1723577950,
"narHash": "sha256-kOpGI9WPmte1L4QWHviuXsr8jxmGn27zwi82jtzYObM=",
"rev": "b016eb0895bb6714a4f6530d9a2bb6577ac6c3cf",
"lastModified": 1724058824,
"narHash": "sha256-WkRs8plqBYxIgrcz1jenmxbcLVVpo9Z9Waot9qIlqmI=",
"rev": "e727dbc3a3d59d7742a24a2b394b63a04ecb4d24",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/b016eb0895bb6714a4f6530d9a2bb6577ac6c3cf.tar.gz"
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/e727dbc3a3d59d7742a24a2b394b63a04ecb4d24.tar.gz"
},
"original": {
"type": "tarball",
@ -318,16 +318,32 @@
"type": "github"
}
},
"nix-index-database": {
"meat": {
"inputs": {
"nixpkgs": "nixpkgs_2"
"nixpkgs": "nixpkgs_2",
"src": "src"
},
"locked": {
"lastModified": 1723352546,
"narHash": "sha256-WTIrvp0yV8ODd6lxAq4F7EbrPQv0gscBnyfn559c3k8=",
"lastModified": 1,
"narHash": "sha256-7X+B0Gt3ns9QlI0sanZm+dst0UIpc3OH7HmbMf/ixE4=",
"path": "flakes/meat",
"type": "path"
},
"original": {
"path": "flakes/meat",
"type": "path"
}
},
"nix-index-database": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1723950649,
"narHash": "sha256-dHMkGjwwCGj0c2MKyCjRXVBXq2Sz3TWbbM23AS7/5Hc=",
"owner": "Mic92",
"repo": "nix-index-database",
"rev": "ec78079a904d7d55e81a0468d764d0fffb50ac06",
"rev": "392828aafbed62a6ea6ccab13728df2e67481805",
"type": "github"
},
"original": {
@ -362,15 +378,15 @@
"inputs": {
"flake-parts": "flake-parts",
"flake-root": "flake-root",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1723381807,
"narHash": "sha256-tBvNlNvI3xRjmfUuzwgwWFrk+SO50wlrmAGRuG3Yzi4=",
"lastModified": 1724075735,
"narHash": "sha256-w9MlAKAdcfSR9t3oasYj8L+XJ3r81f8MWSw9e0NCPpk=",
"owner": "nix-community",
"repo": "nixd",
"rev": "c9d8970a646dbaa82981d050d905637a29bbdd21",
"rev": "c37ef77223d819eb673b9be828a2450271e3f08a",
"type": "github"
},
"original": {
@ -382,16 +398,16 @@
"nixos-cosmic": {
"inputs": {
"flake-compat": "flake-compat_3",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_6",
"nixpkgs-stable": "nixpkgs-stable_2",
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1723599342,
"narHash": "sha256-4eUNZxze/tMkKzfAJSS+o3o4LcMH1znWfCUICO/Sw4A=",
"lastModified": 1724031331,
"narHash": "sha256-X1SK0Xrty5yo5DyihYtM7NFyOoO+dnkz9uhywjntiqY=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "5e861c29989be12691f90bda3a7b97891a629ed3",
"rev": "1c1b4a675c4c1b5ccf04f2112ad34a7622cfca7d",
"type": "github"
},
"original": {
@ -467,11 +483,11 @@
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1723556749,
"narHash": "sha256-+CHVZnTnIYRLYsARInHYoWkujzcRkLY/gXm3s5bE52o=",
"lastModified": 1723938990,
"narHash": "sha256-9tUadhnZQbWIiYVXH8ncfGXGvkNq3Hag4RCBEMUk7MI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4a92571f9207810b559c9eac203d1f4d79830073",
"rev": "c42fcfbdfeae23e68fc520f9182dde9f38ad1890",
"type": "github"
},
"original": {
@ -483,11 +499,24 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1723175592,
"narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=",
"lastModified": 1723362943,
"narHash": "sha256-dFZRVSgmJkyM0bkPpaYRtG/kRMRTorUIDj8BxoOt1T4=",
"path": "/nix/store/h60m1fwahjd2mv6gsg77ji3vb4gpj4dk-source",
"rev": "a58bc8ad779655e790115244571758e8de055e3d",
"type": "path"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1723637854,
"narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5e0ca22929f3342b19569b21b2f3462f053e497b",
"rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9",
"type": "github"
},
"original": {
@ -497,7 +526,7 @@
"type": "github"
}
},
"nixpkgs_3": {
"nixpkgs_4": {
"locked": {
"lastModified": 1681303793,
"narHash": "sha256-JEdQHsYuCfRL2PICHlOiH/2ue3DwoxUX7DJ6zZxZXFk=",
@ -513,7 +542,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_5": {
"locked": {
"lastModified": 1714562304,
"narHash": "sha256-Mr3U37Rh6tH0FbaDFu0aZDwk9mPAe7ASaqDOGgLqqLU=",
@ -529,13 +558,13 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_6": {
"locked": {
"lastModified": 1723362943,
"narHash": "sha256-dFZRVSgmJkyM0bkPpaYRtG/kRMRTorUIDj8BxoOt1T4=",
"lastModified": 1723637854,
"narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a58bc8ad779655e790115244571758e8de055e3d",
"rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9",
"type": "github"
},
"original": {
@ -547,11 +576,11 @@
},
"nur": {
"locked": {
"lastModified": 1723664702,
"narHash": "sha256-ErRJ3oUHFOzUXoDAzws/h5u7c6dCExETjmm5uIFL/QY=",
"lastModified": 1724103901,
"narHash": "sha256-yupLp7tv5yu3KvrWQ9mLpCKyVks8RyEvNQVCFToyxdw=",
"owner": "nix-community",
"repo": "NUR",
"rev": "7bcbb0362c92f230ba4a2c5ad227e04f84fc1ce0",
"rev": "7d49736b4409f42a795a9129f66e1fc02983221b",
"type": "github"
},
"original": {
@ -568,7 +597,7 @@
"flake-utils"
],
"gitignore": "gitignore",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_4",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
@ -593,6 +622,7 @@
"lix": "lix",
"lix-module": "lix-module",
"madness": "madness",
"meat": "meat",
"nix-index-database": "nix-index-database",
"nix-rice": "nix-rice",
"nixd": "nixd",
@ -641,11 +671,11 @@
]
},
"locked": {
"lastModified": 1723515680,
"narHash": "sha256-nHdKymsHCVIh0Wdm4MvSgxcTTg34FJIYHRQkQYaSuvk=",
"lastModified": 1723947704,
"narHash": "sha256-TcVf66N2NgGhxORFytzgqWcg0XJ+kk8uNLNsTRI5sYM=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "4ee3d9e9569f70d7bb40f28804d6fe950c81eab3",
"rev": "456e78a55feade2c3bc6d7bc0bf5e710c9d86120",
"type": "github"
},
"original": {
@ -654,6 +684,19 @@
"type": "github"
}
},
"src": {
"flake": false,
"locked": {
"lastModified": 1,
"narHash": "sha256-driDd0H33lcvEb5fnsUnLZ9Df+m7MNJvBvqQ7KB4+iA=",
"path": "src",
"type": "path"
},
"original": {
"path": "src",
"type": "path"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,

View file

@ -33,6 +33,8 @@
madness.url = "github:antithesishq/madness";
nh.url = "github:viperML/nh";
lix = {
url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz";
flake = false;
@ -43,6 +45,8 @@
inputs.nixpkgs.follows = "nixpkgs";
inputs.lix.follows = "lix";
};
meat.url = "path:flakes/meat";
};
outputs = {
@ -54,14 +58,16 @@
flatpaks,
nix-index-database,
madness,
lix,
lix-module,
nh,
meat,
...
} @ inputs: let
inherit (self) outputs;
inherit (nixpkgs) lib;
inherit (lib) mapAttrs;
sharedModules = [
meat.nixosModules.meat
lix-module.nixosModules.default
madness.nixosModules.madness
nur.nixosModules.nur

38
flakes/meat/flake.lock generated Normal file
View file

@ -0,0 +1,38 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1723362943,
"narHash": "sha256-dFZRVSgmJkyM0bkPpaYRtG/kRMRTorUIDj8BxoOt1T4=",
"path": "/nix/store/h60m1fwahjd2mv6gsg77ji3vb4gpj4dk-source",
"rev": "a58bc8ad779655e790115244571758e8de055e3d",
"type": "path"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"src": "src"
}
},
"src": {
"flake": false,
"locked": {
"lastModified": 1,
"narHash": "sha256-driDd0H33lcvEb5fnsUnLZ9Df+m7MNJvBvqQ7KB4+iA=",
"path": "src",
"type": "path"
},
"original": {
"path": "src",
"type": "path"
}
}
},
"root": "root",
"version": 7
}

74
flakes/meat/flake.nix Normal file
View file

@ -0,0 +1,74 @@
{
description = "the meat (package) manager";
inputs = {
# use registry nixpkgs
# nixpkgs.url = "nixpkgs/nixos-unstable";
src = {
url = "path:src";
flake = false;
};
};
outputs = {
self,
nixpkgs,
src,
}: let
# System types to support.
supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
# Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'.
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
# Nixpkgs instantiated for supported system types.
nixpkgsFor = forAllSystems (system:
import nixpkgs {
inherit system;
# overlays = [self.overlay];
});
in {
# Provide some binary packages for selected system types.
packages = forAllSystems (system: let
pkgs = nixpkgsFor.${system};
in {
meat = pkgs.callPackage ./meat.nix {
inherit src;
};
});
# The default package for 'nix build'. This makes sense if the
# flake provides only one package or there is a clear "main"
# package.
defaultPackage = forAllSystems (system: self.packages.${system}.meat);
# A NixOS module, if applicable (e.g. if the package provides a system service).
nixosModules.meat = {
pkgs,
config,
...
}: {
options.programs.meat = with pkgs.lib; {
flake = mkOption {
type = with types; nullOr (either path str);
default = null;
description = "path to your system flake";
};
};
config = {
environment.systemPackages = [self.defaultPackage.${pkgs.system}];
environment.sessionVariables = let
cfg = config.programs.meat;
in {
FLAKE =
if (cfg.flake == null)
then throw "Please set the programs.meat.flake option to your system flake."
else config.programs.meat.flake;
};
};
};
# Tests run by 'nix flake check' and by Hydra.
};
}

39
flakes/meat/meat.nix Normal file
View file

@ -0,0 +1,39 @@
{
lib,
src,
stdenvNoCC,
bash,
nix,
nh,
git,
sudo,
makeWrapper,
}: let
deps = [
bash
nix
nh
git
sudo
];
in
stdenvNoCC.mkDerivation {
inherit src;
name = "meat";
version = "0.0.1";
nativeBuildInputs = [
makeWrapper
];
buildInputs = deps;
installPhase = ''
mkdir -p $out/bin
cp meat $out/bin
'';
postFixup = ''
wrapProgram $out/bin/meat \
--set PATH ${lib.makeBinPath deps}
'';
meta = {
mainProgram = "meat";
};
}

54
flakes/meat/src/meat Executable file
View file

@ -0,0 +1,54 @@
#!/usr/bin/env bash
cmd=${1:help}
shift
call_nix() {
cd $(dirname $0)
nixpkgs_pin=$(nix eval --raw -f npins/default.nix nixpkgs)
nix_path="nixpkgs=${nixpkgs_pin}:nixos-config=${HOME}/.nix/entry.nix"
local cmd=$1
shift
env NIX_PATH="${nix_path}" nixos-rebuild "$cmd" --fast "$@"
}
cd $FLAKE
case $cmd in
look)
nix flake show
;;
fresh)
nix flake update "$@"
;;
yum)
nh os switch -- "$@"
# call_nix switch "$@"
;;
cook)
nh os build "$@"
# call_nix build "$@"
;;
poke)
nh os build -- --show-trace "$@"
# call_nix build --show-trace "$@"
;;
help|*)
printf "
--- MEAT ---------------------------------------------
FRESH \t\t| GET LATEST MEAT
YUM \t\t| CONSUME DELICIOUS MEAT
COOK \t\t| ONLY PREPARE MEAT
POKE \t\t| TRY COOK SUSPICIOUS MEAT
LOOK \t\t| INSPECT MEATS
------------------------------------------------------\n"
;;
esac
cd $PWD

View file

@ -5,13 +5,12 @@
./util/containers.nix
# ./programs/stable-diffusion.nix
# ./programs/openwebui.nix
./programs/sillytavern.nix
./programs/anything-llm.nix
];
home = rec {
home = {
username = "bolt";
homeDirectory = "/home/bolt";
sessionVariables.FLAKE = "${homeDirectory}/.nix";
};
home.packages = with pkgs; [

View file

@ -3,7 +3,6 @@
mpv
imv
strawberry
termusic
zathura
playerctl
];

View file

@ -17,6 +17,7 @@
outputs.overlays.rice
inputs.helix.overlays.default
inputs.nixd.overlays.default
inputs.nh.overlays.default
];
config = {
allowUnfree = true;

View file

@ -20,6 +20,8 @@
];
};
programs.meat.flake = "/home/bolt/.nix";
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usbcore" "sd_mod"];
boot.initrd.kernelModules = [];
boot.initrd.systemd.enable = true;