Skip to content

Commit

Permalink
Merge pull request #40 from pj8/json-format
Browse files Browse the repository at this point in the history
Json format
  • Loading branch information
yuki777 authored Mar 1, 2023
2 parents db51d12 + 8ba1f4a commit a86ca05
Show file tree
Hide file tree
Showing 6 changed files with 154 additions and 81 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v1.2.0
v1.2.1
73 changes: 57 additions & 16 deletions dbdb.sh
Original file line number Diff line number Diff line change
@@ -1,16 +1,41 @@
#!/bin/bash
set -eu

# Get format option
format=""
while getopts ":f:" opt; do
case ${opt} in
f)
format="$OPTARG"
;;
\?)
echo "Invalid option: -$OPTARG" 1>&2
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." 1>&2
exit 1
;;
esac
done
shift $((OPTIND - 1))

# Define colors
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'

currentDir="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
# Get current directory
currentDir="$(
cd "$(dirname "$0")" >/dev/null 2>&1
pwd -P
)"
cd "$currentDir"

dbTypes=( mongodb mysql postgresql redis )
for dbType in "${dbTypes[@]}"
do
normalOutputs=""
jsonOutputs=""
dbTypes=(mongodb mysql postgresql redis)
for dbType in "${dbTypes[@]}"; do
for dbVersion in $(ls "$currentDir/$dbType/versions" 2>/dev/null); do
if [ -d "$currentDir/$dbType/versions/$dbVersion" ]; then
for dbServerName in $(ls "$currentDir/$dbType/versions/$dbVersion/datadir" 2>/dev/null); do
Expand All @@ -28,24 +53,40 @@ do

# pid
pidFile="$currentDir/$dbType/versions/$dbVersion/datadir/$dbServerName/$dbType.pid"
if [ -f "$pidFile" ] && pgrep -F "$pidFile" > /dev/null; then
echo -e "# $dbServerName (type:$dbType version:$dbVersion port:$dbPort) is ${GREEN}running${NC}."

# status
if [ -f "$pidFile" ] && pgrep -F "$pidFile" >/dev/null; then
status="running"
else
status="stopped"
fi

# change output color
if [ "$status" = "running" ]; then
normalOutputs="$normalOutputs ${GREEN}# $dbServerName (type:$dbType version:$dbVersion port:$dbPort) is ${status}.${NC}\n"
else
echo -e "# $dbServerName (type:$dbType version:$dbVersion port:$dbPort) is ${RED}stopped${NC}."
normalOutputs="$normalOutputs ${RED}# $dbServerName (type:$dbType version:$dbVersion port:$dbPort) is ${status}.${NC}\n"
fi

# commands
echo "$currentDir/$dbType/start.sh $dbServerName"
echo "$currentDir/$dbType/stop.sh $dbServerName"
echo "$currentDir/$dbType/restart.sh $dbServerName"
# echo "$currentDir/$dbType/port.sh $dbServerName"
# echo "$currentDir/$dbType/status.sh $dbServerName"
# echo "$currentDir/$dbType/connect.sh $dbServerName"
# echo "$currentDir/$dbType/delete.sh $dbServerName"
echo ""
# normalOutputs
normalOutputs="$normalOutputs $currentDir/$dbType/{start|stop|restart|port|status|connect|delete}.sh $dbServerName\n"
normalOutputs="$normalOutputs $currentDir/$dbType/start.sh $dbServerName\n"
normalOutputs="$normalOutputs $currentDir/$dbType/stop.sh $dbServerName\n"
normalOutputs="$normalOutputs \n"

# jsonOutputs
availableCommands='["start.sh", "stop.sh", "restart.sh", "port.sh", "status.sh", "connect.sh", "delete.sh"]'
jsonOutputs="$jsonOutputs{\"name\": \"$dbServerName\", \"type\": \"$dbType\", \"version\": \"$dbVersion\", \"port\": \"$dbPort\", \"status\": \"$status\", \"commandPath\": \"$currentDir/$dbType/\", \"availableCommands\": $availableCommands},"
fi
fi
done
fi
done
done

# Output
if [ "$format" = "json" ]; then
echo -e "[${jsonOutputs%?}]"
else
echo -e "${normalOutputs%?????}"
fi
34 changes: 21 additions & 13 deletions tests/mongodb-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,40 @@ rm -fr mongodb-*.tar.gz
date=$(date +%Y%m%d%H%M%S)
md5="md5"
[ "$(getOS)" = "linux" ] && md5="md5sum"
hash=$(echo "dbdb-$date"|$md5|cut -d ' ' -f 1)
hash=$(echo "dbdb-$date" | $md5 | cut -d ' ' -f 1)

