summaryrefslogtreecommitdiff
path: root/pkgs
diff options
context:
space:
mode:
authorMichael Hoang <enzime@users.noreply.github.com>2023-07-15 11:02:13 +1000
committerMichael Hoang <enzime@users.noreply.github.com>2024-07-13 14:14:11 +1000
commit902d6b65d3c18ff6528fbfe3349e4d3ed890fbae (patch)
treea4a1bee417fe2154b6d3fa0c50d0510f2d0af95c /pkgs
parentcf297a8d248db6a455b60133f6c0029c04ebe50e (diff)
Set default flake directory as `/etc/nix-darwin`
Backported from https://github.com/NixOS/nixpkgs/blob/9995a5d59c59fde96f4ad7d811a8ed832357440f/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh#L349-L353
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/nix-tools/darwin-rebuild.sh16
1 files changed, 14 insertions, 2 deletions
diff --git a/pkgs/nix-tools/darwin-rebuild.sh b/pkgs/nix-tools/darwin-rebuild.sh
index 2dec477..b88858d 100644
--- a/pkgs/nix-tools/darwin-rebuild.sh
+++ b/pkgs/nix-tools/darwin-rebuild.sh
@@ -11,8 +11,8 @@ showSyntax() {
echo " [-Q] [{--max-jobs | -j} number] [--cores number] [--dry-run]" >&2
echo " [--keep-going] [-k] [--keep-failed] [-K] [--fallback] [--show-trace]" >&2
echo " [-I path] [--option name value] [--arg name value] [--argstr name value]" >&2
- echo " [--flake flake] [--update-input input flake] [--impure] [--recreate-lock-file]" >&2
- echo " [--no-update-lock-file] [--refresh]" >&2
+ echo " [--flake flake] [--no-flake] [--update-input input flake] [--impure]" >&2
+ echo " [--recreate-lock-file] [--no-update-lock-file] [--refresh]" >&2
echo " [--offline] [--substituters substituters-list] ..." >&2
exit 1
}
@@ -34,6 +34,7 @@ extraProfileFlags=()
profile=@profile@
action=
flake=
+noFlake=
while [ $# -gt 0 ]; do
i=$1; shift 1
@@ -77,6 +78,9 @@ while [ $# -gt 0 ]; do
flake=$1
shift 1
;;
+ --no-flake)
+ noFlake=1
+ ;;
-L|-vL|--print-build-logs|--impure|--recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file|--refresh)
extraLockFlags+=("$i")
;;
@@ -137,6 +141,14 @@ if [ -z "$action" ]; then showSyntax; fi
flakeFlags=(--extra-experimental-features 'nix-command flakes')
+# Use /etc/nix-darwin/flake.nix if it exists. It can be a symlink to the
+# actual flake.
+if [[ -z $flake && -e /etc/nix-darwin/flake.nix && -z $noFlake ]]; then
+ flake="$(dirname "$(readlink -f /etc/nix-darwin/flake.nix)")"
+fi
+
+# For convenience, use the hostname as the default configuration to
+# build from the flake.
if [ -n "$flake" ]; then
# Offical regex from https://www.rfc-editor.org/rfc/rfc3986#appendix-B
if [[ "${flake}" =~ ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? ]]; then