zio 0.0.1 → 0.0.2
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 +4 -4
- data/bin/zio +34 -28
- data/lib/zio/branch.rb +45 -0
- data/lib/zio/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a93f4288caee353d34b787a2077bace1b9885dc2
|
4
|
+
data.tar.gz: 91b97e0fbe382587ba3e131bfc108f3876b757be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9cf83ec05062adc6d080d8f7bf8bc17f1956c4b638b6a66e6352ee474e5c1cfbd6d9990c86acd1d003dcf35a6f9bb982e63411e26b809cb1f4bccb22baefcd11
|
7
|
+
data.tar.gz: 645fe7cc8606e9acbda08f5efdca9773b630e3ff46cead41e751bb509e6cebb9b363263db49170c5e5e87d01ca246c5d47b5da5f5679e6752426bb5bcbfbe457
|
data/bin/zio
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'gli'
|
3
3
|
require 'zio/up'
|
4
|
+
require 'zio/branch'
|
4
5
|
|
5
6
|
begin # XXX: Remove this begin/rescue before distributing your app
|
6
7
|
require 'zio'
|
@@ -13,47 +14,51 @@ end
|
|
13
14
|
|
14
15
|
include GLI::App
|
15
16
|
|
16
|
-
program_desc '
|
17
|
+
program_desc 'Bella zio! Productivity tools'
|
17
18
|
|
18
19
|
version Zio::VERSION
|
19
20
|
|
20
21
|
subcommand_option_handling :normal
|
21
22
|
arguments :strict
|
22
23
|
|
23
|
-
|
24
|
-
# switch [:s,:switch]
|
25
|
-
#
|
26
|
-
# desc 'Describe some flag here'
|
27
|
-
# default_value 'the default'
|
28
|
-
# arg_name 'The name of the argument'
|
29
|
-
# flag [:f,:flagname]
|
30
|
-
|
31
|
-
desc 'Run stash and git pull --rebase on git repos'
|
24
|
+
desc 'Stash and pull --rebase on master'
|
32
25
|
command :up do |c|
|
33
|
-
c.desc '
|
34
|
-
c.
|
35
|
-
c.flag :d
|
36
|
-
|
37
|
-
c.desc 'Dirs set'
|
38
|
-
c.flag :s
|
26
|
+
c.desc 'Parent directory to scan. Apply to any contained git repo'
|
27
|
+
c.flag [:d, :directory]
|
39
28
|
|
40
|
-
|
29
|
+
c.desc 'Git repos set'
|
30
|
+
c.flag [:s, :repos_set]
|
41
31
|
|
42
32
|
c.action do |_global_options, options, _args|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
33
|
+
logger = Zio::UpLogger.new
|
34
|
+
opts = { dir: options[:d] }
|
35
|
+
opts[:set] = $dirsets[options[:s]] if options[:s]
|
36
|
+
Zio::Up.new(opts).up
|
37
|
+
logger.print
|
48
38
|
end
|
49
|
-
|
50
39
|
end
|
51
40
|
|
52
|
-
desc '
|
53
|
-
arg_name '
|
54
|
-
command :
|
55
|
-
c.
|
56
|
-
|
41
|
+
desc 'Branch checkout'
|
42
|
+
arg_name 'branch_name'
|
43
|
+
command :branch do |c|
|
44
|
+
c.desc 'Parent directory to scan. Apply to any contained git repo'
|
45
|
+
c.flag [:d, :directory]
|
46
|
+
|
47
|
+
c.desc 'Git repos set'
|
48
|
+
c.flag [:s, :repos_set]
|
49
|
+
|
50
|
+
c.desc 'Create the branch if does not exists'
|
51
|
+
c.switch [:f, :force]
|
52
|
+
|
53
|
+
c.desc 'If -f the base branch to checkout from'
|
54
|
+
c.default_value 'master'
|
55
|
+
c.flag [:b, :base_branch]
|
56
|
+
|
57
|
+
c.action do |_global_options, options, args|
|
58
|
+
branch = args[0] || 'master'
|
59
|
+
opts = { dir: options[:d], branch: branch, force: options[:f], base_branch: options[:b] }
|
60
|
+
opts[:set] = $dirsets[options[:s]] if options[:s]
|
61
|
+
Zio::Branch.new(opts).checkout
|
57
62
|
end
|
58
63
|
end
|
59
64
|
|
@@ -63,6 +68,7 @@ pre do |_global, _command, _options, _args|
|
|
63
68
|
# chosen command
|
64
69
|
# Use skips_pre before a command to skip this block
|
65
70
|
# on that command only
|
71
|
+
$dirsets = YAML.load_file(File.join(ENV['HOME'], '.zio.rc.yml'))[:dirsets]
|
66
72
|
true
|
67
73
|
end
|
68
74
|
|
data/lib/zio/branch.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'open3'
|
2
|
+
|
3
|
+
module Zio
|
4
|
+
class Branch
|
5
|
+
attr_accessor :options
|
6
|
+
def initialize(options={})
|
7
|
+
@options = options
|
8
|
+
raise MISSING_ARGUMENTS unless options[:dir] || options[:set]
|
9
|
+
end
|
10
|
+
|
11
|
+
def checkout
|
12
|
+
_paths.each do |path|
|
13
|
+
#self.class.new(options).async.pull(path)
|
14
|
+
puts path
|
15
|
+
stdout, stderr, status = Open3.capture3("cd #{path} && git stash && git rev-parse --verify #{options[:branch]}")
|
16
|
+
|
17
|
+
# Branch does not exists
|
18
|
+
if status.exitstatus != 0 && options[:force]
|
19
|
+
stdout, stderr, status = Open3.capture3(
|
20
|
+
"cd #{path} && git checkout #{options[:base_branch]} && git checkout -b #{options[:branch]}"
|
21
|
+
)
|
22
|
+
else
|
23
|
+
stdout, stderr, status = Open3.capture3("cd #{path} && git checkout #{options[:branch]}")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
def pull(path)
|
30
|
+
stdout, stderr, status = Open3.capture3("cd #{path} && git stash && git checkout master && git pull --rebase")
|
31
|
+
publish 'up_capture_complete', [path, stdout, stderr, status]
|
32
|
+
end
|
33
|
+
|
34
|
+
def _paths
|
35
|
+
return options[:set] unless options[:set].nil?
|
36
|
+
@_paths ||= begin
|
37
|
+
Dir.foreach(options[:dir]).map do |path|
|
38
|
+
next if path == '.' || path == '..' || !File.exists?(File.expand_path(path, options[:dir]) + '/.git')
|
39
|
+
ab_path = File.expand_path(path, options[:dir])
|
40
|
+
File.directory?(ab_path) ? ab_path : nil
|
41
|
+
end.compact
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/zio/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Your Name Here
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -114,6 +114,7 @@ files:
|
|
114
114
|
- features/support/env.rb
|
115
115
|
- features/zio.feature
|
116
116
|
- lib/zio.rb
|
117
|
+
- lib/zio/branch.rb
|
117
118
|
- lib/zio/exceptions.rb
|
118
119
|
- lib/zio/up.rb
|
119
120
|
- lib/zio/version.rb
|