41 lines
980 B
Bash
Executable File
41 lines
980 B
Bash
Executable File
#!/bin/bash
|
|
|
|
TABLE_NAME="SolarPanelOutput";
|
|
|
|
if [ "$#" -ne 2 ]; then
|
|
echo "Usage: $0 [/log/file/directory/] [/path/to/db/database].db";
|
|
fi
|
|
|
|
if ! [ -d "$1" ]; then
|
|
echo "Error opening log file directory $1, aborting.";
|
|
exit 1;
|
|
fi
|
|
|
|
if ! [ -f "$2" ]; then
|
|
echo "Error opening database file $2, aborting.";
|
|
exit 1;
|
|
fi
|
|
|
|
if [ "${$1}" != */ ]; then
|
|
$1 = "$1/";
|
|
fi
|
|
|
|
for DIRECTORY in $1*/; do
|
|
if [ -d "$DIRECTORY" ]; then
|
|
echo "Checking out directory $DIRECTORY...";
|
|
for FILE in $DIRECTORY*; do
|
|
if [ -f "$FILE" ]; then
|
|
echo "Processing file $FILE...";
|
|
while read line; do
|
|
PROCESSED_LINE="$(echo "$line" | tr -s ' ')";
|
|
ISODATE="$(echo "$PROCESSED_LINE" | cut -d ' ' -f1)";
|
|
WATT="$(echo "$PROCESSED_LINE" | cut -d ' ' -f2)";
|
|
KILOWATTHR="$(echo "$PROCESSED_LINE" | cut -d ' ' -f3)";
|
|
|
|
EPOCHDATE="$(date -d"$ISODATE" +%s)"
|
|
sqlite3 $2 "INSERT INTO $TABLE_NAME VALUES($EPOCHDATE, $WATT, $KILOWATTHR);";
|
|
done < "$FILE"
|
|
fi
|
|
done;
|
|
fi
|
|
done |