gitjour 2.5.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,7 +4,7 @@ require 'dnssd'
4
4
  require 'set'
5
5
  Thread.abort_on_exception = true
6
6
 
7
- GitService = Struct.new(:name, :host, :port)
7
+ GitService = Struct.new(:name, :host, :description)
8
8
 
9
9
  def service_list(looking_for = nil)
10
10
  wait_seconds = 5
@@ -14,7 +14,7 @@ def service_list(looking_for = nil)
14
14
 
15
15
  service = DNSSD.browse "_git._tcp" do |reply|
16
16
  DNSSD.resolve reply.name, reply.type, reply.domain do |resolve_reply|
17
- service_list << GitService.new(reply.name, resolve_reply.target)
17
+ service_list << GitService.new(reply.name, resolve_reply.target, resolve_reply.text_record['description'])
18
18
  if looking_for && reply.name == looking_for
19
19
  waiting_thread.kill
20
20
  end
@@ -30,6 +30,7 @@ case ARGV.shift
30
30
  when "list"
31
31
  service_list.each do |service|
32
32
  puts "#{service.name} on #{service.host}: gitjour clone #{service.name}"
33
+ puts " #{service.description}" if service.description && service.description != ''
33
34
  end
34
35
  when "clone"
35
36
  name_of_share = ARGV.shift || fail("You have to pass in a name")
@@ -38,11 +39,20 @@ case ARGV.shift
38
39
  when "serve"
39
40
  name = ARGV.shift || File.basename(Dir.pwd)
40
41
  tr = DNSSD::TextRecord.new
41
- tr['unfortunately'] = 'have to have a text record'
42
+ tr['description'] = File.read(".git/description") rescue "a git project"
42
43
  DNSSD.register(name, "_git._tcp", 'local', 9148, tr.encode) do |register_reply|
43
44
  p register_reply
44
45
  end
45
46
  `git-daemon --verbose --export-all --base-path=#{Dir.pwd}`
47
+ else
48
+ puts "Serve up and use git repositories via Bonjour/DNSSD."
49
+ puts "Usage: gitjour <command> [name]"
50
+ puts
51
+ puts " list Lists available repositories."
52
+ puts " clone Clone a gitjour served repository."
53
+ puts " serve Serve up the current directory via gitjour."
54
+ puts " Optionally pass name to not use pwd."
55
+ puts
46
56
  end
47
57
 
48
58
 
@@ -56,6 +56,7 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
56
56
  p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
57
57
  p.test_globs = ["test/**/test_*.rb"]
58
58
  p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] #An array of file patterns to delete on clean.
59
+ p.extra_deps = ['dnssd']
59
60
  # == Optional
60
61
  p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
61
62
  #p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
@@ -1,7 +1,7 @@
1
1
  module Gitjour #:nodoc:
2
2
  module VERSION #:nodoc:
3
- MAJOR = 2
4
- MINOR = 5
3
+ MAJOR = 5
4
+ MINOR = 0
5
5
  TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitjour
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chad Fowler
@@ -13,8 +13,16 @@ cert_chain: []
13
13
 
14
14
  date: 2008-05-29 00:00:00 -07:00
15
15
  default_executable:
16
- dependencies: []
17
-
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: dnssd
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ version:
18
26
  description: Automates DNSSD-powered serving and cloning of git repositories.
19
27
  email: chad@chadfowler.com
20
28
  executables: