File tree Expand file tree Collapse file tree 2 files changed +63
-2
lines changed
Expand file tree Collapse file tree 2 files changed +63
-2
lines changed Original file line number Diff line number Diff line change @@ -85,7 +85,7 @@ pkgs.stdenv.mkDerivation {
8585 config="${ cfgDir } /configuration.nix"
8686 fi
8787 genSecrets=$(nix-build --no-out-link -I nixos-config="$config" \
88- '<nixpkgs/nixos>' -A config.nix-bitcoin.generateSecretsScript )
88+ '<nixpkgs/nixos>' -A config.nix-bitcoin.generateSecretsScriptImpl )
8989 mkdir -p "${ cfgDir } /secrets"
9090 (cd "${ cfgDir } /secrets"; $genSecrets)
9191 )}
Original file line number Diff line number Diff line change 7171 } ;
7272
7373 generateSecretsScript = mkOption {
74+ readOnly = true ;
75+
76+ description = mdDoc cfg . secretsScriptLib . scriptHelp ;
77+
78+ default = pkgs . writers . writeBashBin "generate-secrets" ''
79+ ${ cfg . secretsScriptLib . gotoDestDir }
80+ ${ cfg . generateSecretsScriptImpl }
81+ '' ;
82+ defaultText = "(See source)" ;
83+ } ;
84+
85+ # Snippets for assembling generate secrets scripts
86+ secretsScriptLib = mkOption {
87+ internal = true ;
88+ readOnly = true ;
89+ default = {
90+ scriptHelp = ''
91+ Script to generate secrets.
92+
93+ Usage:
94+ generate-secrets
95+
96+ Writes secrets to ./secrets, if dir ./.git exists.
97+ Writes secrets to the working directory, otherwise.
98+
99+ generate-secrets <destdir>
100+
101+ Writes secrets to <destdir>
102+ '' ;
103+ gotoDestDir = ''
104+ set -euo pipefail
105+
106+ case '' ${1:-} in
107+ -h|--help)
108+ echo '${ cfg . secretsScriptLib . scriptHelp } '
109+ exit 0
110+ ;;
111+ esac
112+
113+ destDir='' ${1:-}
114+
115+ if [[ ! $destDir ]]; then
116+ if [[ -d .git ]]; then
117+ destDir=./secrets
118+ else
119+ destDir=.
120+ fi
121+ fi
122+
123+ echo "Writing secrets to $destDir" >&2
124+
125+ if [[ $destDir != . ]]; then
126+ ${ pkgs . coreutils } /bin/mkdir -p "$destDir"
127+ cd "$destDir"
128+ fi
129+ '' ;
130+ } ;
131+ } ;
132+
133+ # Writes secrets to PWD
134+ generateSecretsScriptImpl = mkOption {
74135 internal = true ;
75136 default = let
76137 rpcauthSrc = pkgs . fetchurl {
182243 cd "${ cfg . secretsDir } "
183244 chown root: .
184245 chmod 0700 .
185- ${ cfg . generateSecretsScript }
246+ ${ cfg . generateSecretsScriptImpl }
186247 '' }
187248
188249 setupSecret() {
You can’t perform that action at this time.
0 commit comments