wheneverd 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +26 -0
  3. data/.rubocop.yml +41 -0
  4. data/.yardopts +8 -0
  5. data/AGENTS.md +42 -0
  6. data/CHANGELOG.md +28 -0
  7. data/FEATURE_SUMMARY.md +38 -0
  8. data/Gemfile +16 -0
  9. data/Gemfile.lock +129 -0
  10. data/LICENSE +21 -0
  11. data/README.md +204 -0
  12. data/Rakefile +196 -0
  13. data/bin/console +8 -0
  14. data/bin/setup +5 -0
  15. data/exe/wheneverd +9 -0
  16. data/lib/wheneverd/cli/activate.rb +19 -0
  17. data/lib/wheneverd/cli/current.rb +22 -0
  18. data/lib/wheneverd/cli/deactivate.rb +19 -0
  19. data/lib/wheneverd/cli/delete.rb +20 -0
  20. data/lib/wheneverd/cli/help.rb +18 -0
  21. data/lib/wheneverd/cli/init.rb +78 -0
  22. data/lib/wheneverd/cli/reload.rb +40 -0
  23. data/lib/wheneverd/cli/show.rb +23 -0
  24. data/lib/wheneverd/cli/write.rb +32 -0
  25. data/lib/wheneverd/cli.rb +87 -0
  26. data/lib/wheneverd/core_ext/numeric_duration.rb +56 -0
  27. data/lib/wheneverd/dsl/at_normalizer.rb +48 -0
  28. data/lib/wheneverd/dsl/calendar_symbol_period_list.rb +42 -0
  29. data/lib/wheneverd/dsl/context.rb +72 -0
  30. data/lib/wheneverd/dsl/errors.rb +29 -0
  31. data/lib/wheneverd/dsl/loader.rb +49 -0
  32. data/lib/wheneverd/dsl/period_parser.rb +135 -0
  33. data/lib/wheneverd/duration.rb +27 -0
  34. data/lib/wheneverd/entry.rb +31 -0
  35. data/lib/wheneverd/errors.rb +9 -0
  36. data/lib/wheneverd/interval.rb +37 -0
  37. data/lib/wheneverd/job/command.rb +29 -0
  38. data/lib/wheneverd/schedule.rb +25 -0
  39. data/lib/wheneverd/systemd/calendar_spec.rb +109 -0
  40. data/lib/wheneverd/systemd/cron_parser.rb +352 -0
  41. data/lib/wheneverd/systemd/errors.rb +23 -0
  42. data/lib/wheneverd/systemd/renderer.rb +153 -0
  43. data/lib/wheneverd/systemd/systemctl.rb +38 -0
  44. data/lib/wheneverd/systemd/time_parser.rb +75 -0
  45. data/lib/wheneverd/systemd/unit_deleter.rb +64 -0
  46. data/lib/wheneverd/systemd/unit_lister.rb +59 -0
  47. data/lib/wheneverd/systemd/unit_namer.rb +69 -0
  48. data/lib/wheneverd/systemd/unit_writer.rb +132 -0
  49. data/lib/wheneverd/trigger/boot.rb +26 -0
  50. data/lib/wheneverd/trigger/calendar.rb +26 -0
  51. data/lib/wheneverd/trigger/interval.rb +30 -0
  52. data/lib/wheneverd/version.rb +6 -0
  53. data/lib/wheneverd.rb +41 -0
  54. data/test/cli_activate_test.rb +110 -0
  55. data/test/cli_current_test.rb +94 -0
  56. data/test/cli_deactivate_test.rb +111 -0
  57. data/test/cli_end_to_end_test.rb +98 -0
  58. data/test/cli_reload_test.rb +132 -0
  59. data/test/cli_systemctl_integration_test.rb +76 -0
  60. data/test/cli_systemd_analyze_test.rb +64 -0
  61. data/test/cli_test.rb +332 -0
  62. data/test/domain_model_test.rb +108 -0
  63. data/test/dsl_calendar_symbol_period_list_test.rb +53 -0
  64. data/test/dsl_loader_test.rb +384 -0
  65. data/test/support/cli_subprocess_test_helpers.rb +38 -0
  66. data/test/support/cli_test_helpers.rb +114 -0
  67. data/test/systemd_calendar_spec_test.rb +45 -0
  68. data/test/systemd_cron_parser_test.rb +114 -0
  69. data/test/systemd_renderer_errors_test.rb +85 -0
  70. data/test/systemd_renderer_test.rb +161 -0
  71. data/test/systemd_systemctl_test.rb +46 -0
  72. data/test/systemd_time_parser_test.rb +25 -0
  73. data/test/systemd_unit_deleter_test.rb +83 -0
  74. data/test/systemd_unit_writer_prune_test.rb +85 -0
  75. data/test/systemd_unit_writer_test.rb +71 -0
  76. data/test/test_helper.rb +34 -0
  77. data/test/wheneverd_test.rb +9 -0
  78. data/wheneverd.gemspec +35 -0
  79. metadata +136 -0
