-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Add sentry-admin.sh tool (#2594)
- Loading branch information
1 parent
b413e01
commit f00e6a9
Showing
3 changed files
with
95 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#!/usr/bin/env bash | ||
set -ex | ||
|
||
source install/_lib.sh | ||
source install/dc-detect-version.sh | ||
|
||
echo "${_group}Test that sentry-admin works..." | ||
|
||
echo "Global help documentation..." | ||
|
||
global_help_doc=$(/bin/bash --help) | ||
if ! echo "$global_help_doc" | grep -q "^Usage: ./sentry-admin.sh"; then | ||
echo "Assertion failed: Incorrect binary name in global help docs" | ||
exit 1 | ||
fi | ||
if ! echo "$global_help_doc" | grep -q "SENTRY_DOCKER_IO_DIR"; then | ||
echo "Assertion failed: Missing SENTRY_DOCKER_IO_DIR global help doc" | ||
exit 1 | ||
fi | ||
|
||
echo "Command-specific help documentation..." | ||
|
||
command_help_doc=$(/bin/bash permissions --help) | ||
if ! echo "$command_help_doc" | grep -q "^Usage: ./sentry-admin.sh permissions"; then | ||
echo "Assertion failed: Incorrect binary name in command-specific help docs" | ||
exit 1 | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
#!/bin/bash | ||
|
||
# Detect docker and platform state. | ||
source install/dc-detect-version.sh | ||
source install/detect-platform.sh | ||
|
||
# Define the Docker volume mapping. | ||
VOLUME_MAPPING="${SENTRY_DOCKER_IO_DIR:-$HOME/.sentry/sentry-admin}:/sentry-admin" | ||
|
||
# Custom help text paragraphs | ||
HELP_TEXT_SUFFIX=" | ||
All file paths are relative to the 'web' docker container, not the host environment. To pass files | ||
to/from the host system for commands that require it ('execfile', 'export', 'import', etc), you may | ||
specify a 'SENTRY_DOCKER_IO_DIR' environment variable to mount a volume for file IO operations into | ||
the host filesystem. The default value of 'SENTRY_DOCKER_IO_DIR' points to '~/.sentry/sentry-admin' | ||
on the host filesystem. Commands that write files should write them to the '/sentry-admin' in the | ||
'web' container (ex: './sentry-admin.sh export global /sentry-admin/my-export.json'). | ||
" | ||
|
||
# Actual invocation that runs the command in the container. | ||
invocation() { | ||
$dc run -v "$VOLUME_MAPPING" --rm -T -e SENTRY_LOG_LEVEL=CRITICAL web "$@" | ||
} | ||
|
||
# Function to modify lines starting with `Usage: sentry` to say `Usage: ./sentry-admin.sh` instead. | ||
rename_sentry_bin_in_help_output() { | ||
local output="$1" | ||
local help_prefix="$2" | ||
local usage_seen=false | ||
|
||
output=$(invocation "$@") | ||
|
||
echo -e "\n\n" | ||
|
||
while IFS= read -r line; do | ||
if [[ $line == "Usage: sentry"* ]] && [ "$usage_seen" = false ]; then | ||
echo -e "\n\n" | ||
echo "${line/sentry/./sentry-admin.sh}" | ||
echo "$help_prefix" | ||
usage_seen=true | ||
else | ||
if [[ $line == "Options:"* ]] && [ -n "$1" ]; then | ||
echo "$help_prefix" | ||
fi | ||
echo "$line" | ||
fi | ||
done <<<"$output" | ||
} | ||
|
||
# Check for the user passing ONLY the '--help' argument - we'll add a special prefix to the output. | ||
if { [ "$1" = "help" ] || [ "$1" = "--help" ]; } && [ "$#" -eq 1 ]; then | ||
rename_sentry_bin_in_help_output "$(invocation "$@")" "$HELP_TEXT_SUFFIX" | ||
exit 0 | ||
fi | ||
|
||
# Check for '--help' in other contexts. | ||
for arg in "$@"; do | ||
if [ "$arg" = "--help" ]; then | ||
rename_sentry_bin_in_help_output "$(invocation "$@")" | ||
exit 0 | ||
fi | ||
done | ||
|
||
# Help has not been requested - go ahead and execute the command. | ||
echo -e "\n\n" | ||
invocation "$@" |