From 0221b8e3b4fc68549e602efbb64cf0cc70b42895 Mon Sep 17 00:00:00 2001
From: NullBite <me@nullbite.com>
Date: Wed, 5 Feb 2025 17:11:09 -0500
Subject: [PATCH] system: install busybox with low priority

it is a good fallback for common system commands
---
 system/common/busybox.nix | 18 ++++++++++++++++++
 system/common/default.nix |  1 +
 system/profile/base.nix   |  2 ++
 3 files changed, 21 insertions(+)
 create mode 100644 system/common/busybox.nix

diff --git a/system/common/busybox.nix b/system/common/busybox.nix
new file mode 100644
index 0000000..4b2d572
--- /dev/null
+++ b/system/common/busybox.nix
@@ -0,0 +1,18 @@
+{ config, pkgs, lib, ... }:
+let
+  cfg = config.nixfiles.common.busybox;
+in {
+  options.nixfiles.common.busybox.enable = lib.mkEnableOption "" // {
+    description = ''
+      Whether to install Busybox into the system environment as a very low
+      priority fallback for common commands. This should *never* override a
+      user-installed package.
+    '';
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = with pkgs; lib.mkOrder 50 [
+      busybox
+    ];
+  };
+}
diff --git a/system/common/default.nix b/system/common/default.nix
index 02b7218..6af0e67 100644
--- a/system/common/default.nix
+++ b/system/common/default.nix
@@ -6,5 +6,6 @@
     ./wm.nix
     ./nix.nix
     ./bootnext.nix
+    ./busybox.nix
   ];
 }
diff --git a/system/profile/base.nix b/system/profile/base.nix
index 2ff3882..e582566 100644
--- a/system/profile/base.nix
+++ b/system/profile/base.nix
@@ -16,6 +16,8 @@ in
         me.enable = lib.mkDefault true;
         # Enable system Nix configuration
         nix.enable = lib.mkDefault true;
+        # busybox low-priority install
+        busybox.enable = lib.mkDefault true;
       };
 
       # locale settings