Commit 0c4c8547 authored by Daniel Caillibaud's avatar Daniel Caillibaud

ajout option -r à scripts/mongoApp pour passer une commande et sortir

parent 3361c20b
......@@ -15,6 +15,7 @@ usage() {
echo ' -h : affiche cette aide'
echo ' -i : lance mongoimport sur le fichier (collection déduite si -c absent) ou tous les fichiers de -d (sauf staging prod)'
echo ' -p : affiche seulement les arguments mongo'
echo ' -r : run la commande passée et sort (sans donner de shell)'
echo ' -q : mode --quiet'
echo ' -s : ajoute --shell, pour charger un ou des scripts et récupérer un shell ensuite'
echo ' -u : mode --upsert à la place de --drop pour les imports'
......@@ -25,6 +26,9 @@ usage() {
echo
echo 'exemple d’import, avec des fichiers ~/tmp/sesalab.2017-10-30/collxxx.export :'
echo './scripts/mongoApp -i -d ~/tmp/sesalab.2017-10-30/'
echo
echo 'pour boucler sur les collections :'
echo 'for c in $(./scripts/mongoApp -q -r '\''db.getCollectionNames().join(" ")'\''); do echo "On peut faire qqchose avec la collection $c" ; done'
exit $1
}
......@@ -42,9 +46,10 @@ isQuiet=No
isUpstert=No
justPrint=No
forceShell=No
toRun=''
# check des options
while getopts "c:d:e:f:g:hipqsx" OPTION
while getopts "c:d:e:f:g:hipqr:sx" OPTION
do
case $OPTION in
c) collection=$OPTARG;;
......@@ -56,9 +61,11 @@ do
i) isImport=Yes ;;
p) justPrint=Yes;;
q) isQuiet=Yes;;
r) toRun="$OPTARG";;
s) forceShell=Yes;;
u) isUpsert=Yes;;
x) isExport=Yes ;;
*) echo "Erreur, option $OPTION déclarée mais non gérée" >&2
esac
done
......@@ -75,6 +82,14 @@ read -r staging host port db user pass <<< $(node -e "const c = require('$nodeCo
args="--host $host --port $port -u $user -p $pass"
[ "$isQuiet" == 'Yes' ] && args="$args --quiet"
# commande à lancer ?
if [ -n "$toRun" ]; then
args="$args --eval \"${toRun//\"/\\\"}\""
eval mongo $db $args
exit $?
fi
# si on précise pas de fichier et que c'est ni import ni export, ce sera un shell,
# on ajoute ici nos fonctions par défaut
if [ "$isImport" == "No" ] && [ "$isExport" == "No" ] && [ -z "$file" ]; then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment