timr 0.3.0 → 0.4.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.
- checksums.yaml +4 -4
- data/.ackrc +9 -0
- data/.editorconfig +1 -0
- data/.env.example +7 -0
- data/.github/CONTRIBUTING.md +32 -0
- data/.github/ISSUE_TEMPLATE.md +13 -0
- data/.gitignore +8 -2
- data/.rdoc_options +21 -0
- data/.travis.yml +10 -7
- data/Gemfile +8 -0
- data/README.md +216 -3
- data/bin/.gitignore +2 -0
- data/bin/README.md +17 -0
- data/bin/build.sh +14 -0
- data/bin/build_api.sh +14 -0
- data/bin/build_coverage.sh +23 -0
- data/bin/build_info.sh +27 -0
- data/bin/build_man.sh +41 -0
- data/bin/clean.sh +14 -0
- data/bin/dev_setup.sh +19 -0
- data/bin/install.sh +49 -0
- data/bin/publish +38 -0
- data/bin/release.sh +35 -0
- data/bin/test.sh +19 -0
- data/bin/timr +20 -40
- data/bin/timr_bash_completion.sh +337 -0
- data/bin/uninstall.sh +24 -0
- data/lib/timr.rb +36 -8
- data/lib/timr/command/basic_command.rb +170 -0
- data/lib/timr/command/continue_command.rb +86 -0
- data/lib/timr/command/help_command.rb +137 -0
- data/lib/timr/command/log_command.rb +297 -0
- data/lib/timr/command/pause_command.rb +89 -0
- data/lib/timr/command/pop_command.rb +176 -0
- data/lib/timr/command/push_command.rb +141 -0
- data/lib/timr/command/report_command.rb +689 -0
- data/lib/timr/command/start_command.rb +172 -0
- data/lib/timr/command/status_command.rb +198 -0
- data/lib/timr/command/stop_command.rb +127 -0
- data/lib/timr/command/task_command.rb +318 -0
- data/lib/timr/command/track_command.rb +381 -0
- data/lib/timr/command/version_command.rb +18 -0
- data/lib/timr/duration.rb +159 -0
- data/lib/timr/exception/timr_error.rb +113 -0
- data/lib/timr/ext/time.rb +12 -0
- data/lib/timr/helper/datetime_helper.rb +128 -0
- data/lib/timr/helper/terminal_helper.rb +58 -0
- data/lib/timr/helper/translation_helper.rb +45 -0
- data/lib/timr/model/basic_model.rb +287 -0
- data/lib/timr/model/config.rb +48 -0
- data/lib/timr/model/foreign_id_db.rb +84 -0
- data/lib/timr/model/stack.rb +161 -0
- data/lib/timr/model/task.rb +1039 -0
- data/lib/timr/model/track.rb +589 -0
- data/lib/timr/progressbar.rb +41 -0
- data/lib/timr/simple_opt_parser.rb +230 -0
- data/lib/timr/status.rb +70 -0
- data/lib/timr/table.rb +88 -0
- data/lib/timr/timr.rb +500 -558
- data/lib/timr/version.rb +4 -15
- data/man/.gitignore +2 -0
- data/man/_footer +3 -0
- data/man/timr-continue.1 +48 -0
- data/man/timr-continue.1.ronn +39 -0
- data/man/timr-ftime.7 +77 -0
- data/man/timr-ftime.7.ronn +57 -0
- data/man/timr-log.1 +109 -0
- data/man/timr-log.1.ronn +87 -0
- data/man/timr-pause.1 +56 -0
- data/man/timr-pause.1.ronn +45 -0
- data/man/timr-pop.1 +66 -0
- data/man/timr-pop.1.ronn +53 -0
- data/man/timr-push.1 +25 -0
- data/man/timr-push.1.ronn +20 -0
- data/man/timr-report.1 +228 -0
- data/man/timr-report.1.ronn +193 -0
- data/man/timr-start.1 +100 -0
- data/man/timr-start.1.ronn +82 -0
- data/man/timr-status.1 +53 -0
- data/man/timr-status.1.ronn +42 -0
- data/man/timr-stop.1 +75 -0
- data/man/timr-stop.1.ronn +60 -0
- data/man/timr-task.1 +147 -0
- data/man/timr-task.1.ronn +115 -0
- data/man/timr-track.1 +109 -0
- data/man/timr-track.1.ronn +89 -0
- data/man/timr.1 +119 -0
- data/man/timr.1.ronn +68 -0
- data/timr.gemspec +18 -3
- data/timr.sublime-project +20 -1
- metadata +142 -23
- data/Makefile +0 -12
- data/Makefile.common +0 -56
- data/lib/timr/stack.rb +0 -81
- data/lib/timr/task.rb +0 -258
- data/lib/timr/track.rb +0 -167
- data/lib/timr/window.rb +0 -259
- data/lib/timr/window_help.rb +0 -41
- data/lib/timr/window_tasks.rb +0 -30
- data/lib/timr/window_test.rb +0 -20
- data/lib/timr/window_timeline.rb +0 -33
- data/tests/tc_stack.rb +0 -121
- data/tests/tc_task.rb +0 -190
- data/tests/tc_track.rb +0 -144
- data/tests/tc_window.rb +0 -428
- data/tests/ts_all.rb +0 -6
@@ -0,0 +1,172 @@
|
|
1
|
+
|
2
|
+
require 'tempfile'
|
3
|
+
|
4
|
+
module TheFox
|
5
|
+
module Timr
|
6
|
+
module Command
|
7
|
+
|
8
|
+
# Start a new [Track](rdoc-ref:TheFox::Timr::Model::Track).
|
9
|
+
#
|
10
|
+
# Man page: [timr-start(1)](../../../../man/timr-start.1.html)
|
11
|
+
class StartCommand < BasicCommand
|
12
|
+
|
13
|
+
include TheFox::Timr::Model
|
14
|
+
include TheFox::Timr::Helper
|
15
|
+
include TheFox::Timr::Error
|
16
|
+
|
17
|
+
# Path to man page.
|
18
|
+
MAN_PATH = 'man/timr-start.1'
|
19
|
+
|
20
|
+
def initialize(argv = Array.new)
|
21
|
+
super()
|
22
|
+
|
23
|
+
@help_opt = false
|
24
|
+
|
25
|
+
@foreign_id_opt = nil
|
26
|
+
@name_opt = nil
|
27
|
+
@description_opt = nil
|
28
|
+
@estimation_opt = nil
|
29
|
+
|
30
|
+
@hourly_rate_opt = nil
|
31
|
+
@has_flat_rate_opt = nil
|
32
|
+
|
33
|
+
@date_opt = nil
|
34
|
+
@time_opt = nil
|
35
|
+
@message_opt = nil
|
36
|
+
@edit_opt = false
|
37
|
+
|
38
|
+
@task_id_opt = nil
|
39
|
+
@track_id_opt = nil
|
40
|
+
@id_opts = Array.new
|
41
|
+
|
42
|
+
loop_c = 0 # Limit the loop.
|
43
|
+
while loop_c < 1024 && argv.length > 0
|
44
|
+
loop_c += 1
|
45
|
+
arg = argv.shift
|
46
|
+
|
47
|
+
case arg
|
48
|
+
when '-h', '--help'
|
49
|
+
@help_opt = true
|
50
|
+
|
51
|
+
when '--id'
|
52
|
+
@foreign_id_opt = argv.shift.strip
|
53
|
+
when '-n', '--name'
|
54
|
+
@name_opt = argv.shift
|
55
|
+
when '--desc', '--description'
|
56
|
+
@description_opt = argv.shift
|
57
|
+
when '-e', '--est', '--estimation'
|
58
|
+
@estimation_opt = argv.shift
|
59
|
+
|
60
|
+
when '-r', '--hourly-rate'
|
61
|
+
@hourly_rate_opt = argv.shift
|
62
|
+
when '--fr', '--flat', '--flat-rate'
|
63
|
+
@has_flat_rate_opt = true
|
64
|
+
|
65
|
+
when '-d', '--date'
|
66
|
+
@date_opt = argv.shift
|
67
|
+
when '-t', '--time'
|
68
|
+
@time_opt = argv.shift
|
69
|
+
when '-m', '--message'
|
70
|
+
@message_opt = argv.shift
|
71
|
+
when '--edit'
|
72
|
+
@edit_opt = true
|
73
|
+
else
|
74
|
+
if arg[0] == '-'
|
75
|
+
raise StartCommandError, "Unknown argument '#{arg}'. See 'timr start --help'."
|
76
|
+
else
|
77
|
+
if @id_opts.length < 2
|
78
|
+
@id_opts << arg
|
79
|
+
else
|
80
|
+
raise StartCommandError, "Unknown argument '#{arg}'. See 'timr start --help'."
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
check_foreign_id(@foreign_id_opt)
|
87
|
+
|
88
|
+
if @id_opts.length
|
89
|
+
@task_id_opt, @track_id_opt = @id_opts
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
# See BasicCommand#run.
|
94
|
+
def run
|
95
|
+
if @help_opt
|
96
|
+
help
|
97
|
+
return
|
98
|
+
end
|
99
|
+
|
100
|
+
@timr = Timr.new(@cwd)
|
101
|
+
|
102
|
+
run_edit
|
103
|
+
|
104
|
+
options = {
|
105
|
+
:foreign_id => @foreign_id_opt,
|
106
|
+
:name => @name_opt,
|
107
|
+
:description => @description_opt,
|
108
|
+
:estimation => @estimation_opt,
|
109
|
+
|
110
|
+
:hourly_rate => @hourly_rate_opt,
|
111
|
+
:has_flat_rate => @has_flat_rate_opt,
|
112
|
+
|
113
|
+
:date => @date_opt,
|
114
|
+
:time => @time_opt,
|
115
|
+
:message => @message_opt,
|
116
|
+
|
117
|
+
:task_id => @task_id_opt,
|
118
|
+
:track_id => @track_id_opt,
|
119
|
+
}
|
120
|
+
|
121
|
+
track = @timr.start(options)
|
122
|
+
unless track
|
123
|
+
raise TrackError, 'Could not start a new Track.'
|
124
|
+
end
|
125
|
+
|
126
|
+
puts track.to_compact_str
|
127
|
+
puts @timr.stack
|
128
|
+
end
|
129
|
+
|
130
|
+
private
|
131
|
+
|
132
|
+
def help
|
133
|
+
puts 'usage: timr start [--id <str>]'
|
134
|
+
puts ' [-n|--name <name>] [--desc|--description <description>]'
|
135
|
+
puts ' [[-d|--date <date>] -t|--time <time>]'
|
136
|
+
puts ' [-m|--message <message>] [--edit] [--estimation <time>]'
|
137
|
+
puts ' [--hourly-rate <value>] [--flat-rate]'
|
138
|
+
puts ' [<task_id> [<track_id>]]'
|
139
|
+
puts ' or: timr start [-h|--help]'
|
140
|
+
puts
|
141
|
+
puts "Note: 'timr push' uses the same options."
|
142
|
+
puts
|
143
|
+
puts 'Task Options'
|
144
|
+
puts ' --id <str> Your ID to identify the Task.'
|
145
|
+
puts ' -n, --name <name> The name of the new Task.'
|
146
|
+
puts ' --desc, --description <str> Longer description of the new Task.'
|
147
|
+
puts ' -e, --est, --estimation <time> Task Estimation. See details below.'
|
148
|
+
puts ' -r, --hourly-rate <float> Set the Hourly Rate.'
|
149
|
+
puts ' --fr, --flat-rate, --flat Has Task a Flat Rate?'
|
150
|
+
puts
|
151
|
+
puts 'Track Options'
|
152
|
+
puts ' -m, --message <message> Track Message. What have you done?'
|
153
|
+
puts ' You can overwrite this on stop command.'
|
154
|
+
puts ' --edit Edit Track Message when providing <track_id>.'
|
155
|
+
puts ' EDITOR environment variable must be set.'
|
156
|
+
puts ' -d, --date <date> Track Start Date. Default: today'
|
157
|
+
puts ' -t, --time <time> Track Start Time. Default: now'
|
158
|
+
puts
|
159
|
+
puts 'Arguments'
|
160
|
+
HelpCommand.print_id_help
|
161
|
+
puts
|
162
|
+
HelpCommand.print_datetime_help
|
163
|
+
puts
|
164
|
+
HelpCommand.print_estimation_help
|
165
|
+
puts
|
166
|
+
end
|
167
|
+
|
168
|
+
end # class StartCommand
|
169
|
+
|
170
|
+
end # module Command
|
171
|
+
end # module Timr
|
172
|
+
end # module TheFox
|
@@ -0,0 +1,198 @@
|
|
1
|
+
|
2
|
+
require 'thefox-ext'
|
3
|
+
|
4
|
+
module TheFox
|
5
|
+
module Timr
|
6
|
+
module Command
|
7
|
+
|
8
|
+
# Print [Stack](rdoc-ref:TheFox::Timr::Model::Stack) Status.
|
9
|
+
#
|
10
|
+
# Man page: [timr-status(1)](../../../../man/timr-status.1.html)
|
11
|
+
class StatusCommand < BasicCommand
|
12
|
+
|
13
|
+
include TheFox::Timr::Error
|
14
|
+
|
15
|
+
# Path to man page.
|
16
|
+
MAN_PATH = 'man/timr-status.1'
|
17
|
+
|
18
|
+
def initialize(argv = Array.new)
|
19
|
+
super()
|
20
|
+
|
21
|
+
@help_opt = false
|
22
|
+
|
23
|
+
@verbose_opt = false
|
24
|
+
@full_opt = false
|
25
|
+
@reverse_opt = false
|
26
|
+
|
27
|
+
loop_c = 0 # Limit the loop.
|
28
|
+
while loop_c < 1024 && argv.length > 0
|
29
|
+
loop_c += 1
|
30
|
+
arg = argv.shift
|
31
|
+
|
32
|
+
case arg
|
33
|
+
when '-h', '--help'
|
34
|
+
@help_opt = true
|
35
|
+
when '-v', '--verbose'
|
36
|
+
@verbose_opt = true
|
37
|
+
when '-f', '--full'
|
38
|
+
@full_opt = true
|
39
|
+
when '-r', '--reverse'
|
40
|
+
@reverse_opt = true
|
41
|
+
else
|
42
|
+
raise StatusCommandError, "Unknown argument '#{arg}'. See 'timr stop --help'."
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# See BasicCommand#run.
|
48
|
+
def run
|
49
|
+
if @help_opt
|
50
|
+
help
|
51
|
+
return
|
52
|
+
end
|
53
|
+
|
54
|
+
@timr = Timr.new(@cwd)
|
55
|
+
|
56
|
+
if @full_opt
|
57
|
+
print_full_table
|
58
|
+
else
|
59
|
+
print_small_table
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
def print_small_table
|
66
|
+
headings = Array.new
|
67
|
+
headings << {:format => '%2s', :label => '##'}
|
68
|
+
headings << {:format => '%1s', :label => 'S'}
|
69
|
+
headings << {:format => '%-5s', :label => 'START', :padding_left => ' '}
|
70
|
+
headings << {:format => '%-5s', :label => 'END'}
|
71
|
+
headings << {:format => '%8s', :label => 'DUR', :padding_right => ' '}
|
72
|
+
if @verbose_opt
|
73
|
+
headings << {:format => '%7s', :label => 'EST', :padding_right => ' '}
|
74
|
+
headings << {:format => '%7s', :label => 'ETR', :padding_right => ' '}
|
75
|
+
headings << {:format => '%7s', :label => 'ETR%', :padding_right => ' '}
|
76
|
+
end
|
77
|
+
headings << {:format => '%-6s', :label => 'TASK', :padding_right => ' '}
|
78
|
+
headings << {:format => '%s', :label => 'TRACK'}
|
79
|
+
|
80
|
+
table_options = {
|
81
|
+
:headings => headings,
|
82
|
+
}
|
83
|
+
table = Table.new(table_options)
|
84
|
+
|
85
|
+
table_has_rows = false
|
86
|
+
track_c = 0
|
87
|
+
get_tracks.each do |track|
|
88
|
+
track_c += 1
|
89
|
+
table_has_rows = true
|
90
|
+
|
91
|
+
task = track.task
|
92
|
+
|
93
|
+
status = track.status.short_status
|
94
|
+
duration = track.duration
|
95
|
+
estimation_s = task.estimation_s
|
96
|
+
remaining_time_s = task.remaining_time_s
|
97
|
+
remaining_time_percent_s = task.remaining_time_percent_s
|
98
|
+
|
99
|
+
if track.begin_datetime
|
100
|
+
begin_datetime_s = track.begin_datetime_s({:format => '%H:%M'})
|
101
|
+
end
|
102
|
+
|
103
|
+
if track.end_datetime
|
104
|
+
end_datetime_s = track.end_datetime_s({:format => '%H:%M'})
|
105
|
+
end
|
106
|
+
|
107
|
+
row = Array.new
|
108
|
+
row << track_c
|
109
|
+
row << status
|
110
|
+
row << begin_datetime_s
|
111
|
+
row << end_datetime_s
|
112
|
+
row << duration.to_human
|
113
|
+
if @verbose_opt
|
114
|
+
row << estimation_s
|
115
|
+
row << remaining_time_s
|
116
|
+
row << remaining_time_percent_s
|
117
|
+
end
|
118
|
+
row << task.short_id
|
119
|
+
|
120
|
+
if @verbose_opt
|
121
|
+
row << '%s %s' % [track.short_id, track.title]
|
122
|
+
else
|
123
|
+
row << '%s %s' % [track.short_id, track.title(12)]
|
124
|
+
end
|
125
|
+
|
126
|
+
table << row
|
127
|
+
end
|
128
|
+
|
129
|
+
if table_has_rows
|
130
|
+
puts table
|
131
|
+
else
|
132
|
+
print_no_tracks
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
def print_full_table
|
137
|
+
tracks = Array.new
|
138
|
+
track_c = 0
|
139
|
+
get_tracks.each do |track|
|
140
|
+
track_c += 1
|
141
|
+
|
142
|
+
track_s = Array.new
|
143
|
+
track_s << '--- #%d ---' % [track_c]
|
144
|
+
track_s.concat(track.to_detailed_array)
|
145
|
+
tracks << track_s
|
146
|
+
end
|
147
|
+
|
148
|
+
if tracks.count > 0
|
149
|
+
puts tracks.map{ |track_s| track_s.join("\n") }.join("\n\n")
|
150
|
+
else
|
151
|
+
print_no_tracks
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def print_no_tracks
|
156
|
+
puts 'There is no running Track.'
|
157
|
+
end
|
158
|
+
|
159
|
+
def get_tracks
|
160
|
+
if @reverse_opt
|
161
|
+
@timr.stack.tracks.reverse
|
162
|
+
else
|
163
|
+
@timr.stack.tracks
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
def help
|
168
|
+
puts 'usage: timr status [-h|--help] [-f|--full] [-r|--reverse]'
|
169
|
+
puts
|
170
|
+
puts 'Options'
|
171
|
+
puts ' -v, --verbose Show more columns in table view.'
|
172
|
+
puts ' -f, --full Show full status.'
|
173
|
+
puts ' -r, --reverse Reverse the list.'
|
174
|
+
puts
|
175
|
+
puts 'Columns'
|
176
|
+
puts ' S Status'
|
177
|
+
puts ' START Track Start Date'
|
178
|
+
puts ' END Track End Date'
|
179
|
+
puts ' DUR Track Duration'
|
180
|
+
puts ' EST Task Estimation'
|
181
|
+
puts ' ETR Task Estimated Time Remaining'
|
182
|
+
puts ' ETR% Task Estimated Time Remaining in percent.'
|
183
|
+
puts ' TASK Task ID'
|
184
|
+
puts ' TRACK Track ID and Title.'
|
185
|
+
puts
|
186
|
+
puts 'Status'
|
187
|
+
puts ' R Running'
|
188
|
+
puts ' S Stopped'
|
189
|
+
puts ' U Unknown'
|
190
|
+
puts ' - Not started yet.'
|
191
|
+
puts
|
192
|
+
end
|
193
|
+
|
194
|
+
end # class StatusCommand
|
195
|
+
|
196
|
+
end # module Command
|
197
|
+
end # module Timr
|
198
|
+
end # module TheFox
|
@@ -0,0 +1,127 @@
|
|
1
|
+
|
2
|
+
module TheFox
|
3
|
+
module Timr
|
4
|
+
module Command
|
5
|
+
|
6
|
+
# Stop the current running [Track](rdoc-ref:TheFox::Timr::Model::Track).
|
7
|
+
#
|
8
|
+
# Man page: [timr-stop(1)](../../../../man/timr-stop.1.html)
|
9
|
+
class StopCommand < BasicCommand
|
10
|
+
|
11
|
+
include TheFox::Timr::Helper
|
12
|
+
include TheFox::Timr::Error
|
13
|
+
|
14
|
+
# Path to man page.
|
15
|
+
MAN_PATH = 'man/timr-stop.1'
|
16
|
+
|
17
|
+
def initialize(argv = Array.new)
|
18
|
+
super()
|
19
|
+
|
20
|
+
@help_opt = false
|
21
|
+
|
22
|
+
@start_date_opt = nil
|
23
|
+
@start_time_opt = nil
|
24
|
+
@end_date_opt = nil
|
25
|
+
@end_time_opt = nil
|
26
|
+
|
27
|
+
@message_opt = nil
|
28
|
+
@edit_opt = false
|
29
|
+
|
30
|
+
loop_c = 0 # Limit the loop.
|
31
|
+
while loop_c < 1024 && argv.length > 0
|
32
|
+
loop_c += 1
|
33
|
+
arg = argv.shift
|
34
|
+
|
35
|
+
case arg
|
36
|
+
when '-h', '--help'
|
37
|
+
@help_opt = true
|
38
|
+
|
39
|
+
when '--sd', '--start-date'
|
40
|
+
@start_date_opt = argv.shift
|
41
|
+
when '--st', '--start-time'
|
42
|
+
@start_time_opt = argv.shift
|
43
|
+
|
44
|
+
when '--ed', '--end-date', '-d', '--date'
|
45
|
+
@end_date_opt = argv.shift
|
46
|
+
when '--et', '--end-time', '-t', '--time'
|
47
|
+
@end_time_opt = argv.shift
|
48
|
+
|
49
|
+
when '-m', '--message'
|
50
|
+
@message_opt = argv.shift
|
51
|
+
when '--edit'
|
52
|
+
@edit_opt = true
|
53
|
+
else
|
54
|
+
raise StopCommandError, "Unknown argument '#{arg}'. See 'timr stop --help'."
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# See BasicCommand#run.
|
60
|
+
def run
|
61
|
+
if @help_opt
|
62
|
+
help
|
63
|
+
return
|
64
|
+
end
|
65
|
+
|
66
|
+
@timr = Timr.new(@cwd)
|
67
|
+
|
68
|
+
track = @timr.stack.current_track
|
69
|
+
if track
|
70
|
+
task = track.task
|
71
|
+
if task
|
72
|
+
run_edit(task.id, track.id)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
options = {
|
77
|
+
:start_date => @start_date_opt,
|
78
|
+
:start_time => @start_time_opt,
|
79
|
+
|
80
|
+
:end_date => @end_date_opt,
|
81
|
+
:end_time => @end_time_opt,
|
82
|
+
|
83
|
+
:message => @message_opt,
|
84
|
+
}
|
85
|
+
|
86
|
+
track = @timr.stop(options)
|
87
|
+
unless track
|
88
|
+
puts 'No running Track to stop.'
|
89
|
+
return
|
90
|
+
end
|
91
|
+
|
92
|
+
puts track.to_compact_str
|
93
|
+
puts @timr.stack
|
94
|
+
end
|
95
|
+
|
96
|
+
private
|
97
|
+
|
98
|
+
def help
|
99
|
+
puts 'usage: timr stop [-m|--message <message>] [--edit]'
|
100
|
+
puts ' [[--start-date <date>] --start-time <time>]'
|
101
|
+
puts ' [-d|--date <date>] [-t|--time <time>]'
|
102
|
+
puts ' or: timr stop [-h|--help]'
|
103
|
+
puts
|
104
|
+
puts 'Track Options'
|
105
|
+
puts ' -m, --message <message> Track Message. What have you done? This will'
|
106
|
+
puts ' overwrite the start message. See --edit option.'
|
107
|
+
puts ' --edit Edit Track Message.'
|
108
|
+
puts ' EDITOR environment variable must be set.'
|
109
|
+
puts
|
110
|
+
puts ' --sd, --start-date <date> Overwrite the Start date.'
|
111
|
+
puts ' --st, --start-time <time> Overwrite the Start time.'
|
112
|
+
puts
|
113
|
+
puts ' --ed, --end-date <date> Track End Date. Default: today'
|
114
|
+
puts ' --et, --end-time <time> Track End Time. Default: now'
|
115
|
+
puts
|
116
|
+
puts ' -d, --date <date> --end-date alias.'
|
117
|
+
puts ' -t, --time <time> --end-time alias.'
|
118
|
+
puts
|
119
|
+
HelpCommand.print_datetime_help
|
120
|
+
puts
|
121
|
+
end
|
122
|
+
|
123
|
+
end # class StopCommand
|
124
|
+
|
125
|
+
end # module Command
|
126
|
+
end # module Timr
|
127
|
+
end # module TheFox
|