makeShell: improve update-nix-bitcoin
- Don't overwrite `nix-bitcoin-release.nix` on errors - Show a message to indicate whether `nix-bitcoin-release.nix` was updated - Don't start a shell when called noninteractively Also, update `usage.md` and reformat `shell.nix`.
This commit is contained in:
parent
52aaa8388e
commit
77af2e4538
@ -1,9 +1,10 @@
|
|||||||
Updating
|
Updating
|
||||||
---
|
---
|
||||||
In your deployment directory, enter the nix shell with `nix-shell` and run
|
In your deployment directory, enter the nix shell with `nix-shell` and run the
|
||||||
|
following to update `nix-bitcoin-release.nix`:
|
||||||
|
|
||||||
```
|
```
|
||||||
fetch-release > nix-bitcoin-release.nix
|
update-nix-bitcoin
|
||||||
```
|
```
|
||||||
|
|
||||||
Nodeinfo
|
Nodeinfo
|
||||||
|
@ -4,5 +4,5 @@ in
|
|||||||
import "${nix-bitcoin}/helper/makeShell.nix" {
|
import "${nix-bitcoin}/helper/makeShell.nix" {
|
||||||
configDir = ./.;
|
configDir = ./.;
|
||||||
# Set this to modify your shell
|
# Set this to modify your shell
|
||||||
# extraShellInitCmds = (pkgs: ''<my bash code>'');
|
# extraShellInitCmds = pkgs: ''<my bash code>'';
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,11 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
export NIX_BITCOIN_EXAMPLES_DIR="${cfgDir}"
|
export NIX_BITCOIN_EXAMPLES_DIR="${cfgDir}"
|
||||||
|
|
||||||
|
# Set isInteractive=1 if
|
||||||
|
# 1. stdout is a TTY, i.e. we're not piping the output
|
||||||
|
# 2. the shell is interactive
|
||||||
|
if [[ -t 1 && $- == *i* ]]; then isInteractive=1; else isInteractive=; fi
|
||||||
|
|
||||||
help() {
|
help() {
|
||||||
echo "nix-bitcoin path: ${toString ../.}"
|
echo "nix-bitcoin path: ${toString ../.}"
|
||||||
echo
|
echo
|
||||||
@ -47,10 +52,21 @@ stdenv.mkDerivation rec {
|
|||||||
${toString ./fetch-release}
|
${toString ./fetch-release}
|
||||||
}
|
}
|
||||||
|
|
||||||
update-nix-bitcoin() {
|
update-nix-bitcoin() {(
|
||||||
fetch-release > "${cfgDir}/nix-bitcoin-release.nix"
|
set -euo pipefail
|
||||||
exec nix-shell
|
releaseFile="${cfgDir}/nix-bitcoin-release.nix"
|
||||||
}
|
current=$(cat "$releaseFile" 2>/dev/null || true)
|
||||||
|
new=$(fetch-release)
|
||||||
|
if [[ $new == $current ]]; then
|
||||||
|
echo "nix-bitcoin-release.nix already contains the latest release"
|
||||||
|
else
|
||||||
|
echo "$new" > "$releaseFile"
|
||||||
|
echo "Updated nix-bitcoin-release.nix"
|
||||||
|
if [[ $isInteractive ]]; then
|
||||||
|
exec nix-shell
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
)}
|
||||||
|
|
||||||
generate-secrets() {(
|
generate-secrets() {(
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@ -94,10 +110,7 @@ stdenv.mkDerivation rec {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Print welcome message if
|
if [[ $isInteractive ]]; then
|
||||||
# 1. stdout is a TTY, i.e. we're not piping the output
|
|
||||||
# 2. the shell is interactive
|
|
||||||
if [[ -t 1 && $- == *i* ]]; then
|
|
||||||
${figlet}/bin/figlet "nix-bitcoin"
|
${figlet}/bin/figlet "nix-bitcoin"
|
||||||
echo 'Enter "h" or "help" for documentation.'
|
echo 'Enter "h" or "help" for documentation.'
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user