Skip to content

Commit bcc05b2

Browse files
Add macOS compatibility for DAppNode profile and improve alias handling (#692)
1 parent 655d9a4 commit bcc05b2

File tree

1 file changed

+32
-13
lines changed

1 file changed

+32
-13
lines changed

.dappnode_profile

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,50 @@ export HTTPS_VERSION="${HTTPS:-0.2.2}"
1818
export DAPPNODE_DIR="/usr/src/dappnode"
1919
export DAPPNODE_CORE_DIR="${DAPPNODE_DIR}/DNCORE"
2020

21+
# macOS host-mode helpers (this file is often sourced in a shell)
22+
if [ "$(uname -s 2>/dev/null)" = "Darwin" ]; then
23+
export DISABLE_HOST_SCRIPTS="${DISABLE_HOST_SCRIPTS:-true}"
24+
25+
for user_home in /Users/*; do
26+
[ -d "$user_home" ] || continue
27+
[ -d "$user_home/dappnode/DNCORE" ] || continue
28+
export DAPPNODE_DIR="$user_home/dappnode"
29+
export DAPPNODE_CORE_DIR="$user_home/dappnode/DNCORE"
30+
break
31+
done
32+
fi
33+
2134
#!ISOBUILD Do not modify, variables above imported for ISO build
22-
DNCORE_YMLS=$(find $DAPPNODE_CORE_DIR -name "docker-compose-*.yml" -printf "-f %p ")
23-
# shellcheck disable=SC2207
24-
# shellcheck disable=SC2034
25-
DNCORE_YMLS_ARRAY=($(find /usr/src/dappnode/DNCORE -name "docker-compose-*.yml" | sort))
35+
36+
DNCORE_YMLS=""
37+
if [ -d "$DAPPNODE_CORE_DIR" ]; then
38+
DNCORE_YMLS=$(find "$DAPPNODE_CORE_DIR" -name "docker-compose-*.yml" -print | sort | sed 's|^|-f |' | tr '\n' ' ')
39+
fi
2640

2741
# Returns docker core containers status
28-
alias dappnode_status='docker compose $DNCORE_YMLS ps'
29-
# Stop docker core containers
30-
alias dappnode_stop='docker compose $DNCORE_YMLS stop && docker stop $(docker container ls -a -q -f name=DAppNode*)'
31-
# Start docker core containers
32-
alias dappnode_start='docker compose $DNCORE_YMLS up -d && docker start $(docker container ls -a -q -f name=DAppNode*)'
33-
# Remove docker core containers. This does not remove named volumes
34-
alias dappnode_down='docker compose $DNCORE_YMLS down'
42+
# NOTE: zsh does not word-split `$DNCORE_YMLS` by default, so use `${=DNCORE_YMLS}` there.
43+
if [ -n "${ZSH_VERSION:-}" ]; then
44+
alias dappnode_status='docker compose ${=DNCORE_YMLS} ps'
45+
alias dappnode_stop='docker compose ${=DNCORE_YMLS} stop && docker stop $(docker container ls -a -q -f name=DAppNode*)'
46+
alias dappnode_start='docker compose ${=DNCORE_YMLS} up -d && docker start $(docker container ls -a -q -f name=DAppNode*)'
47+
alias dappnode_down='docker compose ${=DNCORE_YMLS} down'
48+
else
49+
alias dappnode_status='docker compose $DNCORE_YMLS ps'
50+
alias dappnode_stop='docker compose $DNCORE_YMLS stop && docker stop $(docker container ls -a -q -f name=DAppNode*)'
51+
alias dappnode_start='docker compose $DNCORE_YMLS up -d && docker start $(docker container ls -a -q -f name=DAppNode*)'
52+
alias dappnode_down='docker compose $DNCORE_YMLS down'
53+
fi
3554
# Return open-vpn credentials from a specific user. e.g: dappnode_get dappnode_admin
3655
alias dappnode_openvpn_get='docker exec -i DAppNodeCore-vpn.dnp.dappnode.eth vpncli get'
3756
# Return open-vpn admin credentials
3857
alias dappnode_openvpn='docker exec -i DAppNodeCore-vpn.dnp.dappnode.eth getAdminCredentials'
3958
# Return wifi credentials (ssid and password)
40-
alias dappnode_wifi='cat /usr/src/dappnode/DNCORE/docker-compose-wifi.yml | grep "SSID\|WPA_PASSPHRASE"'
59+
alias dappnode_wifi='cat "$DAPPNODE_CORE_DIR/docker-compose-wifi.yml" | grep "SSID\|WPA_PASSPHRASE"'
4160
# Return remote credentials in plain text. OPTIONS:
4261
# --qr (QR format). --local (local creds for NAT loopback issues)
4362
alias dappnode_wireguard='docker exec -i DAppNodeCore-api.wireguard.dnp.dappnode.eth getWireguardCredentials'
4463
# Execute access_credentials.sh script to check for connectivity methods
45-
alias dappnode_connect='/usr/bin/bash /usr/src/dappnode/scripts/dappnode_access_credentials.sh'
64+
alias dappnode_connect='/usr/bin/bash "$DAPPNODE_DIR/scripts/dappnode_access_credentials.sh"'
4665
# Return all available commands
4766
alias dappnode_help='echo -e "\n\tDAppNode commands available:\n\n\tdappnode_help\t\tprints out this message\n\n\tdappnode_wifi\t\tget wifi credentials (SSID and password)\n\n\tdappnode_openvpn\tget Open VPN credentials\n\n\tdappnode_wireguard\tget Wireguard VPN credentials (dappnode_wireguard --help for more info)\n\n\tdappnode_connect\tcheck connectivity methods available in DAppNode\n\n\tdappnode_status\t\tget status of dappnode containers\n\n\tdappnode_start\t\tstart dappnode containers\n\n\tdappnode_stop\t\tstop dappnode containers\n"'
4867
# Compose alias for backward compatibility

0 commit comments

Comments
 (0)