#!/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