Thyme 可以自动追踪你使用应用程序的时间。
**特性:**
简单的命令行界面:
每 30s 记录一次你使用的应用
<pre class="brush:shell;toolbar: true; auto-links: false;">$ while true; do thyme track -o thyme.json; sleep 30s; done;</pre>
在新窗口创建图表以显示应用使用时间
<pre class="brush:shell;toolbar: true; auto-links: false;">$ thyme show -i thyme.json -w stats > thyme.html</pre>
**安装:**
安装 Go:
<pre class="brush:shell;toolbar: true; auto-links: false;">$ go get -u github.com/sourcegraph/thyme/cmd/thyme</pre>
按照 thyme.dep 打印的说明
<pre class="brush:shell;toolbar: true; auto-links: false;">$ thyme dep</pre>
校验 thyme
<pre class="brush:shell;toolbar: true; auto-links: false;">$ thyme track</pre>
**使用示例**
<pre class="brush:cpp ;toolbar: true; auto-links: false;">var trackCmd TrackCmd
func (c *TrackCmd) Execute(args []string) error {
t, err := getTracker()
if err != nil {
return err
}
snap, err := t.Snap()
if err != nil {
return err
}
if c.Out == "" {
out, err := json.MarshalIndent(snap, "", " ")
if err != nil {
return err
}
fmt.Println(string(out))
} else {
var stream thyme.Stream
if _, err := os.Stat(c.Out); err == nil {
if err := func() error {
f, err := os.Open(c.Out)
if err != nil {
return err
}
defer f.Close()
if err := json.NewDecoder(f).Decode(&stream); err != nil {
return err
}
return nil
}(); err != nil {
return err
}
} else if !os.IsNotExist(err) {
return err
}
stream.Snapshots = append(stream.Snapshots, snap)
f, err := os.Create(c.Out)
if err != nil {
return err
}
if err := json.NewEncoder(f).Encode(stream); err != nil {
return err
}
}
return nil
}</pre>