Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- help() {
- cat << EOF
- Usage: sql [--type=TYPE] FILENAME [--suffix-curdate] [OPTIONS]
- Execute sql query and output result to stdout or file (html/text)
- type html, txt or stdout. Default stdout
- FILENAME filename to generate html or text
- --suffix-curdate add to name current date
- OPTIONS See in open-html-file-in-browser.sh
- --help print this help
- For html format:
- --delonexit delete generated html file on exit from script
- --openinbrowser open generated html in browser
- EOF
- }
- if [[ "$@" == *"--help"* ]]; then
- help
- exit 0
- fi
- sql=$1
- if [ -z "$sql" ]; then
- echo "Missing sql query"
- help
- exit 1
- fi
- shift 1
- filename=
- ext=
- type=stdout
- args=
- openinbrowser=0
- delonexit=0
- withCarDate=0
- for arg in "$@"; do
- case $arg in
- --type=*)
- type=${arg#*=}
- ;;
- --filename=*)
- filename=${arg#*=}
- ;;
- --openinbrowser)
- openinbrowser=1
- ;;
- --delonexit)
- delonexit=1
- ;;
- --suffix-curdate)
- withCarDate=1
- ;;
- *)
- echo "Unknown argument: $arg"
- help
- exit 1
- ;;
- esac
- done
- isStdOut=0; [ "$type" == "stdout" ] && isStdOut=1
- isHtml=0; [ "$type" == "html" ] && isHtml=1
- if [ $isHtml == 1 ]; then
- ext="html"
- args=" -H"
- elif [ "$type" == "txt" ] ; then
- ext="txt"
- args=" "
- fi
- if [ $isStdOut != 1 ] && [ -z "$ext" ]; then
- echo "Invalid TYPE"
- help
- exit 1
- fi
- if [ $isStdOut == 0 ] && [ -z "$filename" ]; then
- echo "Missing FILENAME"
- help
- exit 1
- fi
- if [ $withCarDate == 1 ]; then
- filename+=_$(date +"%Y.%m.%d_%H-%M-%S")
- fi
- echo "SQL: $sql"
- if [ $isStdOut == 1 ] ; then
- mysql-car -e "$sql;"
- else
- filename+=.$ext
- mysql-car -e "$sql;" $args > $filename
- echo "Query saved to $filename."
- if [ $isHtml == 1 ]; then
- args=""
- if [ $delonexit == 1 ]; then
- args+="--delonexit"
- fi
- args+=" "
- if [ $openinbrowser == 1 ]; then
- args+="--openinbrowser"
- fi
- $(dirname "$0")/open-html-file-in-browser.sh $filename $args
- fi
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement