diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 85 | 
1 files changed, 12 insertions, 73 deletions
| @@ -2,7 +2,7 @@  # usage:  #		make system=foo  #		make systems='foo bar' -#		make eval system=foo get=config.networking.extraHosts +#		make eval system=foo get=config.networking.extraHosts [filter=json]  #  .ONESHELL: @@ -17,91 +17,30 @@ $(systems):  		--tagstring {} \  		-q make systems= system={} ::: $(systems)  else ifdef system -include 0make/$(LOGNAME)/$(system).makefile  .PHONY: deploy  deploy:;@ -	system_name=$(system) -	deploy_host=$(deploy_host) -	nixpkgs_url=$(nixpkgs_url) -	nixpkgs_rev=$(nixpkgs_rev) -	secrets_dir=$(secrets_dir) - -	prepush(){( -		dst=$$1 -		src=$$2 -		rsync \ -			--exclude .git \ -			--exclude .graveyard \ -			--exclude old \ -			--rsync-path="mkdir -p \"$$dst\" && rsync" \ -			--usermap=\*:0 \ -			--groupmap=\*:0 \ -			--delete-excluded \ -			-vrLptgoD \ -			"$$src/" "$$deploy_host:$$dst" -	)} - -	prepush /root/src/stockholm "$$PWD" -	prepush /root/src/secrets "$$secrets_dir" - -	ssh -S none "$$deploy_host" -T env \ -			nixpkgs_url="$$nixpkgs_url" \ -			nixpkgs_rev="$$nixpkgs_rev" \ -			system_name="$$system_name" \ -			user_name="$$LOGNAME" \ -		sh -euf \ -	<<-\EOF -		prefetch(){( -			dst=$$1 -			url=$$2 -			rev=$$3 -			mkdir -p "$$dst" -			cd "$$dst" -			if ! test -e .git; then -				git init -			fi -			if ! cur_url=$$(git config remote.origin.url 2>/dev/null); then -				git remote add origin "$$url" -			elif test "$$cur_url" != "$$url"; then -				git remote set-url origin "$$url" -			fi -			if test "$$(git rev-parse --verify HEAD 2>/dev/null)" != "$$rev"; then -				git fetch origin -				git checkout "$$rev" -- . -				git checkout -q "$$rev" -				git submodule init -				git submodule update -			fi -			git clean -dxf -		)} - -		prefetch /root/src/nixpkgs "$$nixpkgs_url" "$$nixpkgs_rev" - -		echo build system... -		NIX_PATH=/root/src \ -		nix-build \ -			-Q \ -			-A system \ -			'<stockholm>' \ -			--argstr user-name "$$user_name" \ -			--argstr system-name "$$system_name" - -		result/bin/switch-to-configuration switch -	EOF +	make eval system=$(system) get=config.krebs.build.script filter=json | sh  .PHONY: eval  eval:  	@ +ifeq ($(filter),json) +	extraArgs=--json +	filter() { jq -r .; } +else +	filter() { cat; } +endif  	NIX_PATH=stockholm=$$PWD:$$NIX_PATH \  	nix-instantiate \ -		--json \ +		$${extraArgs-} \ +		$${json+--json} \ +		$${json+--strict} \  		--eval \ -		--strict \  		-A "$$get" \  		'<stockholm>' \  		--argstr user-name "$$LOGNAME" \  		--argstr system-name "$$system" \ -		| jq -r . +		| filter  else  $(error unbound variable: system[s])  endif | 
