Tim Landscheidt has uploaded a new change for review. https://gerrit.wikimedia.org/r/268563
Change subject: Import sql from operations/puppet ...................................................................... Import sql from operations/puppet Change-Id: I159b49371a995ca32e1d37bc69d17308d10d8164 --- M debian/changelog M debian/misctools.install M misctools/Makefile.am A misctools/sql 4 files changed, 124 insertions(+), 2 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/labs/toollabs refs/changes/63/268563/1 diff --git a/debian/changelog b/debian/changelog index ac9d2cb..e7eda61 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,11 @@ toollabs (1.9~dev) unstable; urgency=medium + * Import sql from operations/puppet. [Tim Landscheidt] * Don't call log-command-invocation when testing jsub. [Bryan Davis] * Set versions and dates in man pages from debian/changelog. [Tim Landscheidt] - -- Tim Landscheidt <t...@tim-landscheidt.de> Mon, 01 Feb 2016 03:38:03 +0000 + -- Tim Landscheidt <t...@tim-landscheidt.de> Thu, 04 Feb 2016 21:43:03 +0000 toollabs (1.8.1) unstable; urgency=medium diff --git a/debian/misctools.install b/debian/misctools.install index 213a4d6..052126b 100644 --- a/debian/misctools.install +++ b/debian/misctools.install @@ -1,4 +1,5 @@ usr/bin/become +usr/bin/sql usr/bin/take usr/bin/webservice usr/sbin/toolwatcher diff --git a/misctools/Makefile.am b/misctools/Makefile.am index 4c24594..d38ed20 100644 --- a/misctools/Makefile.am +++ b/misctools/Makefile.am @@ -1,3 +1,3 @@ man_MANS = become.1 toolwatcher.8 -bin_SCRIPTS = become webservice +bin_SCRIPTS = become sql webservice sbin_SCRIPTS = toolwatcher diff --git a/misctools/sql b/misctools/sql new file mode 100755 index 0000000..65f5314 --- /dev/null +++ b/misctools/sql @@ -0,0 +1,120 @@ +#!/bin/bash + +# this tool allow you to connect quickly to sql database +# it should work for all newbies + +verbose=0 + +function Log { +if [ $verbose -eq 1 ];then + echo "$1" +fi +} + +if [ $# -lt 1 ];then + echo "Usage: \"sql <database name|wiki name> [-vh]\" type sql --help for more help" + exit 0 +fi + +if [ "$1" = "-h" ] || [ "$1" == "--help" ];then + echo "Usage: sql <database>[_p] [-vh] [command(s)]" + echo + echo "This tool allows you to easily open a connection to sql database without having to provide the credentials or a database host server" + echo "Example: sql frwiki_p" + echo + echo "Parameters:" + echo " -v: verbose - produce various information about the resolution of db" + echo + echo "Report bugs to phabricator: https://phabricator.wikimedia.org" + exit 0 +fi + +for i +do + if [ "$i" = "-v" ] || [ "$i" = "--verbose" ] + then + verbose=1 + fi +done + +if [ ! -f ~/replica.my.cnf ] && [ ! -f ~/.my.cnf ] +then + Log "WARNING: There is no configuration file for mysql to use, you will probably be unable to access the database" +fi + +param="" +# check if the user has a replica file +if [ -f ~/replica.my.cnf ];then + param=" --defaults-file=~/replica.my.cnf" +else + if [ ! -f ~/.my.cnf ];then + param=" -p" + fi +fi + +server="enwiki.labsdb" +db="enwiki_p" + +case "$1" in + "en" | "enwiki" | "enwiki_p") + server="enwiki.labsdb" + db="enwiki_p" + ;; + "de" | "dewiki" | "dewiki_p") + server="dewiki.labsdb" + db="dewiki_p" + ;; + "fr" | "frwiki" | "frwiki_p") + server="frwiki.labsdb" + db="frwiki_p" + ;; + "cs" | "cswiki" | "cswiki_p") + server="cswiki.labsdb" + db="cswiki_p" + ;; + "commons" | "commonswiki" | "commonswiki_p") + server="commonswiki.labsdb" + db="commonswiki_p" + ;; + "wikidata" | "wikidatawiki" | "wikidatawiki_p") + server="wikidatawiki.labsdb" + db="wikidatawiki_p" + ;; + "meta" | "meta_p") + # Not to confuse with metawiki[_p] + # https://wikitech.wikimedia.org/wiki/Nova_Resource:Tools/Help#Metadata_database + server="s7.labsdb" + db="meta_p" + ;; + "local") + server=tools-db + db="" + if [ -f ~/.my.cnf ];then + param="" + fi + ;; + *) + # we don't know what the database is so we check if it exist first + Log "This database name is not known by sql script, fallback to dblist resolution" + db="${1%_p}_p" + server="${db%_p}.labsdb" + if getent hosts -- "$server" > /dev/null + then + Log "Resolved to $server $db" + else + echo "Could not find requested database" + if [ "$db" != "$1" ]; then + echo 'Make sure to ask for a db in format of <wiki>_p' + fi + exit 1 + fi + ;; +esac + +shift +Log "Connecting to $server" +if [ $# -lt 1 ]; then + exec mysql $param -h $server $db "$@" +else + echo "$@" | mysql $param -h $server $db +fi -- To view, visit https://gerrit.wikimedia.org/r/268563 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I159b49371a995ca32e1d37bc69d17308d10d8164 Gerrit-PatchSet: 1 Gerrit-Project: labs/toollabs Gerrit-Branch: master Gerrit-Owner: Tim Landscheidt <t...@tim-landscheidt.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits