gitbulk 0.0.3.364300 → 0.0.4.364358

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
  SHA256:
3
- metadata.gz: 910b9d211e964625b1be8aa4116d8bb3eac256ef4684a082e1c15ddae28a32e6
4
- data.tar.gz: 328b957a3810177dc90382eeafa8e89f9c6e6fcb642b94e23b8507d125b7ed16
3
+ metadata.gz: e29dea4cfdce01915173810d85d40b352c9ad90be8312befb8ea3b40673205f4
4
+ data.tar.gz: 9b726814f608faf38e9b0f7df3db4f8568e7aae7d73c5eb3c60ddaa13103dd86
5
5
  SHA512:
6
- metadata.gz: 61cb0b6ebb3972fdc99c84b23825377c9c5a1eea58ef65260008cd861f7f12b0811b3ab897aad9f6577063be755ced80f9043153290ab60617d29804b98293a4
7
- data.tar.gz: 13873fed8285a8d4bc4a954d30393e5ad2ce5d32761672567095a121ee913522ba563e678c7678631bbb50e9316c0b817cd17683ea374a722ac22042e6a73fe6
6
+ metadata.gz: da3884065254794978673213083d3d6a5a17133dae0fb240a4dff886c45ccb7cbe7903fbaba29a07c6bed12fc79a83bde2cb2d19bc6989d2c6f0a81dab57dcdb
7
+ data.tar.gz: 6420e17a0df2cfc7eed470aea3f83a0f6188b23c4f26780ae3ee2a53694a64fe7f066379195629358a2b8a37ef380fdc8675b5a6360b4154b0dfcc34800aad10
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitbulk (0.0.3)
4
+ gitbulk (0.0.4)
5
5
  activesupport
6
6
  colorize
7
7
  fileutils
data/bin/gitbulk CHANGED
@@ -25,6 +25,7 @@ Gitbulk::Util.setup
25
25
 
26
26
  @opts = {
27
27
  dryrun: ENV.fetch('GITBULK_DRYRUN', 'false').to_bool,
28
+ twoway: ENV.fetch('GITBULK_TWOWAY', 'false').to_bool,
28
29
  config: ENV.fetch('GITBULK_CONFIG', './gitbulk.yml'),
29
30
  log_level: ENV.fetch('LOG_LEVEL', ::Logger::INFO)
30
31
  }
@@ -37,6 +38,11 @@ parser = OptionParser.new do |o|
37
38
  @opts[:config] = File.expand_path(path.strip)
38
39
  end
39
40
 
41
+ o.on('--twoway',
42
+ 'ENV[GITBULK_TWOWAY]'.ljust(25) + 'Experimental using https://github.com/it3xl/git-repo-sync') do
43
+ @opts[:twoway] = true
44
+ end
45
+
40
46
  o.on('--dryrun',
41
47
  'ENV[GITBULK_DRYRUN]'.ljust(25) + 'Dry Run') do
42
48
  @opts[:dryrun] = true
@@ -68,17 +74,45 @@ Dir.chdir(config['workdir']) do |_dir|
68
74
 
69
75
  logger.info "Mirroring: #{git.inspect}".colorize(:green)
70
76
 
71
-
72
- Gitbulk::Util.within_repo(git, logger: logger) do |_name|
73
- repo['mirrors'].shuffle.each do |mirror|
74
- logger.info "Pushing to #{mirror}".colorize(:blue)
75
-
76
- # cmd = "git push --mirror #{mirror}"
77
- cmd = "git push --all #{mirror}"
78
- if @opts[:dryrun]
79
- logger.tagged('DRYRUN') { logger.info cmd }
80
- else
81
- Gitbulk::Util.cmd!(cmd)
77
+ if @opts[:twoway]
78
+ spec = Gem::Specification.find_by_name("gitbulk")
79
+ gem_root = spec.gem_dir
80
+ syncer_home = File.join(gem_root, "lib", "git-repo-sync")
81
+ syncer = "git-sync.sh"
82
+ ENV['PATH'] = "#{ENV['PATH']}:#{syncer_home}"
83
+ logger.tagged('TWOWAY'.colorize(:red)) do
84
+ repo['mirrors'].shuffle.each do |mirror|
85
+ name = Gitbulk::Util.name_slug(git) + '_' + Gitbulk::Util.name_slug(mirror)
86
+ cmd = "git_sync_project_folder=#{Gitbulk::Util.name_slug(name)} url_a=#{git} url_b=#{mirror} git-sync.sh"
87
+ allcmd = "git push origin_b --all"
88
+ tagscmd = "git push origin_b --tags"
89
+ if @opts[:dryrun]
90
+ logger.tagged('DRYRUN') { logger.info cmd }
91
+ logger.tagged('DRYRUN') { logger.info allcmd }
92
+ logger.tagged('DRYRUN') { logger.info tagscmd }
93
+ else
94
+ logger.info cmd
95
+ Gitbulk::Util.cmd!(cmd)
96
+ Dir.chdir("#{syncer_home}/sync-projects/#{name}/sync_repo") do |_dir|
97
+ Gitbulk::Util.cmd!(allcmd)
98
+ Gitbulk::Util.cmd!(tagscmd)
99
+ end
100
+ end
101
+ end
102
+ end
103
+ else
104
+ # generic way
105
+ Gitbulk::Util.within_repo(git, logger: logger) do |_name|
106
+ repo['mirrors'].shuffle.each do |mirror|
107
+ logger.info "Pushing to #{mirror}".colorize(:blue)
108
+
109
+ # cmd = "git push --mirror #{mirror}"
110
+ cmd = "git push --all #{mirror}"
111
+ if @opts[:dryrun]
112
+ logger.tagged('DRYRUN') { logger.info cmd }
113
+ else
114
+ Gitbulk::Util.cmd!(cmd)
115
+ end
82
116
  end
83
117
  end
84
118
  end
data/lib/gitbulk/utils.rb CHANGED
@@ -49,6 +49,10 @@ module Gitbulk
49
49
  end
50
50
  end
51
51
 
52
+ def name_slug(git)
53
+ git.downcase.gsub(/\W+/, '_')
54
+ end
55
+
52
56
  def cmd!(cmd, capture: false, logger: $logger)
53
57
  $cmdnum ||= 0
54
58
  $cmdnum += 1
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Gitbulk
4
4
 
5
- VERSION = '0.0.3'
5
+ VERSION = '0.0.4'
6
6
 
7
7
  end
8
8
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitbulk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3.364300
4
+ version: 0.0.4.364358
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samoilenko Yuri