statusz 0.0.3 → 0.0.4
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.
- data/README.md +11 -4
- data/lib/statusz/version.rb +1 -1
- data/lib/statusz.erb +1 -1
- data/lib/statusz.rb +10 -10
- metadata +3 -2
data/README.md
CHANGED
@@ -46,8 +46,15 @@ If you want statusz to write a plain text file or json instead of an html file,
|
|
46
46
|
Statusz.write_file("statusz.txt", :format => :text)
|
47
47
|
```
|
48
48
|
|
49
|
+
If you're deploying a commit other than HEAD of the current branch, you can give statusz a treeish
|
50
|
+
identifying it (sha or symbolic ref):
|
51
|
+
|
52
|
+
``` ruby
|
53
|
+
Statusz.write_file("statusz.html", :commit => "HEAD~3")
|
54
|
+
```
|
55
|
+
|
49
56
|
If you want statusz to only write some of the fields (skip `commit_search` to save space -- this field
|
50
|
-
contains
|
57
|
+
contains the sha of every ancestor of the latest commit in your repo, so it can be kind of large):
|
51
58
|
|
52
59
|
``` ruby
|
53
60
|
Statusz.write_file("statusz.html", :fields => ["latest commit", "date", "git user info"])
|
@@ -57,11 +64,11 @@ Here are the possible fields -- by default, statusz will write them all:
|
|
57
64
|
|
58
65
|
* `"git directory"` -- The name of the directory at the git root
|
59
66
|
* `"latest commit"` -- The sha of the latest commit
|
60
|
-
* `"
|
67
|
+
* `"containing branches"` -- The name of the branches, if any, that contain the latest commit
|
61
68
|
* `"date"` -- Timestamp
|
62
69
|
* `"current user on deploy host"` -- The output of `whoami`
|
63
70
|
* `"git user info"` -- The user name and email in git
|
64
|
-
* `"all commits"` -- A list of all
|
71
|
+
* `"all commits"` -- A list of all ancestors of the latest commit. In the html version, it's a search box.
|
65
72
|
|
66
73
|
Finally, statusz can write out extra arbitrary fields if you want. Just attach a hash of objects that have
|
67
74
|
meaningful `to_s` representations:
|
@@ -77,7 +84,7 @@ The only method provided by statusz is `Statusz.write_file(filename = "./statusz
|
|
77
84
|
full list of possible `options`:
|
78
85
|
|
79
86
|
* `:format` -- one of `:html`, `:text`, `:json` (defaults to `:html`).
|
80
|
-
* `:fields` -- an array; some subset of `["git directory", "latest commit", "
|
87
|
+
* `:fields` -- an array; some subset of `["git directory", "latest commit", "containing branches", "date", "current
|
81
88
|
user on deploy host", "git user info", "all commits"]` (defaults to the whole thing).
|
82
89
|
* `:extra_fields` -- a hash of arbitrary keys and values that will be stringified. You can override values in
|
83
90
|
`:fields` if you wish.
|
data/lib/statusz/version.rb
CHANGED
data/lib/statusz.erb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
|
-
<script src="
|
4
|
+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
|
5
5
|
<title>statusz</title>
|
6
6
|
|
7
7
|
<style type="text/css">
|
data/lib/statusz.rb
CHANGED
@@ -5,21 +5,21 @@ require "json"
|
|
5
5
|
|
6
6
|
module Statusz
|
7
7
|
FIELD_TO_SCRAPING_PROC = {
|
8
|
-
"git directory" => Proc.new { `git rev-parse --show-toplevel`.strip.rpartition("/").last },
|
9
|
-
"latest commit" => Proc.new { `git log --pretty=%H -n 1`.strip },
|
10
|
-
"
|
11
|
-
|
12
|
-
$?.to_i.zero? ? branch : "<no branch>"
|
8
|
+
"git directory" => Proc.new { |commit| `git rev-parse --show-toplevel`.strip.rpartition("/").last },
|
9
|
+
"latest commit" => Proc.new { |commit| `git log --pretty=%H #{commit} -n 1`.strip },
|
10
|
+
"containing branches" => Proc.new do |commit|
|
11
|
+
`git branch --contains #{commit}`.strip.gsub("* ", "").gsub("\n", ", ")
|
13
12
|
end,
|
14
|
-
"date" => Proc.new { Time.now.strftime("%Y-%m-%d %H:%M:%S %z") },
|
15
|
-
"current user on deploy host" => Proc.new { `whoami`.strip },
|
16
|
-
"git user info" => Proc.new do
|
13
|
+
"date" => Proc.new { |commit| Time.now.strftime("%Y-%m-%d %H:%M:%S %z") },
|
14
|
+
"current user on deploy host" => Proc.new { |commit| `whoami`.strip },
|
15
|
+
"git user info" => Proc.new do |commit|
|
17
16
|
"#{`git config --get user.name`.strip} <#{`git config --get user.email`.strip}>"
|
18
17
|
end,
|
19
|
-
"all commits" => Proc.new { `git log --pretty=%H`.strip }
|
18
|
+
"all commits" => Proc.new { |commit| `git log --pretty=%H #{commit}`.strip }
|
20
19
|
}
|
21
20
|
|
22
21
|
def self.write_file(filename = "./statusz.html", options = {})
|
22
|
+
options[:commit] ||= "HEAD"
|
23
23
|
options[:format] ||= :html
|
24
24
|
raise "Bad format: #{options[:format]}" unless [:html, :text, :json].include? options[:format]
|
25
25
|
options[:fields] ||= FIELD_TO_SCRAPING_PROC.keys
|
@@ -32,7 +32,7 @@ module Statusz
|
|
32
32
|
|
33
33
|
results = {}
|
34
34
|
options[:fields].each do |field|
|
35
|
-
results[field] = FIELD_TO_SCRAPING_PROC[field].call
|
35
|
+
results[field] = FIELD_TO_SCRAPING_PROC[field].call(options[:commit])
|
36
36
|
end
|
37
37
|
extra_fields.each { |field, value| results[field.to_s] = value.to_s }
|
38
38
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: statusz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-23 00:00:00.000000000Z
|
13
13
|
dependencies: []
|
14
14
|
description: statusz is a gem that writes out git metadata at deploy time.
|
15
15
|
email:
|
@@ -52,3 +52,4 @@ signing_key:
|
|
52
52
|
specification_version: 3
|
53
53
|
summary: statusz is a gem that writes out git metadata at deploy time.
|
54
54
|
test_files: []
|
55
|
+
has_rdoc:
|