metadata ADDED
@@ -0,0 +1,136 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wheneverd
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Dr. Samuel Goebert
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: clamp
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.3'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.3'
26
+ description: Generates systemd timer/service units from a Ruby DSL, similar in spirit
27
+ to the whenever gem for cron.
28
+ email:
29
+ - maintainers@example.com
30
+ executables:
31
+ - wheneverd
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - ".gitignore"
36
+ - ".rubocop.yml"
37
+ - ".yardopts"
38
+ - AGENTS.md
39
+ - CHANGELOG.md
40
+ - FEATURE_SUMMARY.md
41
+ - Gemfile
42
+ - Gemfile.lock
43
+ - LICENSE
44
+ - README.md
45
+ - Rakefile
46
+ - bin/console
47
+ - bin/setup
48
+ - exe/wheneverd
49
+ - lib/wheneverd.rb
50
+ - lib/wheneverd/cli.rb
51
+ - lib/wheneverd/cli/activate.rb
52
+ - lib/wheneverd/cli/current.rb
53
+ - lib/wheneverd/cli/deactivate.rb
54
+ - lib/wheneverd/cli/delete.rb
55
+ - lib/wheneverd/cli/help.rb
56
+ - lib/wheneverd/cli/init.rb
57
+ - lib/wheneverd/cli/reload.rb
58
+ - lib/wheneverd/cli/show.rb
59
+ - lib/wheneverd/cli/write.rb
60
+ - lib/wheneverd/core_ext/numeric_duration.rb
61
+ - lib/wheneverd/dsl/at_normalizer.rb
62
+ - lib/wheneverd/dsl/calendar_symbol_period_list.rb
63
+ - lib/wheneverd/dsl/context.rb
64
+ - lib/wheneverd/dsl/errors.rb
65
+ - lib/wheneverd/dsl/loader.rb
66
+ - lib/wheneverd/dsl/period_parser.rb
67
+ - lib/wheneverd/duration.rb
68
+ - lib/wheneverd/entry.rb
69
+ - lib/wheneverd/errors.rb
70
+ - lib/wheneverd/interval.rb
71
+ - lib/wheneverd/job/command.rb
72
+ - lib/wheneverd/schedule.rb
73
+ - lib/wheneverd/systemd/calendar_spec.rb
74
+ - lib/wheneverd/systemd/cron_parser.rb
75
+ - lib/wheneverd/systemd/errors.rb
76
+ - lib/wheneverd/systemd/renderer.rb
77
+ - lib/wheneverd/systemd/systemctl.rb
78
+ - lib/wheneverd/systemd/time_parser.rb
79
+ - lib/wheneverd/systemd/unit_deleter.rb
80
+ - lib/wheneverd/systemd/unit_lister.rb
81
+ - lib/wheneverd/systemd/unit_namer.rb
82
+ - lib/wheneverd/systemd/unit_writer.rb
83
+ - lib/wheneverd/trigger/boot.rb
84
+ - lib/wheneverd/trigger/calendar.rb
85
+ - lib/wheneverd/trigger/interval.rb
86
+ - lib/wheneverd/version.rb
87
+ - test/cli_activate_test.rb
88
+ - test/cli_current_test.rb
89
+ - test/cli_deactivate_test.rb
90
+ - test/cli_end_to_end_test.rb
91
+ - test/cli_reload_test.rb
92
+ - test/cli_systemctl_integration_test.rb
93
+ - test/cli_systemd_analyze_test.rb
94
+ - test/cli_test.rb
95
+ - test/domain_model_test.rb
96
+ - test/dsl_calendar_symbol_period_list_test.rb
97
+ - test/dsl_loader_test.rb
98
+ - test/support/cli_subprocess_test_helpers.rb
99
+ - test/support/cli_test_helpers.rb
100
+ - test/systemd_calendar_spec_test.rb
101
+ - test/systemd_cron_parser_test.rb
102
+ - test/systemd_renderer_errors_test.rb
103
+ - test/systemd_renderer_test.rb
104
+ - test/systemd_systemctl_test.rb
105
+ - test/systemd_time_parser_test.rb
106
+ - test/systemd_unit_deleter_test.rb
107
+ - test/systemd_unit_writer_prune_test.rb
108
+ - test/systemd_unit_writer_test.rb
109
+ - test/test_helper.rb
110
+ - test/wheneverd_test.rb
111
+ - wheneverd.gemspec
112
+ homepage: https://github.com/bigcurl/wheneverd
113
+ licenses:
114
+ - MIT
115
+ metadata:
116
+ source_code_uri: https://github.com/bigcurl/wheneverd
117
+ changelog_uri: https://github.com/bigcurl/wheneverd/blob/main/CHANGELOG.md
118
+ rubygems_mfa_required: 'true'
119
+ rdoc_options: []
120
+ require_paths:
121
+ - lib
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: 2.7.0
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ requirements: []
133
+ rubygems_version: 4.0.3
134
+ specification_version: 4
135
+ summary: Wheneverd is to systemd timers what whenever is to cron.
136
+ test_files: []