shatty 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Makefile ADDED
@@ -0,0 +1,50 @@
1
+ GEMSPEC=$(shell ls *.gemspec)
2
+ VERSION=$(shell awk -F\" '/spec.version/ { print $$2 }' $(GEMSPEC))
3
+ NAME=$(shell awk -F\" '/spec.name/ { print $$2 }' $(GEMSPEC))
4
+ GEM=$(NAME)-$(VERSION).gem
5
+
6
+ .PHONY: test
7
+ test:
8
+ sh notify-failure.sh ruby test/all.rb
9
+
10
+ .PHONY: testloop
11
+ testloop:
12
+ while true; do \
13
+ $(MAKE) test; \
14
+ $(MAKE) wait-for-changes; \
15
+ done
16
+
17
+ .PHONY: serve-coverage
18
+ serve-coverage:
19
+ cd coverage; python -mSimpleHTTPServer
20
+
21
+ .PHONY: wait-for-changes
22
+ wait-for-changes:
23
+ -inotifywait --exclude '\.swp' -e modify $$(find $(DIRS) -name '*.rb'; find $(DIRS) -type d)
24
+
25
+ .PHONY: package
26
+ package: | $(GEM)
27
+
28
+ .PHONY: gem
29
+ gem: $(GEM)
30
+
31
+ $(GEM):
32
+ gem build $(GEMSPEC)
33
+
34
+ .PHONY: test-package
35
+ test-package: $(GEM)
36
+ # Sometimes 'gem build' makes a faulty gem.
37
+ gem unpack $(GEM)
38
+ rm -rf $(NAME)-$(VERSION)/
39
+
40
+ .PHONY: publish
41
+ publish: test-package
42
+ gem push $(GEM)
43
+
44
+ .PHONY: install
45
+ install: $(GEM)
46
+ gem install $(GEM)
47
+
48
+ .PHONY: clean
49
+ clean:
50
+ -rm -rf .yardoc $(GEM) $(NAME)-$(VERSION)/
@@ -9,14 +9,13 @@ class Shatty < Clamp::Command
9
9
  "where to output the recording to (a path or url)"
10
10
  option "--headless", :flag,
11
11
  "headless mode; don't output anything to stdout."
12
- parameter "COMMAND ...", "The command to run",
13
- :attribute_name => :command
12
+ parameter "[COMMAND] ...", "The command to run",
13
+ :attribute_name => :command, :default => ENV["SHELL"]
14
14
 
15
15
  def execute
16
16
  start = Time.now
17
-
18
17
  if output.nil?
19
- output = "http://r.logstash.net:8200/s/#{UUIDTools::UUID.random_create}"
18
+ self.output = "http://r.logstash.net:8200/s/#{UUIDTools::UUID.random_create}"
20
19
  puts "Sending output to: #{output}"
21
20
  end
22
21
 
data/shatty.gemspec ADDED
@@ -0,0 +1,20 @@
1
+ Gem::Specification.new do |spec|
2
+ files = %x{git ls-files}.split("\n")
3
+
4
+ spec.name = "shatty"
5
+ spec.version = "0.0.3"
6
+ spec.summary = "shatty"
7
+ spec.description = "shatty"
8
+ spec.license = "none chosen yet"
9
+
10
+ # Note: You should set the version explicitly.
11
+ spec.add_dependency "cabin", ">0" # for logging. apache 2 license
12
+ spec.files = files
13
+ spec.require_paths << "lib"
14
+ spec.bindir = "bin"
15
+
16
+ spec.authors = ["Jordan Sissel"]
17
+ spec.email = ["jls@semicomplete.com"]
18
+ #spec.homepage = "..."
19
+ end
20
+
data/web.rb CHANGED
@@ -30,13 +30,13 @@ class Session
30
30
  def raw
31
31
  return Enumerator.new do |y|
32
32
  enumerator.each do |chunk|
33
- puts decode(chunk).inspect
34
33
  y << decode(chunk)
35
34
  end
36
35
  end # Enumerator
37
36
  end # def enumerator
38
37
 
39
38
  def decode(chunk)
39
+ headersize = [1,1].pack("GN").size
40
40
  return chunk[headersize .. -1]
41
41
  end # def decode
42
42
 
@@ -68,6 +68,7 @@ server = FTW::WebServer.new("0.0.0.0", port) do |request, response|
68
68
  response["Content-Type"] = "text/plain"
69
69
  if request["user-agent"] =~ /^curl\/[0-9]/
70
70
  # Curl. Send raw text.
71
+ puts "curl request"
71
72
  response.body = session.raw
72
73
  else
73
74
  response.body = session.enumerator
@@ -81,4 +82,5 @@ server = FTW::WebServer.new("0.0.0.0", port) do |request, response|
81
82
  end
82
83
  end
83
84
 
85
+ Thread.abort_on_exception = true
84
86
  server.run
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shatty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -36,12 +36,14 @@ extra_rdoc_files: []
36
36
  files:
37
37
  - Gemfile
38
38
  - Gemfile.lock
39
+ - Makefile
39
40
  - Procfile
40
41
  - README.md
42
+ - bin/shatty
41
43
  - examples/blinkenlights.shatty
42
44
  - examples/output.shatty
43
45
  - misc/shatty.go
44
- - shatty.rb
46
+ - shatty.gemspec
45
47
  - web.rb
46
48
  homepage:
47
49
  licenses: