qb 0.1.37 → 0.1.38
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/qb/util/stdio.rb +4 -4
- data/lib/qb/version.rb +1 -1
- data/roles/qb.git_submodule_update/library/git_submodule_update +41 -11
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3db6c782539a18c0595a06811de825a145c6554
|
4
|
+
data.tar.gz: 9b0f932cbf62a32649e8742fd7e1d273fbda591e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 005c10da52d51cf20e1624d59622471944f3358b5f3f747e2e471ce4f598c90ee3aba9f2039e0997aca4857b3273c311759f9676f71493127ea3e2754562cde4
|
7
|
+
data.tar.gz: e4c764c6a9cbed12327362e497c608174f2e6c28e88b5ccb52054214c7b18813564b4fb6a1800e709c9205ea5cb976312ca49ecf7fc5e5152c01e7c1f13842e1
|
data/lib/qb/util/stdio.rb
CHANGED
@@ -73,12 +73,12 @@ module QB::Util::STDIO
|
|
73
73
|
#
|
74
74
|
debug "closing..."
|
75
75
|
|
76
|
-
@thread.kill
|
77
|
-
@socket.close
|
76
|
+
@thread.kill unless @thread.nil?
|
77
|
+
@socket.close unless @socket.nil?
|
78
78
|
@socket = nil
|
79
|
-
@server.close
|
79
|
+
@server.close unless @server.nil?
|
80
80
|
@server = nil
|
81
|
-
FileUtils.rm @path
|
81
|
+
FileUtils.rm(@path) if @path.exist?
|
82
82
|
|
83
83
|
debug "closed."
|
84
84
|
end
|
data/lib/qb/version.rb
CHANGED
@@ -17,6 +17,8 @@ require 'qb'
|
|
17
17
|
require 'cmds'
|
18
18
|
require 'nrser'
|
19
19
|
|
20
|
+
using NRSER
|
21
|
+
|
20
22
|
class GitSubmoduleUpdate < QB::AnsibleModule
|
21
23
|
def main_dir
|
22
24
|
File.realpath @args['dir']
|
@@ -44,7 +46,7 @@ class GitSubmoduleUpdate < QB::AnsibleModule
|
|
44
46
|
detached: detached?(dir),
|
45
47
|
dirty: dirty?(dir),
|
46
48
|
}
|
47
|
-
}
|
49
|
+
}.tap {|subs| QB.debug submodules: subs}
|
48
50
|
end
|
49
51
|
|
50
52
|
def dirty? repo_dir
|
@@ -83,6 +85,8 @@ class GitSubmoduleUpdate < QB::AnsibleModule
|
|
83
85
|
end
|
84
86
|
|
85
87
|
def attach! submodule
|
88
|
+
QB.debug "attaching submodule #{ submodule[:rel_dir] }..."
|
89
|
+
|
86
90
|
branch_heads = branch_heads_for_commit submodule
|
87
91
|
branch_head = nil
|
88
92
|
|
@@ -95,62 +99,88 @@ class GitSubmoduleUpdate < QB::AnsibleModule
|
|
95
99
|
# automatically update it because that might break shit.
|
96
100
|
#
|
97
101
|
# do nothing
|
102
|
+
puts <<-END.squish
|
103
|
+
submodule #{ submodule[:rel_dir] } points to commit
|
104
|
+
#{ submodule[:commit] } that is not the head of any branch.
|
105
|
+
END
|
106
|
+
|
98
107
|
return false
|
108
|
+
|
99
109
|
when 1
|
100
|
-
|
110
|
+
QB.debug "commit is head of only one branch: #{ branch_heads[0][:ref] }"
|
101
111
|
branch_head = branch_heads[0]
|
112
|
+
|
102
113
|
else
|
103
|
-
|
114
|
+
QB.debug "commit is head of multiple branches..."
|
115
|
+
|
104
116
|
local = branch_heads.select {|bh| bh[:ref].start_with? 'refs/heads'}
|
105
117
|
|
106
118
|
case local.length
|
107
119
|
when 0
|
108
|
-
|
120
|
+
QB.debug "commit is head of multiple remote branches..."
|
121
|
+
|
109
122
|
# see if one is master
|
110
123
|
branch_head = branch_heads.find {|bh| bh[:ref].end_with? 'master'}
|
111
124
|
|
112
125
|
# if none do we're hosed - not sure which one it should be on
|
113
126
|
if branch_head.nil?
|
114
|
-
|
127
|
+
puts <<-END.squish
|
115
128
|
submodule #{ submodule[:rel_dir] } points to commit
|
116
129
|
#{ submodule[:commit] } that heads multiple non-master remote
|
117
130
|
branches: #{ branch_heads.map {|bh| bh[:ref]} }
|
118
131
|
END
|
132
|
+
|
133
|
+
return false
|
119
134
|
end
|
120
135
|
|
136
|
+
QB.debug "commit is head of local master, using that."
|
137
|
+
|
121
138
|
when 1
|
122
|
-
|
139
|
+
QB.debug "the commit is head of one local branch, using it."
|
140
|
+
|
123
141
|
branch_head = local[0]
|
124
142
|
|
125
143
|
else
|
126
|
-
|
144
|
+
QB.debug "the commit heads multiple local branches..."
|
145
|
+
|
127
146
|
# again, see if one is master
|
128
147
|
branch_head = local.find {|b| b[:ref].end_with? 'master'}
|
129
148
|
|
130
149
|
# if none do we're hosed - not sure which one it should be on
|
131
150
|
if branch_head.nil?
|
132
|
-
|
151
|
+
puts <<-END.squish
|
133
152
|
submodule #{ submodule[:rel_dir] } points to commit
|
134
153
|
#{ submodule[:commit] } that heads multiple non-master local
|
135
154
|
branches: #{ local.map {|bh| bh[:ref]} }
|
136
155
|
END
|
156
|
+
|
157
|
+
return false
|
137
158
|
end
|
138
|
-
|
139
|
-
|
159
|
+
|
160
|
+
QB.debug "commit is head of remote master, using that."
|
161
|
+
end # case local.length
|
162
|
+
end # case branch_heads.length
|
163
|
+
|
164
|
+
QB.debug "attaching #{ submodule[:rel_dir] } to #{ branch_head[:ref] }..."
|
140
165
|
|
141
166
|
branch = branch_head[:ref].split('/')[-1]
|
142
167
|
|
143
168
|
Dir.chdir submodule[:dir] do
|
144
|
-
#
|
169
|
+
QB.debug "checking out branch #{ branch } for #{ submodule[:rel_dir] }..."
|
170
|
+
|
145
171
|
Cmds! "git checkout <%= branch %>", branch: branch
|
146
172
|
|
147
173
|
# do a pull if the head was on the remote
|
148
174
|
if branch_head[:ref].start_with? 'refs/remotes'
|
175
|
+
QB.debug "commit is head of remote branch, pulling..."
|
176
|
+
|
149
177
|
Cmds! "git pull origin <%= branch %>", branch: branch
|
150
178
|
end
|
151
179
|
end
|
152
180
|
|
181
|
+
QB.debug "attached."
|
153
182
|
@changed = true
|
183
|
+
true
|
154
184
|
end
|
155
185
|
|
156
186
|
def main
|