From 6ff05d1149a24e2baaaeadc411e7f16293cc3656 Mon Sep 17 00:00:00 2001 From: Mel Date: Tue, 26 Sep 2023 20:56:17 +0200 Subject: Create sample package and module --- configuration.nix | 11 +++++++++++ modules/default.nix | 5 +++++ modules/meow.nix | 22 ++++++++++++++++++++++ pkgs/default.nix | 4 ++++ pkgs/meow/default.nix | 20 ++++++++++++++++++++ pkgs/meow/meow.sh | 3 +++ 6 files changed, 65 insertions(+) create mode 100644 modules/default.nix create mode 100644 modules/meow.nix create mode 100644 pkgs/default.nix create mode 100644 pkgs/meow/default.nix create mode 100755 pkgs/meow/meow.sh 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 -- cgit 1.4.1