gitjour 2.5.0 → 5.0.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.
@@ -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: