66 lines
2.4 KiB
Bash
66 lines
2.4 KiB
Bash
#!/bin/bash
|
|
## author : Dryusdan
|
|
## date : 30/09/2019
|
|
## description : A CSV importer to Firefly III
|
|
## usage : ./importer.sh [interactive]
|
|
|
|
## Import require config ##############################
|
|
source utils/config
|
|
source utils/color
|
|
source utils/logger
|
|
#######################################################
|
|
|
|
info "Starting importer"
|
|
|
|
if [ $# -eq 0 ]
|
|
then
|
|
INTERACTIVE=false
|
|
else
|
|
INTERACTIVE=true
|
|
fi
|
|
|
|
info "Create transaction folder"
|
|
|
|
mkdir -p ${TRANSACTION_PATH}
|
|
|
|
info "Get accounts"
|
|
|
|
for bank in $(cat accounts.json | jq --raw-output ".accounts[] | @base64")
|
|
do
|
|
id=$(echo ${bank} | base64 --decode | jq --raw-output ".id")
|
|
backend=$(echo ${bank} | base64 --decode | jq --raw-output ".backend")
|
|
importconfig=$(echo ${bank} | base64 --decode | jq --raw-output ".importconfig")
|
|
outputname=$(echo ${bank} | base64 --decode | jq --raw-output ".outputname")
|
|
minfetch=$(echo ${bank} | base64 --decode | jq --raw-output ".minfetch")
|
|
maxfetch=$(echo ${bank} | base64 --decode | jq --raw-output ".maxfetch")
|
|
needinteract=$(echo ${bank} | base64 --decode | jq --raw-output ".needinteract")
|
|
|
|
info "Run boobank and extract csv"
|
|
if [ ${needinteract} == "true" ] && [ ${INTERACTIVE} = true ]
|
|
then
|
|
info "Unlock with 2fa"
|
|
${BOOBANK_BIN} -b ${backend} list
|
|
${BOOBANK_BIN} -b ${backend} history ${id} -n ${minfetch} -f csv -O ${TRANSACTION_PATH}/${outputname}
|
|
else
|
|
if [ ${needinteract} == "true" ] && [ ${INTERACTIVE} = false]
|
|
then
|
|
warning "${backend} need interative. Pass"
|
|
else
|
|
${BOOBANK_BIN} -b ${backend} history ${id} -n ${minfetch} -f csv -O ${TRANSACTION_PATH}/${outputname}
|
|
fi
|
|
fi
|
|
done
|
|
|
|
info "Import csv into Firefly-III"
|
|
for bank in $(cat accounts.json | jq --raw-output ".accounts[] | @base64")
|
|
do
|
|
cd ${FIREFLY_CSV_IMPORTER_PATH}
|
|
id=$(echo ${bank} | base64 --decode | jq --raw-output ".id")
|
|
backend=$(echo ${bank} | base64 --decode | jq --raw-output ".backend")
|
|
importconfig=$(echo ${bank} | base64 --decode | jq --raw-output ".importconfig")
|
|
outputname=$(echo ${bank} | base64 --decode | jq --raw-output ".outputname")
|
|
minfetch=$(echo ${bank} | base64 --decode | jq --raw-output ".minfetch")
|
|
maxfetch=$(echo ${bank} | base64 --decode | jq --raw-output ".maxfetch")
|
|
|
|
/usr/bin/php artisan csv:import ${TRANSACTION_PATH}${outputname} ${IMPORT_CONFIG_PATH}${importconfig}
|
|
done |