Loading src/pygarden/cli/__init__.py +3 −1 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ import os import subprocess from pygarden.cli.static import BANNER try: import click except ImportError: Loading @@ -17,7 +19,7 @@ except ImportError: @click.group() def common_cli(): """pyGARDEN (General Application Resource Development Environment Network) CLI.""" pass click.echo(BANNER) # noqa: PEP402 Loading src/pygarden/cli/static.py 0 → 100644 +21 −0 Original line number Diff line number Diff line BANNER = """ ____ _ ____ ____ _____ _ _ _ __ _ _ / ___| / \ | _ \| _ \| ____| \ | | | '_ \| | | | | _ / _ \ | |_) | | | | _| | \| | | |_) | |_| | |_| |/ ___ \| _ <| |_| | |___| |\ | | .__/ \__, |\____/_/ \_\_| \_\____/|_____|_| \_| |_| |___/ ,@@@@@@@, ,,,. ,@@@@@@/@@, .oo8888o. ,&%%&%&&%,@@@@@/@@@@@@,8888\88/8o ,%&\%&&%&&%,@@@\@@@/@@@88\88888/88' %&&%&%&/%&&%@@\@@/ /@@@88888\88888' %&&%/ %&%%&&@@\ V /@@' \`88\8 \`/88' \`&%\ \` /%&' |.| \ '|8' * |o| | | | | | |.| | | | | \|/ \\/ ._\//_/__/ ,\_//__\\/. \_//__/_ """ if __name__ == "__main__": print(BANNER) No newline at end of file src/pypirc.cfg +1 −1 Original line number Diff line number Diff line Loading @@ -5,4 +5,4 @@ index-servers = [gitlab] repository = https://code.ornl.gov/api/v4/projects/10568/packages/pypi username = __token__ password = 3t2LFTptHcudHsKRsgr8 password = Y73hHWeDNPfubGrr2EcF src/pyproject.toml +7 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ authors = [ {name = "Jacob Isber", email = "isberj@ornl.gov"}, ] # update version information here version = "0.3.7" version = "0.3.8" description = "Package to perform everyday tasks - logging, accessing database, etc." readme = "README.md" requires-python = ">=3.9,<4.0" Loading Loading @@ -95,5 +95,11 @@ Source = "https://code.ornl.gov/nset-utilities/common-package" [tool.setuptools] packages = ['pygarden', 'pygarden.mixins', 'pygarden.scrapers', 'pygarden.cli'] [dependency-groups] dev = [ "pip>=24.3.1", "twine>=5.1.1", ] [project.scripts] garden = "pygarden.cli:common_cli" src/scripts/dumpdb 0 → 100755 +77 −0 Original line number Diff line number Diff line #!/bin/sh # Default values for optional parameters DB_USER="sradmin" DB_HOST="/home/postgres/pgdata/data" DB_NAME="securegrid" OUTPUT_DIR="./" DOCKER_CMD="docker-compose" TABLES="" # Function to check if 'docker compose' or 'docker-compose' should be used determine_docker_command() { if command -v docker-compose >/dev/null 2>&1; then DOCKER_CMD="docker-compose" elif docker compose version >/dev/null 2>&1; then DOCKER_CMD="docker compose" else echo "Error: Neither 'docker-compose' nor 'docker compose' is available." >&2 exit 1 fi } # Parse command-line arguments while [ "$#" -gt 0 ]; do case "$1" in --table) TABLES="$2" shift 2 ;; --user) DB_USER="$2" shift 2 ;; --host) DB_HOST="$2" shift 2 ;; --database) DB_NAME="$2" shift 2 ;; --output-dir) OUTPUT_DIR="$2" shift 2 ;; --help|-h) echo "Usage: $0 [options]" echo "Options:" echo " --user USER Database user (default: $DB_USER)" echo " --host HOST Database host (default: $DB_HOST)" echo " --database DB_NAME Database name (default: $DB_NAME)" echo " --output-dir DIR Output directory for the backup (default: $OUTPUT_DIR)" echo " --help, -h Show this help message" exit 0 ;; *) echo "Unknown argument: $1" >&2 exit 1 ;; esac done # Determine which Docker command to use determine_docker_command BACKUP_FILE="/tmp/${DB_NAME}-${TABLES}-$(date +%F).backup" # Perform the database dump if [ -n "$TABLES" ]; then $DOCKER_CMD exec db pg_dump -U "$DB_USER" -h "$DB_HOST" -d "$DB_NAME" --format=custom -t "$TABLES" -f "$BACKUP_FILE" else $DOCKER_CMD exec db pg_dump -U "$DB_USER" -h "$DB_HOST" -d "$DB_NAME" --format=custom -f "$BACKUP_FILE" fi # Copy the backup to the local machine $DOCKER_CMD cp db:"$BACKUP_FILE" "$OUTPUT_DIR" echo "Backup completed. File saved to: $OUTPUT_DIR/${DB_NAME}-$(date +%F).backup" Loading
src/pygarden/cli/__init__.py +3 −1 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ import os import subprocess from pygarden.cli.static import BANNER try: import click except ImportError: Loading @@ -17,7 +19,7 @@ except ImportError: @click.group() def common_cli(): """pyGARDEN (General Application Resource Development Environment Network) CLI.""" pass click.echo(BANNER) # noqa: PEP402 Loading
src/pygarden/cli/static.py 0 → 100644 +21 −0 Original line number Diff line number Diff line BANNER = """ ____ _ ____ ____ _____ _ _ _ __ _ _ / ___| / \ | _ \| _ \| ____| \ | | | '_ \| | | | | _ / _ \ | |_) | | | | _| | \| | | |_) | |_| | |_| |/ ___ \| _ <| |_| | |___| |\ | | .__/ \__, |\____/_/ \_\_| \_\____/|_____|_| \_| |_| |___/ ,@@@@@@@, ,,,. ,@@@@@@/@@, .oo8888o. ,&%%&%&&%,@@@@@/@@@@@@,8888\88/8o ,%&\%&&%&&%,@@@\@@@/@@@88\88888/88' %&&%&%&/%&&%@@\@@/ /@@@88888\88888' %&&%/ %&%%&&@@\ V /@@' \`88\8 \`/88' \`&%\ \` /%&' |.| \ '|8' * |o| | | | | | |.| | | | | \|/ \\/ ._\//_/__/ ,\_//__\\/. \_//__/_ """ if __name__ == "__main__": print(BANNER) No newline at end of file
src/pypirc.cfg +1 −1 Original line number Diff line number Diff line Loading @@ -5,4 +5,4 @@ index-servers = [gitlab] repository = https://code.ornl.gov/api/v4/projects/10568/packages/pypi username = __token__ password = 3t2LFTptHcudHsKRsgr8 password = Y73hHWeDNPfubGrr2EcF
src/pyproject.toml +7 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ authors = [ {name = "Jacob Isber", email = "isberj@ornl.gov"}, ] # update version information here version = "0.3.7" version = "0.3.8" description = "Package to perform everyday tasks - logging, accessing database, etc." readme = "README.md" requires-python = ">=3.9,<4.0" Loading Loading @@ -95,5 +95,11 @@ Source = "https://code.ornl.gov/nset-utilities/common-package" [tool.setuptools] packages = ['pygarden', 'pygarden.mixins', 'pygarden.scrapers', 'pygarden.cli'] [dependency-groups] dev = [ "pip>=24.3.1", "twine>=5.1.1", ] [project.scripts] garden = "pygarden.cli:common_cli"
src/scripts/dumpdb 0 → 100755 +77 −0 Original line number Diff line number Diff line #!/bin/sh # Default values for optional parameters DB_USER="sradmin" DB_HOST="/home/postgres/pgdata/data" DB_NAME="securegrid" OUTPUT_DIR="./" DOCKER_CMD="docker-compose" TABLES="" # Function to check if 'docker compose' or 'docker-compose' should be used determine_docker_command() { if command -v docker-compose >/dev/null 2>&1; then DOCKER_CMD="docker-compose" elif docker compose version >/dev/null 2>&1; then DOCKER_CMD="docker compose" else echo "Error: Neither 'docker-compose' nor 'docker compose' is available." >&2 exit 1 fi } # Parse command-line arguments while [ "$#" -gt 0 ]; do case "$1" in --table) TABLES="$2" shift 2 ;; --user) DB_USER="$2" shift 2 ;; --host) DB_HOST="$2" shift 2 ;; --database) DB_NAME="$2" shift 2 ;; --output-dir) OUTPUT_DIR="$2" shift 2 ;; --help|-h) echo "Usage: $0 [options]" echo "Options:" echo " --user USER Database user (default: $DB_USER)" echo " --host HOST Database host (default: $DB_HOST)" echo " --database DB_NAME Database name (default: $DB_NAME)" echo " --output-dir DIR Output directory for the backup (default: $OUTPUT_DIR)" echo " --help, -h Show this help message" exit 0 ;; *) echo "Unknown argument: $1" >&2 exit 1 ;; esac done # Determine which Docker command to use determine_docker_command BACKUP_FILE="/tmp/${DB_NAME}-${TABLES}-$(date +%F).backup" # Perform the database dump if [ -n "$TABLES" ]; then $DOCKER_CMD exec db pg_dump -U "$DB_USER" -h "$DB_HOST" -d "$DB_NAME" --format=custom -t "$TABLES" -f "$BACKUP_FILE" else $DOCKER_CMD exec db pg_dump -U "$DB_USER" -h "$DB_HOST" -d "$DB_NAME" --format=custom -f "$BACKUP_FILE" fi # Copy the backup to the local machine $DOCKER_CMD cp db:"$BACKUP_FILE" "$OUTPUT_DIR" echo "Backup completed. File saved to: $OUTPUT_DIR/${DB_NAME}-$(date +%F).backup"