pastejour 1.1.0 → 1.2.0
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/CHANGELOG.rdoc +9 -1
- data/Manifest.txt +1 -2
- data/README.rdoc +30 -21
- data/Rakefile +8 -12
- data/bin/pastejour +6 -8
- data/lib/pastejour/cli.rb +3 -2
- data/lib/pastejour.rb +8 -5
- data/test/{pastejour/cli_test.rb → test_cli.rb} +1 -2
- metadata +16 -10
- data/lib/pastejour/version.rb +0 -3
data/CHANGELOG.rdoc
CHANGED
data/Manifest.txt
CHANGED
data/README.rdoc
CHANGED
@@ -1,26 +1,31 @@
|
|
1
1
|
= Pastejour
|
2
2
|
|
3
|
-
|
3
|
+
* http://github.com/jbarnette/pastejour
|
4
|
+
|
5
|
+
== Description
|
6
|
+
|
7
|
+
Broadcast standard out using Bonjour. Pipe output to other people.
|
8
|
+
Pastejour is like pbcopy, but over the network!
|
4
9
|
|
5
10
|
== Examples
|
6
11
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
12
|
+
alice$ git diff | pastejour
|
13
|
+
bob$ pastejour alice
|
14
|
+
|
15
|
+
alice$ git diff | pastejour bob
|
16
|
+
bob$ pastejour
|
17
|
+
|
18
|
+
alice$ git diff | pastejour monkeys
|
19
|
+
bob$ pastejour alice-monkeys
|
20
|
+
|
21
|
+
alice$ git diff | pastejour monkeys
|
22
|
+
bob$ pastejour -f
|
23
|
+
Searching for servers (3 seconds)
|
24
|
+
alice-monkeys
|
25
|
+
|
26
|
+
# Copy the clipboard contents from one machine to another
|
27
|
+
alice$ pbpaste | pastejour bob
|
28
|
+
bob$ pastejour | pbcopy
|
24
29
|
|
25
30
|
== ORLY?
|
26
31
|
|
@@ -29,15 +34,19 @@ and out. By default, Pastejour will only stay up until the first
|
|
29
34
|
person grabs your paste. If you want to let a bunch of people grab the
|
30
35
|
same thing, shoot it out in multiple mode:
|
31
36
|
|
32
|
-
|
33
|
-
|
37
|
+
alice$ git diff | pastejour -m # keeps on serving 'til you CTRL-C
|
38
|
+
|
34
39
|
== Awesome!
|
35
40
|
|
36
41
|
You know it.
|
37
42
|
|
38
43
|
== Installation
|
39
44
|
|
40
|
-
$
|
45
|
+
$ gem install pastejour
|
46
|
+
|
47
|
+
== TODO
|
48
|
+
|
49
|
+
* Stop using dnssd, it's Mac OS X only.
|
41
50
|
|
42
51
|
== License
|
43
52
|
|
data/Rakefile
CHANGED
@@ -1,18 +1,14 @@
|
|
1
1
|
require "rubygems"
|
2
2
|
require "hoe"
|
3
3
|
|
4
|
-
|
4
|
+
Hoe.spec "pastejour" do
|
5
|
+
developer "John Barnette", "jbarnette@rubyforge.org"
|
6
|
+
developer "Evan Phoenix", "evan@fallingsnow.net"
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
+
self.extra_rdoc_files = FileList["*.rdoc"]
|
9
|
+
self.history_file = "CHANGELOG.rdoc"
|
10
|
+
self.readme_file = "README.rdoc"
|
11
|
+
self.testlib = :minitest
|
8
12
|
|
9
|
-
|
10
|
-
p.history_file = "CHANGELOG.rdoc"
|
11
|
-
p.readme_file = "README.rdoc"
|
12
|
-
p.extra_rdoc_files = [p.readme_file]
|
13
|
-
p.need_tar = false
|
14
|
-
p.test_globs = %w(test/**/*_test.rb)
|
15
|
-
p.testlib = :minitest
|
16
|
-
|
17
|
-
p.extra_deps << "dnssd"
|
13
|
+
extra_deps << "dnssd"
|
18
14
|
end
|
data/bin/pastejour
CHANGED
@@ -2,19 +2,17 @@
|
|
2
2
|
|
3
3
|
require "pastejour/cli"
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
if opts.run?
|
8
|
-
if opts.list?
|
5
|
+
Pastejour::Cli.new STDOUT, ARGV do |cli|
|
6
|
+
if cli.list?
|
9
7
|
Pastejour.list
|
10
8
|
elsif $stdin.tty?
|
11
|
-
name = /#{ENV["USER"]}$/ if
|
9
|
+
name = /#{ENV["USER"]}$/ if cli.name.nil? || cli.name.empty?
|
12
10
|
$stdout.write Pastejour.get(name)
|
13
11
|
$stdout.flush
|
14
12
|
else
|
15
|
-
name = [ENV["USER"],
|
13
|
+
name = [ENV["USER"], cli.name].compact.join "-"
|
16
14
|
contents = $stdin.read
|
17
|
-
Pastejour.serve name,
|
18
|
-
$stdout.puts contents if
|
15
|
+
Pastejour.serve name, cli.multiple?, contents
|
16
|
+
$stdout.puts contents if cli.tee?
|
19
17
|
end
|
20
18
|
end
|
data/lib/pastejour/cli.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require "optparse"
|
2
2
|
require "pastejour"
|
3
|
-
require "pastejour/version"
|
4
3
|
|
5
4
|
module Pastejour
|
6
5
|
class Cli
|
@@ -39,9 +38,11 @@ module Pastejour
|
|
39
38
|
end
|
40
39
|
|
41
40
|
opts.separator ""
|
42
|
-
|
43
41
|
opts.parse! args
|
42
|
+
|
44
43
|
@name = args.shift
|
44
|
+
|
45
|
+
yield self if @run && block_given?
|
45
46
|
end
|
46
47
|
end
|
47
48
|
|
data/lib/pastejour.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require "rubygems"
|
2
1
|
require "dnssd"
|
3
2
|
require "set"
|
4
3
|
require "socket"
|
@@ -7,6 +6,8 @@ require "webrick"
|
|
7
6
|
Thread.abort_on_exception = true
|
8
7
|
|
9
8
|
module Pastejour
|
9
|
+
VERSION = "1.2.0"
|
10
|
+
|
10
11
|
include Socket::Constants
|
11
12
|
|
12
13
|
Paste = Struct.new(:name, :host, :port)
|
@@ -18,12 +19,15 @@ module Pastejour
|
|
18
19
|
service = DNSSD.browse(SERVICE) do |reply|
|
19
20
|
servers[reply.name] ||= reply
|
20
21
|
end
|
22
|
+
|
21
23
|
STDERR.puts "Searching for servers (3 seconds)"
|
24
|
+
|
22
25
|
# Wait for something to happen
|
23
26
|
sleep 3
|
27
|
+
|
24
28
|
service.stop
|
25
|
-
servers.each { |string,obj|
|
26
|
-
name, port = string.split ":"
|
29
|
+
servers.each { |string,obj|
|
30
|
+
name, port = string.split ":"
|
27
31
|
STDERR.puts "Found pastejour at '#{name}'"
|
28
32
|
}
|
29
33
|
end
|
@@ -59,7 +63,6 @@ module Pastejour
|
|
59
63
|
STDERR.puts " #{host.name} (#{host.host}:#{host.port})"
|
60
64
|
end
|
61
65
|
else
|
62
|
-
# Set is weird. There is no #[] or #at
|
63
66
|
hosts.each do |host|
|
64
67
|
STDERR.puts "(#{host.name} from #{host.host}:#{host.port})"
|
65
68
|
sock = TCPSocket.open host.host, host.port
|
@@ -71,7 +74,7 @@ module Pastejour
|
|
71
74
|
def self.serve(name, multiple, contents)
|
72
75
|
tr = DNSSD::TextRecord.new
|
73
76
|
tr["description"] = "A paste."
|
74
|
-
|
77
|
+
|
75
78
|
DNSSD.register(name, SERVICE, "local", PORT, tr.encode) do |reply|
|
76
79
|
STDERR.puts "Pasting #{name}..."
|
77
80
|
end
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pastejour
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Barnette
|
8
|
+
- Evan Phoenix
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
12
|
|
12
|
-
date: 2009-
|
13
|
+
date: 2009-06-22 00:00:00 -07:00
|
13
14
|
default_executable:
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
@@ -30,17 +31,21 @@ dependencies:
|
|
30
31
|
requirements:
|
31
32
|
- - ">="
|
32
33
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
+
version: 2.2.0
|
34
35
|
version:
|
35
|
-
description:
|
36
|
+
description: |-
|
37
|
+
Broadcast standard out using Bonjour. Pipe output to other people.
|
38
|
+
Pastejour is like pbcopy, but over the network!
|
36
39
|
email:
|
37
40
|
- jbarnette@rubyforge.org
|
41
|
+
- evan@fallingsnow.net
|
38
42
|
executables:
|
39
43
|
- pastejour
|
40
44
|
extensions: []
|
41
45
|
|
42
46
|
extra_rdoc_files:
|
43
47
|
- Manifest.txt
|
48
|
+
- CHANGELOG.rdoc
|
44
49
|
- README.rdoc
|
45
50
|
files:
|
46
51
|
- CHANGELOG.rdoc
|
@@ -50,10 +55,11 @@ files:
|
|
50
55
|
- bin/pastejour
|
51
56
|
- lib/pastejour.rb
|
52
57
|
- lib/pastejour/cli.rb
|
53
|
-
-
|
54
|
-
- test/pastejour/cli_test.rb
|
58
|
+
- test/test_cli.rb
|
55
59
|
has_rdoc: true
|
56
60
|
homepage: http://github.com/jbarnette/pastejour
|
61
|
+
licenses: []
|
62
|
+
|
57
63
|
post_install_message:
|
58
64
|
rdoc_options:
|
59
65
|
- --main
|
@@ -75,9 +81,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
81
|
requirements: []
|
76
82
|
|
77
83
|
rubyforge_project: pastejour
|
78
|
-
rubygems_version: 1.3.
|
84
|
+
rubygems_version: 1.3.4
|
79
85
|
signing_key:
|
80
|
-
specification_version:
|
81
|
-
summary:
|
86
|
+
specification_version: 3
|
87
|
+
summary: Broadcast standard out using Bonjour
|
82
88
|
test_files:
|
83
|
-
- test/
|
89
|
+
- test/test_cli.rb
|
data/lib/pastejour/version.rb
DELETED