diff --git a/container/src/hledger-flow/accounts/coinbase/coinbase-shared.bash b/container/src/hledger-flow/accounts/coinbase/coinbase-shared.bash index f3a6411..683a008 100755 --- a/container/src/hledger-flow/accounts/coinbase/coinbase-shared.bash +++ b/container/src/hledger-flow/accounts/coinbase/coinbase-shared.bash @@ -2,7 +2,7 @@ # docker-finance | modern accounting for the power-user # -# Copyright (C) 2021-2025 Aaron Fiore (Founder, Evergreen Crypto LLC) +# Copyright (C) 2021-2026 Aaron Fiore (Founder, Evergreen Crypto LLC) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -70,7 +70,9 @@ function join_to_header() function __parse() { - gawk -v global_year="$global_year" -v global_subaccount="$global_subaccount" \ + gawk --csv \ + -v global_year="$global_year" \ + -v global_subaccount="$global_subaccount" \ '{ if (NR<2 || $9 !~ global_year) next @@ -91,18 +93,18 @@ function __parse() printf $3 OFS # info_type printf $4 OFS # info_status printf $5 OFS # info_amount_amount - printf $6 OFS # info_amount_currency + printf "\"" $6 "\"" OFS # info_amount_currency printf $7 OFS # info_native_amount_amount - printf $8 OFS # info_native_amount_currency + printf "\"" $8 "\"" OFS # info_native_amount_currency printf $9 OFS # info_created_at printf $10 OFS # info_resource printf $11 OFS # info_resource_path printf $12 OFS # info_description printf $13 OFS # info_network_status - printf $14 OFS # info_network_network_name + printf "\"" $14 "\"" OFS # info_network_network_name printf $15 OFS # info_network_hash (txid) printf("%.8f", $16); printf OFS # info_network_transaction_fee_amount - printf $17 OFS # info_network_transaction_fee_currency + printf "\"" $17 "\"" OFS # info_network_transaction_fee_currency printf $18 OFS # info_to_resource printf $19 OFS # info_to_address printf $20 OFS # info_to_email @@ -113,25 +115,37 @@ function __parse() printf $25 OFS # info_cancelable printf $26 OFS # info_idem printf("%.8f", $27); printf OFS # info_buy_total_amount - printf $28 OFS # info_buy_total_currency + printf "\"" $28 "\"" OFS # info_buy_total_currency printf("%.8f", $29); printf OFS # info_buy_subtotal_amount - printf $30 OFS # info_buy_subtotal_currency + printf "\"" $30 "\"" OFS # info_buy_subtotal_currency printf("%.8f", $31); printf OFS # info_buy_fee_amount - printf $32 OFS # info_buy_fee_currency + printf "\"" $32 "\"" OFS # info_buy_fee_currency printf $33 OFS # info_buy_id - printf $34 OFS # info_buy_payment_method_name + + # info_buy_payment_method_name + gsub(/"/, "", $34); + printf "\"" $34 "\"" OFS + printf("%.8f", $35); printf OFS # info_sell_total_amount - printf $36 OFS # info_sell_total_currency + printf "\"" $36 "\"" OFS # info_sell_total_currency printf("%.8f", $37); printf OFS # info_sell_subtotal_amount - printf $38 OFS # info_sell_subtotal_currency + printf "\"" $38 "\"" OFS # info_sell_subtotal_currency printf("%.8f", $39); printf OFS # info_sell_fee_amount - printf $40 OFS # info_sell_fee_currency + printf "\"" $40 "\"" OFS # info_sell_fee_currency printf $41 OFS # info_sell_id - printf $42 OFS # info_sell_payment_method_name + + # info_sell_payment_method_name + gsub(/"/, "", $42); + printf "\"" $42 "\"" OFS + printf("%.8f", $43); printf OFS # info_trade_fee_amount - printf $44 OFS # info_trade_fee_currency + printf "\"" $44 "\"" OFS # info_trade_fee_currency printf $45 OFS # info_trade_id - printf $46 OFS # info_trade_payment_method_name + + # info_trade_payment_method_name + gsub(/"/, "", $46); + printf "\"" $46 "\"" OFS + printf("%.8f", $47); printf OFS # info_advanced_trade_fill_fill_price printf $48 OFS # info_advanced_trade_fill_product_id printf $49 OFS # info_advanced_trade_fill_order_id @@ -185,8 +199,8 @@ function __parse() # split($48, pair, "-"); # Pair exists as advanced_trade_fill_product_id - printf pair[1] OFS # advanced_trade_fill_pair_lhs (left-hand side of the pair) - printf pair[2] OFS # advanced_trade_fill_pair_rhs (right-hand side of the pair) + printf "\"" pair[1] "\"" OFS # advanced_trade_fill_pair_lhs (left-hand side of the pair) + printf "\"" pair[2] "\"" OFS # advanced_trade_fill_pair_rhs (right-hand side of the pair) # # Advanced Trade: add column for cost-basis (comment2) @@ -201,7 +215,7 @@ function __parse() printf "\n"; - }' FS=, OFS=, + }' OFS=, } #