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
|
||||
---
|
||||
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
|
||||
|
@ -4,5 +4,5 @@ in
|
||||
import "${nix-bitcoin}/helper/makeShell.nix" {
|
||||
configDir = ./.;
|
||||
# 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}"
|
||||
|
||||
# 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() {
|
||||
echo "nix-bitcoin path: ${toString ../.}"
|
||||
echo
|
||||
@ -47,10 +52,21 @@ stdenv.mkDerivation rec {
|
||||
${toString ./fetch-release}
|
||||
}
|
||||
|
||||
update-nix-bitcoin() {
|
||||
fetch-release > "${cfgDir}/nix-bitcoin-release.nix"
|
||||
exec nix-shell
|
||||
}
|
||||
update-nix-bitcoin() {(
|
||||
set -euo pipefail
|
||||
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() {(
|
||||
set -euo pipefail
|
||||
@ -94,10 +110,7 @@ stdenv.mkDerivation rec {
|
||||
done
|
||||
}
|
||||
|
||||
# Print welcome message if
|
||||
# 1. stdout is a TTY, i.e. we're not piping the output
|
||||
# 2. the shell is interactive
|
||||
if [[ -t 1 && $- == *i* ]]; then
|
||||
if [[ $isInteractive ]]; then
|
||||
${figlet}/bin/figlet "nix-bitcoin"
|
||||
echo 'Enter "h" or "help" for documentation.'
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user