# 4.4.10
echo "Test create..."
./create.sh dbdb-test-$hash 4.4.10 random
./create.sh dbdb-test-$hash 4.4.10 random
echo "Test port..."
./port.sh dbdb-test-$hash
./port.sh dbdb-test-$hash
echo "Test start..."
./start.sh dbdb-test-$hash
./start.sh dbdb-test-$hash
echo "Test status..."
./status.sh dbdb-test-$hash
./status.sh dbdb-test-$hash
echo "Test stop..."
./stop.sh dbdb-test-$hash
./stop.sh dbdb-test-$hash
echo "Test delete..."
./delete.sh dbdb-test-$hash
./delete.sh dbdb-test-$hash

# 5.0.3
echo "Test create..."
./create.sh dbdb-test-$hash 5.0.3 random
./create.sh dbdb-test-$hash 5.0.3 random
echo "Test port..."
./port.sh dbdb-test-$hash
./port.sh dbdb-test-$hash
echo "Test start..."
./start.sh dbdb-test-$hash
./start.sh dbdb-test-$hash
echo "Test status..."
./status.sh dbdb-test-$hash
./status.sh dbdb-test-$hash
echo "Test stop..."
./stop.sh dbdb-test-$hash
./stop.sh dbdb-test-$hash
echo "Test delete..."
./delete.sh dbdb-test-$hash
./delete.sh dbdb-test-$hash

# dbdb.sh
./create-start.sh dbdb-test-$hash 5.0.3 random
../dbdb.sh
../dbdb.sh -f json
if command -v jq >/dev/null 2>&1; then
../dbdb.sh -f json | jq
fi
46 changes: 27 additions & 19 deletions tests/mysql-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,46 +9,54 @@ rm -fr mysql-*.tar.gz
date=$(date +%Y%m%d%H%M%S)
md5="md5"
[ "$(getOS)" = "linux" ] && md5="md5sum"
hash=$(echo "dbdb-$date"|$md5|cut -d ' ' -f 1)
hash=$(echo "dbdb-$date" | $md5 | cut -d ' ' -f 1)

# 5.7.31
echo "Test create..."
./create.sh dbdb-test-$hash 5.7.31 random
./create.sh dbdb-test-$hash 5.7.31 random
echo "Test port..."
./port.sh dbdb-test-$hash
./port.sh dbdb-test-$hash
echo "Test start..."
./start.sh dbdb-test-$hash
./start.sh dbdb-test-$hash
echo "Test status..."
./status.sh dbdb-test-$hash
./status.sh dbdb-test-$hash
echo "Test stop..."
./stop.sh dbdb-test-$hash
./stop.sh dbdb-test-$hash
echo "Test delete..."
./delete.sh dbdb-test-$hash
./delete.sh dbdb-test-$hash

# 8.0.23
echo "Test create..."
./create.sh dbdb-test-$hash 8.0.23 random
./create.sh dbdb-test-$hash 8.0.23 random
echo "Test port..."
./port.sh dbdb-test-$hash
./port.sh dbdb-test-$hash
echo "Test start..."
./start.sh dbdb-test-$hash
./start.sh dbdb-test-$hash
echo "Test status..."
./status.sh dbdb-test-$hash
./status.sh dbdb-test-$hash
echo "Test stop..."
./stop.sh dbdb-test-$hash
./stop.sh dbdb-test-$hash
echo "Test delete..."
./delete.sh dbdb-test-$hash
./delete.sh dbdb-test-$hash

# 8.0.30
echo "Test create..."
./create.sh dbdb-test-$hash 8.0.30 random
./create.sh dbdb-test-$hash 8.0.30 random
echo "Test port..."
./port.sh dbdb-test-$hash
./port.sh dbdb-test-$hash
echo "Test start..."
./start.sh dbdb-test-$hash
./start.sh dbdb-test-$hash
echo "Test status..."
./status.sh dbdb-test-$hash
./status.sh dbdb-test-$hash
echo "Test stop..."
./stop.sh dbdb-test-$hash
./stop.sh dbdb-test-$hash
echo "Test delete..."
./delete.sh dbdb-test-$hash
./delete.sh dbdb-test-$hash

# dbdb.sh
./create-start.sh dbdb-test-$hash 8.0.30 random
../dbdb.sh
../dbdb.sh -f json
if command -v jq >/dev/null 2>&1; then
../dbdb.sh -f json | jq
fi
46 changes: 27 additions & 19 deletions tests/postgresql-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,46 +9,54 @@ rm -fr postgresql-*.tar.gz
date=$(date +%Y%m%d%H%M%S)
md5="md5"
[ "$(getOS)" = "linux" ] && md5="md5sum"
hash=$(echo "dbdb-$date"|$md5|cut -d ' ' -f 1)
hash=$(echo "dbdb-$date" | $md5 | cut -d ' ' -f 1)

