firefly-iii-auto-importer/importer.sh

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