git-make_mirror 1.0.2 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: efff87fff538d660621be838414d26c43124178c
4
- data.tar.gz: 6e31013b4cd6761a614211e8805388a193acd1fa
3
+ metadata.gz: ea0d5f1842e9455d45abedffbf0073babf4f83c1
4
+ data.tar.gz: 2d263428306c0efed187a480cef026ef4e7017ed
5
5
  SHA512:
6
- metadata.gz: 5ab3a8839e02876c5f2f6daceb60468b1a7553f68fb3788269197137c8d24ed0f6869b4df77520fa7a3ce702aada90958685fbf2b4feaea4fe75e56b0cb4000d
7
- data.tar.gz: ece7d078a83e82a15d8d059e5224c3e587f79fca1f56460cac35637b606f40c05179ceace93088597a9ffee2596efc612fbcc7a7fdb10d72f061700f8fa7b6cd
6
+ metadata.gz: 110bafd84407cb517ae09370a5dc2408b313282016aed7cd0c18c761b98f1eaae510bf7e233a6b2282721bf302639d8115dcc32a1d15f89de0d3231540b205c1
7
+ data.tar.gz: 6495868c7a39934d115a03327fbdcb7a51803da31e21f98f426b2216ebad69a598ce84eb65f98e8188b88f54694eb51e3adcaeeaa2baeb72fc995c650bb18585
@@ -9,11 +9,17 @@ module Git
9
9
  opts = Trollop::options do
10
10
  version "git-make-mirror #{Git::MakeMirror::VERSION} (c) 2017 @reednj (reednj@gmail.com)"
11
11
  banner "Usage: git make-mirror [options] [remote]"
12
- opt :remote, "create a remote in the local repository", :type => :string
12
+ opt :remote, "create a remote with the given name in the local repository", :type => :string
13
+ opt :local, "configure a local repository to receive pushes", :default => false
13
14
  opt :push, "push to the newly created mirror"
14
15
  end
15
16
 
16
- Trollop::educate if remote_url.nil? || remote_url == ''
17
+ Trollop::educate if (remote_url.nil? || remote_url == '') && !opts[:local]
18
+
19
+ if opts[:local]
20
+ configure_repository_local
21
+ return
22
+ end
17
23
 
18
24
  git_remote_name = nil
19
25
 
@@ -43,6 +49,10 @@ module Git
43
49
  @hooks_dir ||= File.join(File.dirname(__FILE__), 'hooks')
44
50
  end
45
51
 
52
+ def local_hook_file
53
+ @local_hook_file ||= File.join(local_hooks_dir, 'post-receive.rb')
54
+ end
55
+
46
56
  def remote_url
47
57
  (ARGV.last || '').strip
48
58
  end
@@ -69,12 +79,23 @@ module Git
69
79
  ]
70
80
  end
71
81
 
82
+ def configure_repository_local
83
+ hook_file = '.git/hooks/post-receive'
84
+ sh 'git config receive.denyCurrentBranch ignore'
85
+ FileUtils.cp local_hook_file, hook_file
86
+ sh "chmod 775 #{hook_file}"
87
+ end
88
+
72
89
  def copy_hook
73
- local_hook_file = File.join local_hooks_dir, 'post-receive.rb'
74
90
  remote_hook_file = File.join remote[:path], '.git/hooks/post-receive'
75
91
  server.scp local_hook_file, remote_hook_file
76
92
  server.exec "chmod 775 #{remote_hook_file}"
77
93
  end
94
+
95
+ def sh(cmd)
96
+ $stderr.puts cmd
97
+ system cmd
98
+ end
78
99
  end
79
100
 
80
101
  end
@@ -1,5 +1,5 @@
1
1
  module Git
2
2
  module MakeMirror
3
- VERSION = "1.0.2"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-make_mirror
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Reed
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-21 00:00:00.000000000 Z
11
+ date: 2017-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -61,7 +61,6 @@ extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
63
  - ".gitignore"
64
- - ".travis.yml"
65
64
  - Gemfile
66
65
  - LICENSE.txt
67
66
  - README.md
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.2.2
5
- before_install: gem install bundler -v 1.13.6