Quellcode durchsuchen

dev: automated commit - 2026-01-15 19:51:25

Mariano Z. vor 3 Wochen
Ursprung
Commit
fa43ce3d02
1 geänderte Dateien mit 128 neuen und 0 gelöschten Zeilen
  1. 128 0
      local-bin/.local/bin/ny

+ 128 - 0
local-bin/.local/bin/ny

@@ -0,0 +1,128 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# -----------------------------
+# Config (override via env)
+# -----------------------------
+NY_FLAKE_PATH="${NY_FLAKE_PATH:-$HOME/.config/nixos}"
+
+# -----------------------------
+# Helpers
+# -----------------------------
+die() {
+	echo "error: $*" >&2
+	exit 1
+}
+
+info() {
+	echo "→ $*"
+}
+
+run() {
+	info "$*"
+	"$@"
+}
+
+has() {
+	command -v "$1" >/dev/null 2>&1
+}
+
+# -----------------------------
+# Help
+# -----------------------------
+help() {
+	cat <<EOF
+ny — simple NixOS sync command
+
+Usage:
+  ny              Rebuild system
+  ny up           Update flake + rebuild
+  ny diff         Show pending system changes
+  ny search <q>   Search packages
+  ny shell <pkg>  Temporary shell
+  ny clean        Clean nix store
+  ny help         Show help
+
+Shortcuts:
+  ny s <q>        Search
+  ny sh <pkg>     Shell
+
+Env:
+  NY_FLAKE_PATH   Path to NixOS flake (default: ~/.config/nixos)
+
+EOF
+}
+
+# -----------------------------
+# Shortcuts
+# -----------------------------
+CMD="${1:-}"
+
+case "$CMD" in
+help)
+	help
+	exit 0
+	;;
+s) set -- search "${@:2}" ;;
+sh) set -- shell "${@:2}" ;;
+esac
+
+CMD="${1:-}"
+
+# -----------------------------
+# Commands
+# -----------------------------
+case "$CMD" in
+"")
+	cd "$NY_FLAKE_PATH" || die "flake path not found: $NY_FLAKE_PATH"
+	run sudo nixos-rebuild switch --flake .
+	;;
+
+up)
+	cd "$NY_FLAKE_PATH" || die "flake path not found: $NY_FLAKE_PATH"
+	run nix flake update
+	run sudo nixos-rebuild switch --flake .
+	;;
+
+diff)
+	cd "$NY_FLAKE_PATH" || die "flake path not found: $NY_FLAKE_PATH"
+
+	info "Computing system diff…"
+
+	if has nvd; then
+		run sudo nixos-rebuild build --flake .
+		run nvd diff /run/current-system ./result
+		rm -f result
+
+	elif has nix-diff; then
+		run sudo nixos-rebuild build --flake .
+		run nix-diff /run/current-system ./result
+		rm -f result
+
+	else
+		info "nvd/nix-diff not found, using dry-run"
+		run sudo nixos-rebuild dry-run --flake .
+	fi
+	;;
+
+search)
+	[[ -n "${2:-}" ]] || die "usage: ny search <query>"
+	run nix search nixpkgs "$2"
+	;;
+
+shell)
+	shift
+	[[ $# -gt 0 ]] || die "usage: ny shell <pkg...>"
+	run nix shell "${@/#/nixpkgs#}"
+	;;
+
+clean)
+	run nix store optimise
+	run nix-collect-garbage
+	run sudo nix-collect-garbage -d
+	;;
+
+*)
+	die "unknown command: $CMD (run 'ny help')"
+	;;
+esac