diff options
| -rw-r--r-- | configuration.nix | 11 | ||||
| -rw-r--r-- | modules/default.nix | 5 | ||||
| -rw-r--r-- | modules/meow.nix | 22 | ||||
| -rw-r--r-- | pkgs/default.nix | 4 | ||||
| -rw-r--r-- | pkgs/meow/default.nix | 20 | ||||
| -rwxr-xr-x | pkgs/meow/meow.sh | 3 |
6 files changed, 65 insertions, 0 deletions
diff --git a/configuration.nix b/configuration.nix index 2b67297..1b8ab64 100644 --- a/configuration.nix +++ b/configuration.nix @@ -10,10 +10,21 @@ in system.stateVersion = "23.05"; imports = [ + ./modules (./hardware + "/${me.name}.nix") (./machines + "/${me.name}.nix") ]; + nixpkgs = { + config.allowUnfree = true; + overlays = [ (super: final: import ./pkgs final )]; + }; + + programs.test.meow = { + enable = true; + name = "mel"; + }; + boot.loader.systemd-boot.enable = true; users.mutableUsers = false; diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..02b72fd --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: + +{ + imports = [ ./meow.nix ]; +} \ No newline at end of file diff --git a/modules/meow.nix b/modules/meow.nix new file mode 100644 index 0000000..ff72a0c --- /dev/null +++ b/modules/meow.nix @@ -0,0 +1,22 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.programs.test.meow; +in { + options = { + programs.test.meow = { + enable = mkEnableOption "meow"; + + name = mkOption { + type = types.str; + default = "cat"; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ pkgs.meow ]; + environment.etc."meow".text = cfg.name; + }; +} \ No newline at end of file diff --git a/pkgs/default.nix b/pkgs/default.nix new file mode 100644 index 0000000..d1d4d64 --- /dev/null +++ b/pkgs/default.nix @@ -0,0 +1,4 @@ +pkgs: +{ + meow = pkgs.callPackage ./meow {}; +} \ No newline at end of file diff --git a/pkgs/meow/default.nix b/pkgs/meow/default.nix new file mode 100644 index 0000000..2e1d170 --- /dev/null +++ b/pkgs/meow/default.nix @@ -0,0 +1,20 @@ +{ pkgs, stdenv, ...}: + +stdenv.mkDerivation rec { + pname = "meow"; + version = "1.2.3"; + + src = ./.; + + buildInputs = [ pkgs.bash ]; + + installPhase = '' + mkdir -p $out/bin + cp meow.sh $out/bin/meow + chmod +x $out/bin/meow + ''; + + meta = { + description = "meow is a program that meows and says hi!"; + }; +} \ No newline at end of file diff --git a/pkgs/meow/meow.sh b/pkgs/meow/meow.sh new file mode 100755 index 0000000..ef62320 --- /dev/null +++ b/pkgs/meow/meow.sh @@ -0,0 +1,3 @@ +#!/bin/bash +default_name=$(cat /etc/meow 2>&- || echo "kitty") +echo hii ${1:-$default_name}! meow meow!! \ No newline at end of file |
