#!/bin/bash # source sl_mongohelp.sh if [ "$SEQUENCELOGICHOME" = "" ]; then echo "[INFO] Using default SEQUENCELOGICHOME value" export SEQUENCELOGICHOME=/sequencelogic fi if [ "${SLSYNC}" = "" ]; then export SLSYNC="${SEQUENCELOGICHOME}/SLSync" fi # return 1 if user ($1) function isUser(){ user=$1 me=`whoami` if [ "$user" = "$me" ]; then return 1 else return 0 fi } function ownerMode(){ file=$1 chown ${CHMOD_FLAG} sequencelogic:sequencelogic $file #chgrp ${CHMOD_FLAG} sequencelogic $file chmod ${CHMOD_FLAG} $2 $file echo "[OK] Changed: ${file} owner/group to 'sequencelogic' and set mode to: ${2}" } function createDirectory(){ dir=$1 if [ ! -d "${dir}" ]; then mkdir -p "${dir}" echo "[OK] Created directory: ${dir}" fi ownerMode "${dir}" $2 } # create public/private keys in $SEQUENCELOGICHOME/cg function createKeys(){ priv=${SEQUENCELOGICHOME}/cg/$1 pub=${SEQUENCELOGICHOME}/cg/$2 openssl genrsa -out ${priv} 2048 openssl rsa -in ${priv} -out ${pub} -outform PEM -pubout ownerMode ${priv} 440 ownerMode ${pub} 440 echo "[OK] Generated public and private keys" return 0 } # create a uuid of length $1 function createUUID(){ LEN=$1 uuid=`uuidgen | sed 's/-//g'` uuid=`echo $uuid | awk -v LEN=${LEN} ' { frag=substr($0, 1, LEN); print frag; } '` echo $uuid } if [ "$MONGO_HOST" = "" ]; then export MONGO_HOST="localhost" fi if [ "$MONGO_PORT" = "" ]; then export MONGO_PORT="27017" fi MANAGED_POLICIES=`cat <&1 >${MECHO} echo "$1" | mongo ${MVERBOSE} $MONGO_HOST:$MONGO_PORT/sequencelogic if [ $? = 0 ]; then echo "[OK] Exec $1" 2>&1 >${MECHO}; return 0; else echo "[ERROR] $? $1" 2>&1 >${MECHO}; return 1; fi } # puts into dbCollection ($1) a key ($2) value ($3) into mongo # requires MONGO_HOST and MONGO_PORT variables function mongoPutRaw(){ db=$1 key=$2 val="$3" case "$val" in true|false|null) val=$val;; [0-9.]+) val=$val;; *) val="'${val}'";; esac json="db.${db}.update({_id:'${key}'},{_id:'${key}', __rAw__:${val}}, {upsert:true})" mongoExec "$json" # echo "[OK] $? set into DB $db key: ${key} value: ${val}" } # puts into dbCollection ($1) a key ($2) value ($3) into mongo # requires MONGO_HOST and MONGO_PORT variables function mongoPutDoc(){ db=$1 key=$2 val="$3" json="db.${db}.update({_id:'${key}'},${val}, {upsert:true})" mongoExec "$json" } echo "[INFO] Sourced sl_mongohelp.sh; SEQUENCELOGICHOME is $SEQUENCELOGICHOME"