Commits at 08f471e479cdad299d6894112e20cf19c1735793
08f471e4Setup snapshot testings
Behavior matching tests is helpful, but it prevents me from adding,
changing or improving existing functionality. Snapshot testing solves
this problem. Here is my plan:
1. Add a way to fix time (new CLI arg or C API something)
2. Create snapshots for behavior matching tests
3. Delete behavior matching tests
This file-based snapshotting works great with external tools. In a
future when I add a structured output (e.g. JSON,) difftastic would help
diff-ing a lot.
The reason I choose "version" command is it does not rely on system
time. Even "report" command prints current time to output and that
messes snapshot testing up.
Shota FUJI
authored at
Shota FUJI
comitted at
4cc8a62fE2E testing
As I'm going to add features and changes to existing behavior, tests not
bound to legacy program is necessary.
Shota FUJI
authored at
Shota FUJI
comitted at
7d352678Add --date option to report command
It supersedes "y", "m" and "d" options.
I'm yet to decide it should be positional or labelled, so CLI currently
accepts both.
Shota FUJI
authored at
Shota FUJI
comitted at
18912188Separate arg parser code into several files
It was not easy to read, and I'm going to add more logic to arg parsers.
Shota FUJI
authored at
Shota FUJI
comitted at
8f2024a8Update man pages to the new CLI
Previous CLI don't fit well to man page format, especially due to its
hyphen-less semi-positional sometimes-ignored options.
Shota FUJI
authored at
Shota FUJI
comitted at
024f9127Fix prints "unknown argument" for incorrect arguments
Errors other than UnknownArg, such as MissingValue logs eariler.
UnknownArg is also used as a "skip" signal and there were no other error
in an error set, that's why the log was here. I simply forgot to remove
that when I added other error values.
Shota FUJI
authored at
Shota FUJI
comitted at
64f0da64Event type arguments for list command
I initially thought these args affects every command. Turned out, only
"list" and "wait" commands use those args. That's why I set those as
command options rather than global options. This time, I choose
correctness and user-friendliness over backwards-compatibility.
Shota FUJI
authored at
Shota FUJI
comitted at
1927160cFix incorrect sunrise/sunset calculation on non-UTC timezone
Shota FUJI
authored at
Shota FUJI
comitted at
304fec8bFix invalid CLI argument does not abort parsing
Invalid argument, such as "d foo" should abort and prints usage error.
Shota FUJI
authored at
Shota FUJI
comitted at
4a52d259Run "print_list" on "list" command
It does not work correctly because the default value of `target_time`
being the same as `now` instead of "start of the day of `now`."
Anyway, the command prints something and exits with expected status.
That's okay for now.
Shota FUJI
authored at
Shota FUJI
comitted at
66781b3dFix lat/lon accepts negative number with suffix
Values like -1.2345N are illegal and confusing. As I've added
"--latitude" and "--longitude" options, there are no need for supporting
negative suffixed values.
Shota FUJI
authored at
Shota FUJI
comitted at
c5402dc6Add --latitude and --longitude options
This is obvious and less error-prone. I'm gonna keep non-flag variants
for compatibility.
Shota FUJI
authored at
Shota FUJI
comitted at
74ebda97Defer getting now/target time
CLI does not take argument for "now". Also "target" defaults to "now".
Shota FUJI
authored at
Shota FUJI
comitted at