git-make_mirror 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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