raykit 0.0.148 → 0.0.149
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/README.md +3 -1
- data/lib/raykit/console.rb +131 -126
- data/lib/raykit/git/directory.rb +5 -0
- data/lib/raykit/git/repositories.rb +10 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5502db43e43e11e3c9e9edfcd939423023f5e11e3a30a6ac46b6dba11725beec
|
4
|
+
data.tar.gz: 26a22d5ca68c00d8eed582c84fee269e4164b72b7f576812db9db67f1c100f0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0cb1eb4bdc472028ca62a65f8e2dd0e6821da63bb54e6d83aa714be2629acbb22d7f5083439538aa5fa1e674834afc9262c4cf06472e752613b9aad61e7eb98
|
7
|
+
data.tar.gz: 6d35aec01b7ae8f85978091d82bc3123a67b24234613ace61a76acc9a2bdaa75d095b613e7dbc6475cd0697f0296cd815d7a0ef3df7765959703d10c682059c7
|
data/README.md
CHANGED
data/lib/raykit/console.rb
CHANGED
@@ -8,18 +8,7 @@ module Raykit
|
|
8
8
|
attr_accessor :opts
|
9
9
|
def initialize
|
10
10
|
@opts = Slop.parse do |o|
|
11
|
-
o.bool '-s','--show','show names'
|
12
|
-
o.string '-r', '--remote', 'remote name or substring', default: ''
|
13
11
|
o.string '-t','--task','rake task', default: 'default'
|
14
|
-
o.string '-l','--level','log level (debug,info,warn,error)', default: 'warn'
|
15
|
-
o.bool '-i','--import','import remotes from work directory'
|
16
|
-
o.bool '-p','--pull','pull work directory'
|
17
|
-
o.bool '-w','--work','rake work directory'
|
18
|
-
o.bool '-m','--make','make latest commit'
|
19
|
-
o.bool '-q','--quiet','enable quiet mode'
|
20
|
-
|
21
|
-
o.bool '-c','--clean','clean work directories'
|
22
|
-
o.bool '-d','--delete','delete remote name'
|
23
12
|
end
|
24
13
|
|
25
14
|
if(opts.verbose?)
|
@@ -29,102 +18,33 @@ module Raykit
|
|
29
18
|
end
|
30
19
|
|
31
20
|
def run
|
32
|
-
|
21
|
+
verb = "usage"
|
22
|
+
verb = @opts.arguments[0] if(@opts.arguments.length > 0)
|
23
|
+
case verb
|
24
|
+
when "usage"
|
33
25
|
usage
|
34
|
-
|
35
|
-
|
26
|
+
when "add"
|
27
|
+
add
|
28
|
+
when "remove"
|
29
|
+
remove
|
30
|
+
when "show"
|
31
|
+
show
|
32
|
+
when "work"
|
33
|
+
work
|
34
|
+
when "import"
|
35
|
+
import
|
36
|
+
when "clean"
|
37
|
+
clean
|
38
|
+
when "sync_version"
|
39
|
+
sync_version
|
40
|
+
when "copy"
|
41
|
+
copy
|
42
|
+
when "pull"
|
43
|
+
pull
|
36
44
|
else
|
37
|
-
|
38
|
-
|
39
|
-
source = ARGV[1]
|
40
|
-
dest = ARGV[2]
|
41
|
-
Raykit::Version::sync_file_versions(source,dest)
|
42
|
-
version = Raykit::Version::detect(source,false)
|
43
|
-
puts "version #{version} detected in #{source}, updating #{dest} to match."
|
44
|
-
elsif(verb == "copy")
|
45
|
-
source = ARGV[1]
|
46
|
-
dest=ARGV[2]
|
47
|
-
FileUtils.cp(source,dest)
|
48
|
-
puts "copied #{source} to #{dest}"
|
49
|
-
else
|
50
|
-
# align log level with @opts[:level]
|
51
|
-
LOG.set_severity_as_string(@opts[:level])
|
52
|
-
if(LOG.severity == Logger::Severity::DEBUG ||
|
53
|
-
LOG.severity == Logger::Severity::INFO)
|
54
|
-
puts '--remote = ' + @opts[:remote]
|
55
|
-
puts '--task = ' + @opts[:task]
|
56
|
-
puts '--level = ' + @opts[:level]
|
57
|
-
selected_repositories = REPOSITORIES.select{|r| r.include?(@opts[:remote])}
|
58
|
-
if(selected_repositories.length == 0)
|
59
|
-
puts "no matching remotes"
|
60
|
-
return
|
61
|
-
else
|
62
|
-
puts "matching remotes:"
|
63
|
-
selected_repositories.each{|r| puts r}
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
if(@opts.import?)
|
68
|
-
puts Rainbow('import').yellow.bright
|
69
|
-
if(REPOSITORIES.is_remote_url(@opts[:remote]))
|
70
|
-
puts "importing #{@opts[:remote]}"
|
71
|
-
else
|
72
|
-
puts "scanning #{REPOSITORIES.work_dir} for .git directories"
|
73
|
-
end
|
74
|
-
imported=REPOSITORIES.import(@opts[:remote])
|
75
|
-
puts "imported #{imported.length} remotes"
|
76
|
-
return 0
|
77
|
-
end
|
78
|
-
REPOSITORIES.select{|r| r.include?(@opts[:remote])}.each{|remote|
|
79
|
-
repo=Raykit::Git::Repository.new(remote)
|
80
|
-
work=Raykit::Git::Directory.new(repo.get_dev_dir('work'))
|
81
|
-
make=Raykit::Git::Directory.new(repo.get_dev_dir('make'))
|
82
|
-
|
83
|
-
puts Rainbow(remote).green.bright
|
84
|
-
if(@opts.pull?)
|
85
|
-
# do not pull if the working directory does not already exist.
|
86
|
-
if(Dir.exists?(repo.get_dev_dir('work')))
|
87
|
-
work.pull
|
88
|
-
end
|
89
|
-
end
|
90
|
-
if(@opts.work?)
|
91
|
-
if(!Dir.exist?(work.directory))
|
92
|
-
puts "work directory #{work.directory} does not exist, cloning" if(@opts.verbose?)
|
93
|
-
puts `git clone #{remote} #{work.directory}`
|
94
|
-
end
|
95
|
-
puts "rake #{@opts[:task]} in #{work.directory}" if(@opts.verbose?)
|
96
|
-
work.rake(@opts[:task])
|
97
|
-
end
|
98
|
-
if(@opts.make?)
|
99
|
-
if(!Dir.exist?(make.directory))
|
100
|
-
puts `git clone #{remote} #{make.directory}`
|
101
|
-
end
|
102
|
-
make.rake(@opts[:task])
|
103
|
-
end
|
104
|
-
if(@opts.clean?)
|
105
|
-
if(Dir.exist?(work.directory))
|
106
|
-
puts 'removing ' + Rainbow(work.directory).yellow
|
107
|
-
FileUtils.remove_dir(work.directory)
|
108
|
-
end
|
109
|
-
end
|
110
|
-
if(@opts.delete?)
|
111
|
-
if(Dir.exist?(work.directory))
|
112
|
-
puts 'removing ' + Rainbow(work.directory).yellow
|
113
|
-
FileUtils.remove_dir(work.directory)
|
114
|
-
end
|
115
|
-
if(Dir.exist?(make.directory))
|
116
|
-
puts 'removing ' + Rainbow(work.directory).yellow
|
117
|
-
FileUtils.remove_dir(work.directory)
|
118
|
-
end
|
119
|
-
if(REPOSITORIES.include?(remote))
|
120
|
-
puts 'removing remote ' + Rainbow(remote).yellow
|
121
|
-
REPOSITORIES.remove(remote)
|
122
|
-
end
|
123
|
-
end
|
124
|
-
}
|
125
|
-
end
|
45
|
+
puts 'unrecognized command ' + verb
|
46
|
+
return 1
|
126
47
|
end
|
127
|
-
0
|
128
48
|
end
|
129
49
|
|
130
50
|
def verbs
|
@@ -137,23 +57,80 @@ module Raykit
|
|
137
57
|
0
|
138
58
|
end
|
139
59
|
|
140
|
-
def
|
60
|
+
def add
|
61
|
+
if(@opts.arguments.length < 2)
|
62
|
+
puts 'add requires a url'
|
63
|
+
return 1
|
64
|
+
end
|
65
|
+
url=@opts.arguments[1]
|
66
|
+
if(REPOSITORIES.include?(url))
|
67
|
+
puts 'url ' + url + ' already exists.'
|
68
|
+
else
|
69
|
+
REPOSITORIES << url
|
70
|
+
REPOSITORIES.save(REPOSITORIES.filename)
|
71
|
+
puts 'url ' + url + ' added.'
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def remove
|
76
|
+
if(@opts.arguments.length < 2)
|
77
|
+
puts 'remove requires a url or pattern'
|
78
|
+
return 1
|
79
|
+
end
|
141
80
|
pattern=''
|
142
|
-
if(
|
143
|
-
|
81
|
+
pattern=@opts.arguments[1] if(@opts.arguments.length > 1)
|
82
|
+
remove_urls = REPOSITORIES.matches(pattern)
|
83
|
+
if(remove_urls.length == 0)
|
84
|
+
puts 'no matching urls found.'
|
85
|
+
|
86
|
+
else
|
87
|
+
remove_urls.each{|url|
|
88
|
+
REPOSITORIES.delete(url)
|
89
|
+
puts 'url ' + url + ' removed.'
|
90
|
+
}
|
91
|
+
REPOSITORIES.save(REPOSITORIES.filename)
|
144
92
|
end
|
145
|
-
|
93
|
+
end
|
94
|
+
|
95
|
+
def show
|
96
|
+
pattern=''
|
97
|
+
pattern=@opts.arguments[1] if(@opts.arguments.length > 1)
|
98
|
+
REPOSITORIES.matches(pattern).each{|url|
|
99
|
+
puts url
|
100
|
+
}
|
101
|
+
end
|
146
102
|
|
147
|
-
|
148
|
-
|
149
|
-
|
103
|
+
def work
|
104
|
+
pattern=''
|
105
|
+
pattern=@opts.arguments[1] if(@opts.arguments.length > 1)
|
106
|
+
REPOSITORIES.matches(pattern).each{|url|
|
107
|
+
repo=Raykit::Git::Repository.new(url)
|
108
|
+
work=Raykit::Git::Directory.new(repo.get_dev_dir('work'))
|
109
|
+
if(!Dir.exist?(work.directory))
|
110
|
+
PROJECT.run("git clone #{url} #{work.directory}")
|
111
|
+
end
|
112
|
+
if(Dir.exist?(work.directory))
|
113
|
+
work.rake(@opts[:task])
|
150
114
|
end
|
151
115
|
}
|
152
116
|
end
|
153
117
|
|
154
|
-
def
|
118
|
+
def pull
|
155
119
|
pattern=''
|
156
|
-
pattern
|
120
|
+
pattern=@opts.arguments[1] if(@opts.arguments.length > 1)
|
121
|
+
REPOSITORIES.matches(pattern).each{|url|
|
122
|
+
repo=Raykit::Git::Repository.new(url)
|
123
|
+
work=Raykit::Git::Directory.new(repo.get_dev_dir('work'))
|
124
|
+
if(Dir.exist?(work.directory))
|
125
|
+
puts url
|
126
|
+
work.pull
|
127
|
+
end
|
128
|
+
}
|
129
|
+
end
|
130
|
+
|
131
|
+
def import
|
132
|
+
pattern=''
|
133
|
+
pattern=@opts.arguments[1] if(@opts.arguments.length > 1)
|
157
134
|
puts 'scanning...'
|
158
135
|
count=REPOSITORIES.length
|
159
136
|
REPOSITORIES.import(pattern)
|
@@ -161,6 +138,46 @@ module Raykit
|
|
161
138
|
puts "imported #{new_count} git repositories"
|
162
139
|
end
|
163
140
|
|
141
|
+
def clean
|
142
|
+
pattern=''
|
143
|
+
pattern=@opts.arguments[1] if(@opts.arguments.length > 1)
|
144
|
+
REPOSITORIES.matches(pattern).each{|url|
|
145
|
+
repo=Raykit::Git::Repository.new(url)
|
146
|
+
work=Raykit::Git::Directory.new(repo.get_dev_dir('work'))
|
147
|
+
if(Dir.exist?(work.directory))
|
148
|
+
puts 'removing ' + work.directory
|
149
|
+
begin
|
150
|
+
FileUtils.rm_rf(work.directory,secure:true)
|
151
|
+
rescue
|
152
|
+
puts 'error removing ' + work.directory
|
153
|
+
end
|
154
|
+
end
|
155
|
+
}
|
156
|
+
end
|
157
|
+
|
158
|
+
def sync_version
|
159
|
+
if(@opts.arguments.length < 3)
|
160
|
+
puts 'source and destination arguments are required for sync_version'
|
161
|
+
return 1
|
162
|
+
end
|
163
|
+
source = @opts.arguments[1]
|
164
|
+
dest = @opts.arguments[2]
|
165
|
+
Raykit::Version::sync_file_versions(source,dest)
|
166
|
+
version = Raykit::Version::detect(source,false)
|
167
|
+
puts "version #{version} detected in #{source}, updating #{dest} to match."
|
168
|
+
end
|
169
|
+
|
170
|
+
def copy
|
171
|
+
if(@pts.arguments.length < 3)
|
172
|
+
puts 'source and destination arguments are required for copy'
|
173
|
+
return 1
|
174
|
+
end
|
175
|
+
source = @opts.arguments[1]
|
176
|
+
dest = @opts.arguments[2]
|
177
|
+
FileUtils.cp(source,dest)
|
178
|
+
puts "copied #{source} to #{dest}"
|
179
|
+
end
|
180
|
+
|
164
181
|
def rake(hash)
|
165
182
|
REPOSITORIES.each{|remote|
|
166
183
|
if(remote.include?(hash[:pattern]))
|
@@ -184,19 +201,7 @@ module Raykit
|
|
184
201
|
}
|
185
202
|
end
|
186
203
|
|
187
|
-
|
188
|
-
REPOSITORIES.each{|remote|
|
189
|
-
if(remote.include?(hash[:pattern]))
|
190
|
-
puts "remote: #{remote}"
|
191
|
-
repo=Raykit::Git::Repository.new(remote)
|
192
|
-
work=Raykit::Git::Directory.new(repo.get_dev_dir('work'))
|
193
|
-
if(!Dir.exist?(work.directory))
|
194
|
-
Raykit::run("git clone #{remote} #{work.directory}")
|
195
|
-
end
|
196
|
-
work.rake('default')
|
197
|
-
end
|
198
|
-
}
|
199
|
-
end
|
204
|
+
|
200
205
|
end
|
201
206
|
|
202
207
|
|
data/lib/raykit/git/directory.rb
CHANGED