# 12.4
echo "Test create..."
./create.sh dbdb-test-$hash 12.4 random
./create.sh dbdb-test-$hash 12.4 random
echo "Test port..."
./port.sh dbdb-test-$hash
./port.sh dbdb-test-$hash
echo "Test start..."
./start.sh dbdb-test-$hash
./start.sh dbdb-test-$hash
echo "Test status..."
./status.sh dbdb-test-$hash
./status.sh dbdb-test-$hash
echo "Test stop..."
./stop.sh dbdb-test-$hash
./stop.sh dbdb-test-$hash
echo "Test delete..."
./delete.sh dbdb-test-$hash
./delete.sh dbdb-test-$hash

# 12.6
echo "Test create..."
./create.sh dbdb-test-$hash 12.6 random
./create.sh dbdb-test-$hash 12.6 random
echo "Test port..."
./port.sh dbdb-test-$hash
./port.sh dbdb-test-$hash
echo "Test start..."
./start.sh dbdb-test-$hash
./start.sh dbdb-test-$hash
echo "Test status..."
./status.sh dbdb-test-$hash
./status.sh dbdb-test-$hash
echo "Test stop..."
./stop.sh dbdb-test-$hash
./stop.sh dbdb-test-$hash
echo "Test delete..."
./delete.sh dbdb-test-$hash
./delete.sh dbdb-test-$hash

# 13.2
echo "Test create..."
./create.sh dbdb-test-$hash 13.2 random
./create.sh dbdb-test-$hash 13.2 random
echo "Test port..."
./port.sh dbdb-test-$hash
./port.sh dbdb-test-$hash
echo "Test start..."
./start.sh dbdb-test-$hash
./start.sh dbdb-test-$hash
echo "Test status..."
./status.sh dbdb-test-$hash
./status.sh dbdb-test-$hash
echo "Test stop..."
./stop.sh dbdb-test-$hash
./stop.sh dbdb-test-$hash
echo "Test delete..."
./delete.sh dbdb-test-$hash
./delete.sh dbdb-test-$hash

# dbdb.sh
./create-start.sh dbdb-test-$hash 13.2 random
../dbdb.sh
../dbdb.sh -f json
if command -v jq >/dev/null 2>&1; then
../dbdb.sh -f json | jq
fi
34 changes: 21 additions & 13 deletions tests/redis-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,40 @@ rm -fr redis-*.tar.gz
date=$(date +%Y%m%d%H%M%S)
md5="md5"
[ "$(getOS)" = "linux" ] && md5="md5sum"
hash=$(echo "dbdb-$date"|$md5|cut -d ' ' -f 1)
hash=$(echo "dbdb-$date" | $md5 | cut -d ' ' -f 1)

# 6.0.16
echo "Test create..."
./create.sh dbdb-test-$hash 6.0.16 random
./create.sh dbdb-test-$hash 6.0.16 random
echo "Test port..."
./port.sh dbdb-test-$hash
./port.sh dbdb-test-$hash
echo "Test start..."
./start.sh dbdb-test-$hash
./start.sh dbdb-test-$hash
echo "Test status..."
./status.sh dbdb-test-$hash
./status.sh dbdb-test-$hash
echo "Test stop..."
./stop.sh dbdb-test-$hash
./stop.sh dbdb-test-$hash
echo "Test delete..."
./delete.sh dbdb-test-$hash
./delete.sh dbdb-test-$hash

# 6.2.6
echo "Test create..."
./create.sh dbdb-test-$hash 6.2.6 random
./create.sh dbdb-test-$hash 6.2.6 random
echo "Test port..."
./port.sh dbdb-test-$hash
./port.sh dbdb-test-$hash
echo "Test start..."
./start.sh dbdb-test-$hash
./start.sh dbdb-test-$hash
echo "Test status..."
./status.sh dbdb-test-$hash
./status.sh dbdb-test-$hash
echo "Test stop..."
./stop.sh dbdb-test-$hash
./stop.sh dbdb-test-$hash
echo "Test delete..."
./delete.sh dbdb-test-$hash
./delete.sh dbdb-test-$hash

# dbdb.sh
./create-start.sh dbdb-test-$hash 6.2.6 random
../dbdb.sh
../dbdb.sh -f json
if command -v jq >/dev/null 2>&1; then
../dbdb.sh -f json | jq
fi

0 comments on commit a86ca05

Please sign in to comment.