mirror of
https://github.com/GothenburgBitFactory/timewarrior.git
synced 2025-06-26 10:54:28 +02:00
59 lines
1.9 KiB
Bash
59 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
|
# This file only contains helper functions for making Timewarrior testing
|
|
# easier. The magic happens in bash_tap.sh sourced at the end of this file.
|
|
#
|
|
# "timew" is a bash function calling "TIMEWARRIORDB=dir /path/to/compiled/timew"
|
|
# Only local paths are searched, see bash_tap_tw.sh:find_timew_binary().
|
|
#
|
|
# "timewarrior.cfg" is a file set up in bash_tap_ti.sh:setup_cfg(), and can be
|
|
# appended to or changed as needed.
|
|
#
|
|
# Subject to the MIT License. See LICENSE file or https://opensource.org/licenses/MIT
|
|
# Copyright (c) 2015-2018 Wilhelm Schürmann
|
|
|
|
function setup_cfg {
|
|
# Configuration
|
|
for i in data/*.data timewarrior.cfg; do
|
|
if [ -f "$i" ]; then
|
|
rm "$i" 2>&1 >/dev/null
|
|
fi
|
|
done
|
|
|
|
export TIMEWARRIORDB=.
|
|
|
|
#echo 'foo' >> timewarrior.cfg
|
|
}
|
|
|
|
function find_timew_binary {
|
|
# $bashtap_org_pwd is set in bash_tap.sh. It is the directory the parent script is
|
|
# run from. Check for the timew binary relative to that directory.
|
|
# Do not use the system "timew" if no local one is found, error out instead.
|
|
for t in "${bashtap_org_pwd}/timew" "${bashtap_org_pwd}/src/timew" "${bashtap_org_pwd}/../timew" "${bashtap_org_pwd}/../src/timew" "${bashtap_org_pwd}/../build/src/timew"; do
|
|
if [ -f "$t" ] && [ -x "$t" ]; then
|
|
t_abs=$(bashtap_get_absolute_path "$t")
|
|
eval "function timew { ${t_abs} \"\$@\"; }"
|
|
return 0
|
|
fi
|
|
done
|
|
|
|
echo "# ERROR: Could not find timew binary!"
|
|
|
|
# Needed for normal, i.e. "non-test" mode.
|
|
eval "function timew { exit; }"
|
|
|
|
# Set $line so we can have useful TAP output.
|
|
line="bash_tap.sh:find_timew_binary()"
|
|
|
|
return 1
|
|
}
|
|
|
|
function bashtap_setup {
|
|
# This function is called by bash_tap.sh before running tests, or before
|
|
# running the parent script normally.
|
|
find_timew_binary
|
|
setup_cfg
|
|
}
|
|
|
|
|
|
# Include the base script that does the actual work.
|
|
source bash_tap.sh
|