Files
firezone/scripts/tests/token-path-linux.sh
Jamil b8852b3e7a ci: attach Windows headless client to release (#8041)
This publishes the windows headless client using the same convention set
forth by the linux headless client.

Docs and website changes will come in a subsequent PR.

Related: #3782
Resolves: #8046
2025-02-08 13:51:56 +00:00

44 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
source "./scripts/tests/lib.sh"
BINARY_NAME=firezone-headless-client
TOKEN="n.SFMyNTY.g2gDaANtAAAAJGM4OWJjYzhjLTkzOTItNGRhZS1hNDBkLTg4OGFlZjZkMjhlMG0AAAAkN2RhN2QxY2QtMTExYy00NGE3LWI1YWMtNDAyN2I5ZDIzMGU1bQAAACtBaUl5XzZwQmstV0xlUkFQenprQ0ZYTnFJWktXQnMyRGR3XzJ2Z0lRdkZnbgYAGUmu74wBYgABUYA.UN3vSLLcAMkHeEh5VHumPOutkuue8JA6wlxM9JxJEPE"
TOKEN_PATH="token"
cd rust || exit 1
cargo build -p "$BINARY_NAME"
cd ..
sudo cp "rust/target/debug/$BINARY_NAME" "/usr/bin/$BINARY_NAME"
# Fails because there's no token yet
sudo "$BINARY_NAME" --check standalone && exit 1
# Pass if we use the env var
sudo FIREZONE_TOKEN="$TOKEN" "$BINARY_NAME" --check standalone
# Fails because passing tokens as CLI args is not allowed anymore
sudo "$BINARY_NAME" --check --token "$TOKEN" standalone && exit 1
touch "$TOKEN_PATH"
chmod 600 "$TOKEN_PATH"
sudo chown root:root "$TOKEN_PATH"
echo "$TOKEN" | sudo tee "$TOKEN_PATH" > /dev/null
# Fails because the token is not in the default path
sudo "$BINARY_NAME" --check standalone && exit 1
# Passes if we tell it where to look
sudo "$BINARY_NAME" --check --token-path "$TOKEN_PATH" standalone
# Move the token to the default path
sudo mkdir /etc/dev.firezone.client
sudo mv "$TOKEN_PATH" /etc/dev.firezone.client/token
# Now passes with the default path
sudo "$BINARY_NAME" --check standalone
# Redundant, but helps if the last command has an `&& exit 1`
exit 0