Adds jrq, a convenience wrapper that loads connection details from ~/.jrqrc so users can run query mode without typing credentials each time. deploy.sh now installs jrq alongside jrunner in all deploy modes, with a /usr/local/bin symlink for global installs. jrq resolves the jrunner binary relative to its own location to avoid hardcoded paths. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
67 lines
1.9 KiB
Bash
Executable File
67 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# jrq - jrunner query wrapper for piping to visidata
|
|
# Usage: jrq <sql_file> [format]
|
|
# Example: jrq query.sql
|
|
# jrq query.sql tsv
|
|
|
|
set -e
|
|
|
|
# Configuration
|
|
# Override these with environment variables or create ~/.jrqrc
|
|
CONFIG_FILE="${HOME}/.jrqrc"
|
|
|
|
# Default values
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
JR_BIN="${JR_BIN:-${SCRIPT_DIR}/jrunner}"
|
|
JR_URL="${JR_URL:-}"
|
|
JR_USER="${JR_USER:-}"
|
|
JR_PASS="${JR_PASS:-}"
|
|
JR_FORMAT="${JR_FORMAT:-csv}"
|
|
|
|
# Load config file if it exists
|
|
if [ -f "$CONFIG_FILE" ]; then
|
|
source "$CONFIG_FILE"
|
|
fi
|
|
|
|
# Parse arguments
|
|
if [ $# -lt 1 ]; then
|
|
echo "Usage: jrq <sql_file> [format]"
|
|
echo ""
|
|
echo "Configuration (via environment variables or ~/.jrqrc):"
|
|
echo " JR_URL - JDBC connection URL (required)"
|
|
echo " JR_USER - Database username (required)"
|
|
echo " JR_PASS - Database password (required)"
|
|
echo " JR_BIN - Path to jrunner binary (default: /opt/jrunner/jrunner/build/install/jrunner/bin/jrunner)"
|
|
echo " JR_FORMAT - Output format: csv or tsv (default: csv)"
|
|
echo ""
|
|
echo "Example ~/.jrqrc:"
|
|
echo " JR_URL=\"jdbc:as400://s7830956\""
|
|
echo " JR_USER=\"username\""
|
|
echo " JR_PASS=\"password\""
|
|
echo ""
|
|
echo "Example usage:"
|
|
echo " jrq query.sql # outputs CSV to stdout"
|
|
echo " jrq query.sql | vd # pipe to visidata"
|
|
echo " jrq query.sql tsv # output TSV format"
|
|
exit 1
|
|
fi
|
|
|
|
SQL_FILE="$1"
|
|
FORMAT="${2:-$JR_FORMAT}"
|
|
|
|
# Validate configuration
|
|
if [ -z "$JR_URL" ] || [ -z "$JR_USER" ] || [ -z "$JR_PASS" ]; then
|
|
echo "Error: Missing database connection configuration" >&2
|
|
echo "Set JR_URL, JR_USER, and JR_PASS environment variables or create ~/.jrqrc" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Validate SQL file exists
|
|
if [ ! -f "$SQL_FILE" ]; then
|
|
echo "Error: SQL file not found: $SQL_FILE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Execute jrunner
|
|
"$JR_BIN" -scu "$JR_URL" -scn "$JR_USER" -scp "$JR_PASS" -sq "$SQL_FILE" -f "$FORMAT"
|