forked from EvergreenCrypto/docker-finance
container: lib_edit: create if not found, refactor
This commit is contained in:
@@ -201,22 +201,45 @@ function lib_edit::__parse_args()
|
|||||||
function lib_edit::__edit()
|
function lib_edit::__edit()
|
||||||
{
|
{
|
||||||
[ -z "$EDITOR" ] && lib_utils::die_fatal
|
[ -z "$EDITOR" ] && lib_utils::die_fatal
|
||||||
[ -z "$global_child_profile" ] && lib_utils::die_fatal
|
|
||||||
[ -z "$global_child_profile_flow" ] && lib_utils::die_fatal
|
|
||||||
[ -z "$global_conf_fetch" ] && lib_utils::die_fatal
|
|
||||||
[ -z "$global_conf_hledger" ] && lib_utils::die_fatal
|
|
||||||
[ -z "$global_conf_meta" ] && lib_utils::die_fatal
|
|
||||||
[ -z "$global_conf_shell" ] && lib_utils::die_fatal
|
|
||||||
|
|
||||||
for _type in "${global_arg_type[@]}"; do
|
for _type in "${global_arg_type[@]}"; do
|
||||||
case "$_type" in
|
case "$_type" in
|
||||||
fetch)
|
fetch)
|
||||||
$EDITOR "$global_conf_fetch"
|
[ -z "$global_conf_fetch" ] && lib_utils::die_fatal
|
||||||
|
|
||||||
|
local _dir
|
||||||
|
_dir="$(dirname $global_conf_fetch)"
|
||||||
|
[ ! -d "$_dir" ] && mkdir -p "$_dir"
|
||||||
|
|
||||||
|
local _file
|
||||||
|
_file="$(basename $global_conf_fetch)"
|
||||||
|
|
||||||
|
local _path
|
||||||
|
_path="${_dir}/${_file}"
|
||||||
|
[ ! -f "$_path" ] && touch "$_path"
|
||||||
|
|
||||||
|
$EDITOR "$_path" || lib_utils::die_fatal
|
||||||
;;
|
;;
|
||||||
hledger)
|
hledger)
|
||||||
$EDITOR "$global_conf_hledger"
|
[ -z "$global_conf_hledger" ] && lib_utils::die_fatal
|
||||||
|
|
||||||
|
local _dir
|
||||||
|
_dir="$(dirname $global_conf_hledger)"
|
||||||
|
[ ! -d "$_dir" ] && mkdir -p "$_dir"
|
||||||
|
|
||||||
|
local _file
|
||||||
|
_file="$(basename $global_conf_hledger)"
|
||||||
|
|
||||||
|
local _path
|
||||||
|
_path="${_dir}/${_file}"
|
||||||
|
[ ! -f "$_path" ] && touch "$_path"
|
||||||
|
|
||||||
|
$EDITOR "$_path" || lib_utils::die_fatal
|
||||||
;;
|
;;
|
||||||
iadd | manual)
|
iadd | manual)
|
||||||
|
[ -z "$global_child_profile" ] && lib_utils::die_fatal
|
||||||
|
[ -z "$global_child_profile_flow" ] && lib_utils::die_fatal
|
||||||
|
|
||||||
local _path="${global_child_profile_flow}/import/${global_child_profile}/_manual_/${global_arg_year}"
|
local _path="${global_child_profile_flow}/import/${global_child_profile}/_manual_/${global_arg_year}"
|
||||||
[ ! -d "$_path" ] && mkdir -p "$_path"
|
[ ! -d "$_path" ] && mkdir -p "$_path"
|
||||||
|
|
||||||
@@ -230,16 +253,29 @@ function lib_edit::__edit()
|
|||||||
[[ "$_type" == "manual" ]] && $EDITOR "$_path"
|
[[ "$_type" == "manual" ]] && $EDITOR "$_path"
|
||||||
;;
|
;;
|
||||||
meta)
|
meta)
|
||||||
|
[ -z "$global_conf_meta" ] && lib_utils::die_fatal
|
||||||
|
|
||||||
|
local _dir
|
||||||
|
_dir="$(dirname $global_conf_meta)"
|
||||||
|
[ ! -d "$_dir" ] && mkdir -p "$_dir"
|
||||||
|
|
||||||
|
local _file
|
||||||
|
_file="$(basename $global_conf_meta)"
|
||||||
|
|
||||||
|
local _path
|
||||||
|
_path="${_dir}/${_file}"
|
||||||
|
[ ! -f "$_path" ] && touch "$_path"
|
||||||
|
|
||||||
# NOTE:
|
# NOTE:
|
||||||
# - Expects comments to begin with format: //!
|
# - Expects comments to begin with format: //!
|
||||||
# - If saved to original, opening with `--skip` will clobber the
|
# - If saved to original, opening with `--skip` will clobber the
|
||||||
# original file's comments.
|
# original file's comments.
|
||||||
local -r _skip="$(grep -E "^//!" $global_conf_meta | wc -l)"
|
local -r _skip="$(grep -E "^//!" $_path | wc -l)"
|
||||||
visidata --quitguard --motd-url file:///dev/null --filetype csv --skip "$_skip" "$global_conf_meta"
|
visidata --quitguard --motd-url file:///dev/null --filetype csv --skip "$_skip" "$_path"
|
||||||
|
|
||||||
# TODO: HACK: visidata saves w/ DOS-style carriage...
|
# TODO: HACK: visidata saves w/ DOS-style carriage...
|
||||||
# ...but there seems to be no option out of this.
|
# ...but there seems to be no option out of this.
|
||||||
sed -i 's:\r::g' "$global_conf_meta"
|
sed -i 's:\r::g' "$_path"
|
||||||
;;
|
;;
|
||||||
preprocess | rules)
|
preprocess | rules)
|
||||||
# Run all paths through one editor instance
|
# Run all paths through one editor instance
|
||||||
@@ -278,10 +314,23 @@ function lib_edit::__edit()
|
|||||||
done
|
done
|
||||||
|
|
||||||
# Execute
|
# Execute
|
||||||
$EDITOR "${_paths[@]}"
|
$EDITOR "${_paths[@]}" || lib_utils::die_fatal
|
||||||
;;
|
;;
|
||||||
shell)
|
shell)
|
||||||
$EDITOR "$global_conf_shell"
|
[ -z "$global_conf_shell" ] && lib_utils::die_fatal
|
||||||
|
|
||||||
|
local _dir
|
||||||
|
_dir="$(dirname $global_conf_shell)"
|
||||||
|
[ ! -d "$_dir" ] && mkdir -p "$_dir"
|
||||||
|
|
||||||
|
local _file
|
||||||
|
_file="$(basename $global_conf_shell)"
|
||||||
|
|
||||||
|
local _path
|
||||||
|
_path="${_dir}/${_file}"
|
||||||
|
[ ! -f "$_path" ] && touch "$_path"
|
||||||
|
|
||||||
|
$EDITOR "$_path" || lib_utils::die_fatal
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user