diff options
| author | Zack Hobson | 2014-02-04 09:24:34 -0800 | 
|---|---|---|
| committer | Zack Hobson | 2014-02-04 09:30:28 -0800 | 
| commit | 855e636b96740de63e70f870113ed8fb785eb0c1 (patch) | |
| tree | d0f7f47ccbc486f5e9e432fb6de9e15c6189928c | |
| parent | 4793f74ff23cd4cbb2c46498aadef8fdf4d6030a (diff) | |
| download | hcl-855e636b96740de63e70f870113ed8fb785eb0c1.tar.bz2 | |
generate manpage from README
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | README.markdown | 8 | ||||
| -rw-r--r-- | Rakefile | 13 | ||||
| -rw-r--r-- | man/hcl.1.ronn | 176 | 
4 files changed, 19 insertions, 179 deletions
| @@ -9,3 +9,4 @@ doc  coverage  test/dot_hcl  *.1 +man/hcl.1.ronn diff --git a/README.markdown b/README.markdown index e819bfd..0e11288 100644 --- a/README.markdown +++ b/README.markdown @@ -11,7 +11,7 @@ HCl is a command-line tool for interacting with Harvest time sheets using the  [htt]: http://www.getharvest.com/api/time_tracking  [rdoc]: http://rdoc.info/github/zenhob/hcl/file/README.markdown -## Quick Start +## GETTING STARTED  You can install hcl directly from rubygems.org: @@ -21,7 +21,7 @@ or you can install from source:      rake install -## Usage +## SYNOPSIS      hcl [start] @<task_alias> [+<time>] [<message>]      hcl note <message> @@ -37,6 +37,8 @@ or you can install from source:      hcl config      hcl status +## DESCRIPTION +  ### Available Projects and Tasks  To start a new timer you need to identify the project and task. @@ -184,7 +186,7 @@ current response time, along with a timestamp of when it was last tested.  [status API]: http://harveststatus.com/status_api -## Author +## AUTHOR  HCl was designed and implemented by [Zack Hobson][zgh]. @@ -10,15 +10,28 @@ Rake::TestTask.new do |t|  end  task :default => :test +# process the README into a manual page using ronn  require 'ronn'  task :man do    print "Writing manual page..." +  readme = File.read('README.markdown') +  head, content = readme.split("## SYNOPSIS\n") +  content.prepend <<-END +hcl(1) -- Track time with Harvest time sheets +============================================= + +## SYNOPSIS +  END +  FileUtils.mkdir_p('man') +  File.write('man/hcl.1.ronn', content)    File.open('man/hcl.1','w').tap do |man|      man.write Ronn::Document.new('man/hcl.1.ronn').to_roff    end    puts "done."  end  task 'build:gem' => [:man] +task 'install' => [:man] +task 'release' => [:man]  require 'yard'  YARD::Rake::YardocTask.new diff --git a/man/hcl.1.ronn b/man/hcl.1.ronn deleted file mode 100644 index 22756a0..0000000 --- a/man/hcl.1.ronn +++ /dev/null @@ -1,176 +0,0 @@ -hcl(1) -- Track time with Harvest time sheets -============================================= - -## SYNOPSIS - -    hcl [start] @<task_alias> [+<time>] [<message>] -    hcl note <message> -    hcl stop [<message>] -    hcl resume [@<task_alias>] -    hcl log @<task_alias> [+<time>] [<message>] -    hcl show [<date>] -    hcl tasks [<project_code>] -    hcl alias <task_alias> <project_id> <task_id> -    hcl unalias <task_alias> -    hcl aliases -    hcl (cancel | nvm | oops) -    hcl config -    hcl status - -## DESCRIPTION - -HCl is a command-line tool for interacting with Harvest time sheets using the -Harvest time tracking API. - -### Available Projects and Tasks - -To start a new timer you need to identify the project and task. -The tasks command displays a list of available tasks with their -project and task IDs. - -    hcl tasks - -You can also pass a project code (this is the short optional code associated -with each project) to list only the tasks for that project. - -### Starting a Timer - -Since it's not practical to enter two long numbers every time you want to -identify a task, HCl supports task aliases: - -    hcl alias tacodev 1234 5678 -    hcl @tacodev Adding a new feature - -### Starting a Timer with Initial Time - -You can also provide an initial time when starting a new timer. -This can be expressed in floating-point or HH:MM. The following two -commands are equivalent: - -    hcl @tacodev +0:15 Doing some stuff -    hcl +.25 @tacodev Doing some stuff - -### Adding Notes to a Running Task - -While a task is running you can append lines to the task notes: - -    hcl note Then I did something else - -**Note** that `show` only displays the last line of the timer notes. -You can list all the notes for a running timer by issuing the note -command without any arguments: - -    hcl note - -### Stopping a Timer - -The following command will stop a running timer (currently only one timer at -a time is supported). You can provide a message when stopping a timer as -well: - -    hcl stop All done doing things - -### Resuming a Timer - -You can resume a stopped timer. Specify a task to resume the last timer -for that task: - -    hcl resume -    hcl resume @xdev - -### Canceling a Timer - -If you accidentally started a timer that you didn't mean to, you can cancel -it: - -    hcl cancel - -This will delete the running timer, or the last-updated timer if one isn't -running. You can also use `nvm` or `oops` instead of `cancel`. - -### Logging without Starting a Timer - -You can log time and notes without leaving a timer running. It takes -the same arguments as start: - -    hcl log @xdev +1 Worked for an hour. - -The above starts and immediately stops a one-hour timer with the given note. - -## ADVANCED USAGE - -### Bash Auto-completion of Task Aliases - -You can enable auto-completion of task aliases by adding this to your shell -configuration: - -    complete -W "`cat ~/.hcl/aliases`" hcl - -### Configuration Profiles - -You can modify your credentials with the `--reauth` option, and review them -with `hcl config`. If you'd rather store multiple configurations at -once, specify an alternate configuration directory in the environment as -`HCL_DIR`. This can be used to interact with multiple harvest accounts at -once. - -Here is a shell alias `myhcl` with a separate configuration from the -main `hcl` command, and another command to configure alias completion: - -    alias myhcl="env HCL_DIR=~/.myhcl hcl" -    complete -W "`cat ~/.myhcl/aliases`" myhcl - -Adding something like the above to your bashrc will enable a new command, -`myhcl`. When using `myhcl` you can use different credentials and aliases, -while `hcl` will continue to function with your original configuration. - -### Interactive Console - -An interactive Ruby console is provided to allow you to use the fairly -powerful Harvest API client built into HCl, since not all of its -features are exposed via the command line. The current {HCl::App} -instance is available as `hcl`. - -It's also possible to issue HCl commands directly (except `alias`, see -below), or to query specific JSON end points and have the results -pretty-printed: - -    hcl console -    hcl> show "yesterday" -    # => prints yesterday's timesheet, note the quotes! -    hcl> hcl.http.get('daily') -    # => displays a pretty-printed version of the JSON output - -Note that the HCl internals may change without notice. -Also, commands (like `alias`) that are also reserved words in Ruby -can't be issued directly (use `send :alias` instead). - -### Date Formats - -Dates can be expressed in a variety of ways. See the [Chronic documentation][cd] -for more information about available date input formats. The following -commands show the time sheet for the specified day: - -    hcl show yesterday -    hcl show last friday -    hcl show 2 days ago -    hcl show 1 week ago - -[cd]: http://chronic.rubyforge.org/ - -### Harvest service status - -Harvest provides a [status API], which you can query using the -`hcl status` command. This will tell you whether Harvest itself is up and the -current response time, along with a timestamp of when it was last tested. - -[status API]: http://harveststatus.com/status_api - -## AUTHOR - -HCl was designed and implemented by Zack Hobson. - -* Non-SSL support by Michael Bleigh. -* Resume command by Brian Cooke. -* UI improvements by Chris Scharf. - | 
