summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZack Hobson2014-02-04 09:24:34 -0800
committerZack Hobson2014-02-04 09:30:28 -0800
commit855e636b96740de63e70f870113ed8fb785eb0c1 (patch)
treed0f7f47ccbc486f5e9e432fb6de9e15c6189928c
parent4793f74ff23cd4cbb2c46498aadef8fdf4d6030a (diff)
downloadhcl-855e636b96740de63e70f870113ed8fb785eb0c1.tar.bz2
generate manpage from README
-rw-r--r--.gitignore1
-rw-r--r--README.markdown8
-rw-r--r--Rakefile13
-rw-r--r--man/hcl.1.ronn176
4 files changed, 19 insertions, 179 deletions
diff --git a/.gitignore b/.gitignore
index 09c3515..c2bcef6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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].
diff --git a/Rakefile b/Rakefile
index 1ab7b71..061b9da 100644
--- a/Rakefile
+++ b/Rakefile
@@ -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.
-