sunwait

Commits at dbc36d1ee82fc4d83c38589e14298d59df935d06

  1. dbc36d1e Use custom iterator for CLI args `std.process.ArgIterator` directly reads from process, so it's impossible to test args parsing using it. Shota FUJI authored at Shota FUJI comitted at
  2. 89744f6b Add tzdata as depedency of the Nix package Nix + libc has fundamental design flaw on TZ loading: <https://github.com./NixOS/nixpkgs/issues/65415> Glibc looks "<its own store>/share/zoneinfo" on TZ lookup, and as it itself does not contain timezone data, every timezone functionality will be broken by treating every timezone as UTC. This won't be a problem on NixOS as it sets $TZDIR environment variable. However, non-NixOS system without $TZDIR faces this problem. For this reason, every program uses libc datetime function must declare tzdata dependency. Shota FUJI authored at Shota FUJI comitted at
  3. b3335f9f Add temporary "--now" option for "report" command This is for snapshotting. Shota FUJI authored at Shota FUJI comitted at
  4. 7f990b65 Add "--at" option to "poll" command For testing. Shota FUJI authored at Shota FUJI comitted at
  5. 72e50fd3 Fix timeout calculation applied in inverted way That fucking variable negates timezone offset for some unknown reason (probably American programming this time too.) Shota FUJI authored at Shota FUJI comitted at
  6. 200c24e2 Fix test changes its snapshot day to day Due to lack of "--from", test result differs depends on the date test ran. Shota FUJI authored at Shota FUJI comitted at
  7. c60756e3 Remove snapshot test for "version" command It was there as a demo. Shota FUJI authored at Shota FUJI comitted at
  8. f690ac25 Add "--from" option to "list" command It was nearly impossible to test due to reference to the system time. Shota FUJI authored at Shota FUJI comitted at
  9. 08f471e4 Setup 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
  10. 6c53f057 Add E2E test for incorrect CLI usage Shota FUJI authored at Shota FUJI comitted at
  11. 4cc8a62f E2E 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
  12. 7d352678 Add --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
  13. 18912188 Separate 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
  14. f20b6a42 Fix grammar on help message Shota FUJI authored at Shota FUJI comitted at
  15. 8f2024a8 Update 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
  16. 237048ce Document how to build man page Shota FUJI authored at Shota FUJI comitted at
  17. 5b18e92e Defaults to the new Zig CLI Every functionality I'm aware of has been migrated. Shota FUJI authored at Shota FUJI comitted at
  18. b1606ed6 Add examples in original USAGE.txt as behavior tests Final check. Shota FUJI authored at Shota FUJI comitted at
  19. 37828fd1 Wait command No behavior tests for this. How should I do CLI program that performs `sleep()`? Shota FUJI authored at Shota FUJI comitted at
  20. fea537ab Offset CLI argument Shota FUJI authored at Shota FUJI comitted at
  21. bdb74658 Fix incorrect offset usage in man page Shota FUJI authored at Shota FUJI comitted at
  22. 024f9127 Fix 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
  23. 30ddee1c Twilight angle CLI argument Shota FUJI authored at Shota FUJI comitted at
  24. 64f0da64 Event 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
  25. 1927160c Fix incorrect sunrise/sunset calculation on non-UTC timezone Shota FUJI authored at Shota FUJI comitted at
  26. 304fec8b Fix 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
  27. 5be27e01 Parse date args on "report" command Shota FUJI authored at Shota FUJI comitted at
  28. 8e71843d Call "generate_report" on report command Shota FUJI authored at Shota FUJI comitted at
  29. 88c46686 Support hyphen-less "utc" flag Required for behavior matching tests. Shota FUJI authored at Shota FUJI comitted at
  30. f272abe2 Set correct default value for "targetTimet" Shota FUJI authored at Shota FUJI comitted at
  31. 4a52d259 Run "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
  32. 66781b3d Fix 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
  33. c5402dc6 Add --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
  34. 74ebda97 Defer getting now/target time CLI does not take argument for "now". Also "target" defaults to "now". Shota FUJI authored at Shota FUJI comitted at
  35. 7b4e63f6 Print poll result to stdout Shota FUJI authored at Shota FUJI comitted at
  36. f2ec1ae9 Parse latitude and longitude CLI args Shota FUJI authored at Shota FUJI comitted at
  37. a3e7b62b Support command argument Shota FUJI authored at Shota FUJI comitted at
  38. 8249d378 UTC flag Instead of "--utc" being an alias for "--gmt", I swapped those too. Shota FUJI authored at Shota FUJI comitted at
  39. d3848966 Debug flag I did not added "verbose" alias because it's incorrect--the "debug" flag shortens wait time and that's not "verbose" or not. Shortening wait time is not appropriate for "--debug" too, but never it is verbosity. The original version also has "-v" alias in flag handling code, but it won't be handled because "version" flag has "-v" alias and it captures the arg eariler. Shota FUJI authored at Shota FUJI comitted at
  40. dab5ef6c Add help flag to Zig main Shota FUJI authored at Shota FUJI comitted at
  41. 81427ae9 Implement version flag to Zig main Shota FUJI authored at Shota FUJI comitted at
  42. 0f68071e Skip tests for features not implemented yet Errors are so noisy. Shota FUJI authored at Shota FUJI comitted at
  43. c6acef26 Add behavior matching tests to build system This allows me to develop new CLI main in a more TDD-ish way. Shota FUJI authored at Shota FUJI comitted at
  44. 8ffc19d7 Add Zig main The most painful point of this software is it's CLI design. Unstructured flags and surprising behaviors. The biggest reason I forked is to rewrite the CLI frontend. Shota FUJI authored at Shota FUJI comitted at
  45. b4e9177a Remove unused annotation from REUSE.toml The REUSE tool won't complain unexistent file path, though. This is just a cleanup. Shota FUJI authored at Shota FUJI comitted at
  46. 2af7c1d7 Man page for sunwait(1) It is more readable than plain text and more familiar to many people. Shota FUJI authored at Shota FUJI comitted at
  47. ceec2038 Configure Zig build system I hate C toolchains. I mean, cryptic warnings and errors they outputs. My current plan is to gradually replacing C with Zig, starting from "main" function. Shota FUJI authored at Shota FUJI comitted at
  48. 5e88a06b Create copyright and license file for current files File format and directory structure follows REUSE 3.3 specification. <https://reuse.software/spec-3.3/> Copyright texts are from actual source code. README file does not include neither copyright nor license text. I choose GPL-3.0-only rather than GPL-3.0-or-later because: * no file but LICENSE contains "or any later version", which indicates GPL-3.0-or-later * GPL-3.0-only looks safer, as GPL-3.0-or-later technically widens license without copyright holder's permission. I plan to gradually rewrite/replace every file so...I hope I can remove this REUSE.toml file in a future. Shota FUJI authored at Shota FUJI comitted at
  49. dca3da5a Delete Visual Studio config files Why? Shota FUJI authored at Shota FUJI comitted at
  50. 4a43b712 Remove openwrt/ directory I'm not willing to keep build configs for copy and paste "SDK." Shota FUJI authored at Shota FUJI comitted at
  51. 151d8340 Switch to C++ to C. Thanks Michael Stilkerich; I never liked C++ anyway. Dan Risacher authored at Dan Risacher comitted at
  52. 49f9a3f1 random tech-debt and harmonization changes Dan Risacher authored at Dan Risacher comitted at
  53. d282e985 Bump version number to include syntax fix Dan Risacher authored at Dan Risacher comitted at
  54. 691e85f7 fix a weird syntax error. How did this ever work? Dan Risacher authored at Dan Risacher comitted at
  55. d750d22c Merge pull request #29 from linuxkidd/master Fix unused computed valued warning during sunwait.cpp compile. Daniel Risacher authored at GitHub comitted at
  56. 39a8d864 Merge pull request #31 from ckuethe/patch-1 document use of an arbitrary date specification Daniel Risacher authored at GitHub comitted at
  57. e552a206 Merge pull request #28 from allanlaal/patch-1 ADD standard(ish) unixy command line flags Daniel Risacher authored at GitHub comitted at
  58. 102cb417 Merge pull request #7 from kadorken/master Add build procedure/solution for windows and linux in visual studio 2019 Daniel Risacher authored at GitHub comitted at
  59. 5facc0ee Merge pull request #11 from ahorn42/master Fix for make clean error, if the folder was already deleted or not yet created Daniel Risacher authored at GitHub comitted at
  60. 8b33f470 Merge pull request #9 from danieldjewell/fix_report_targetTime Fix error in print.cpp in displaying target time Daniel Risacher authored at GitHub comitted at
  61. 58d7db58 Merge pull request #8 from hardija/master Fixed typo "Diurnal" Daniel Risacher authored at GitHub comitted at
  62. 81cb0da8 Merge pull request #13 from lbdroid/master Add Makefile and instructions for OpenWRT Daniel Risacher authored at GitHub comitted at
  63. 973ac45e Merge pull request #15 from tljohnsn/master Fix build errors on osx Daniel Risacher authored at GitHub comitted at
  64. 7326b53e add USAGE.txt Daniel Risacher authored at Daniel Risacher comitted at
  65. b6fdeff2 Merge branch 'master' of https://github.com/risacher/sunwait Daniel Risacher authored at Daniel Risacher comitted at
  66. ddb63faa Fix daylight savings time bug noticed by Phos Quartz Daniel Risacher authored at Daniel Risacher comitted at
  67. 38ac8a2f Initial import Daniel Risacher authored at Daniel Risacher comitted at
  68. 7eb967d0 Initial commit Daniel Risacher authored at GitHub comitted at
  69. a5761394 Update README.md Updated README Daniel Risacher authored at GitHub comitted at
  70. e2e23429 Abs and default location Trent Johnsn authored at Trent Johnsn comitted at
  71. 5a7180e4 Abs and default location Trent Johnsn authored at Trent Johnsn comitted at
  72. 1a7226c0 Fix build errors on osx tljohnsn authored at tljohnsn comitted at
  73. 75428ae5 Add Makefile and instructions for OpenWRT lbdroid authored at lbdroid comitted at
  74. 2a08a067 Merge branch 'master' of github.com:hardija/sunwait Jeff Harding authored at Jeff Harding comitted at
  75. bdb63a81 Added examples with local lat/long Jeff Harding authored at Jeff Harding comitted at
  76. c24f8aac Fixed typo "Diurnal" Jeff Harding authored at Jeff Harding comitted at
  77. 6f738fd1 Fix error in print.cpp in displaying target time The "nowTm" struct was being used for the target time data in report Daniel Jewell authored at Daniel Jewell comitted at
  78. c10f2538 added -f to rm, to avoid errors if the sunwait folder was already removed or is not existent Andreas Horn authored at Andreas Horn comitted at
  79. 0a3d05e6 Change configuration to build both windows and ARM version Keith Dorken authored at Keith Dorken comitted at
  80. 8c8099c4 Add linux version for crosscompiling to RaspberryPi Keith Dorken authored at Keith Dorken comitted at
  81. d9c44bd3 Add visual studio 2019 solution/project to build for windows. Keith Dorken authored at Keith Dorken comitted at
  82. 22b741a6 ADD standard(ish) unixy command line flags --version --verbose --help ..and their shortened versions Allan Laal authored at GitHub comitted at
  83. 86bea75e document use of an arbitrary date specification Chris Kuethe authored at GitHub comitted at
  84. 3cf77ee1 Fix unused variable warning during compile. Michael J. Kidd authored at Michael J. Kidd comitted at