simp-metadata 0.5.2 → 0.5.3
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/Rakefile +47 -0
- data/lib/simp/metadata.rb +5 -1
- data/lib/simp/metadata/commands/base.rb +1 -1
- data/lib/simp/metadata/commands/clone.rb +1 -1
- data/lib/simp/metadata/commands/component.rb +47 -13
- data/lib/simp/metadata/commands/delete.rb +1 -1
- data/lib/simp/metadata/commands/pry.rb +1 -1
- data/lib/simp/metadata/commands/release.rb +1 -1
- data/lib/simp/metadata/commands/releases.rb +1 -1
- data/lib/simp/metadata/commands/save.rb +1 -1
- data/lib/simp/metadata/commands/script.rb +1 -1
- data/lib/simp/metadata/commands/search.rb +1 -1
- data/lib/simp/metadata/commands/set-write-url.rb +1 -1
- data/lib/simp/metadata/commands/set-write.rb +1 -1
- data/lib/simp/metadata/commands/update.rb +1 -1
- data/lib/simp/metadata/component.rb +20 -4
- data/lib/simp/metadata/engine.rb +9 -2
- data/lib/simp/metadata/version.erb +10 -0
- data/lib/simp/metadata/version.rb +2 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c26b66ce33c640c85459dca30dbf959aac04cfaef12e643b9af387f014ea96d
|
4
|
+
data.tar.gz: fb8e5ebfd80322c61ac0743338bb45a0dcaffdbb36c647e7b147be485b116239
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea96c778fac89114e4a5f4efefe15f40324f4433e53a1c01b0448a7f59cdc86a93f70a430e1a49018e038cb6cbae647dd5c25b4a41e44a7f269b12cd9c702b3d
|
7
|
+
data.tar.gz: 84b346be679cc9a48babbe3dd2546d3a48050acb17e1b005e339f8815d34f3df05eb3f45f84741d7f1490876164dac75caff12b76f15429108571996b6d4e690
|
data/Rakefile
CHANGED
@@ -64,3 +64,50 @@ begin
|
|
64
64
|
end
|
65
65
|
rescue LoadError
|
66
66
|
end
|
67
|
+
task :update_version, [:version] do |task, args|
|
68
|
+
require 'erb'
|
69
|
+
gem_version = args[:version]
|
70
|
+
renderer = ERB.new(File.read('lib/simp/metadata/version.erb'))
|
71
|
+
res = renderer.result(binding)
|
72
|
+
File.open("lib/simp/metadata/version.rb", "w+") do |f|
|
73
|
+
f.write(res)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
task :prerelease, [:version] do |task, args|
|
78
|
+
Rake::Task["update_version"].invoke(args[:version])
|
79
|
+
end
|
80
|
+
|
81
|
+
namespace :release do
|
82
|
+
desc "Build a Release"
|
83
|
+
task :build, [:version] do |task, args|
|
84
|
+
branch=`git rev-parse --abbrev-ref HEAD`.chomp
|
85
|
+
version = args[:version]
|
86
|
+
if (branch != "develop")
|
87
|
+
puts "CRITICAL: releases must be made off of develop"
|
88
|
+
else
|
89
|
+
puts `git fetch origin`
|
90
|
+
messagelog = []
|
91
|
+
messagelog << "Release #{version}"
|
92
|
+
messagelog << ""
|
93
|
+
`git log --pretty="%s" origin/master...develop`.gsub("'", "\"").chomp.split("\n").each { |l| messagelog << l }
|
94
|
+
releasemessage = messagelog.join("\n")
|
95
|
+
puts `git pull origin`
|
96
|
+
puts `git checkout master`
|
97
|
+
puts `git pull origin`
|
98
|
+
puts `git merge -m '#{releasemessage}' --no-ff develop`
|
99
|
+
Rake::Task["prerelease"].invoke(version)
|
100
|
+
puts `git add -A`
|
101
|
+
puts `git commit --amend -m '#{releasemessage}'`
|
102
|
+
puts `git tag -s -m 'Release #{version}' #{version}`
|
103
|
+
puts `git checkout develop`
|
104
|
+
puts `git merge master`
|
105
|
+
end
|
106
|
+
end
|
107
|
+
task :push do
|
108
|
+
puts `git push origin --tags`
|
109
|
+
puts `git push origin develop:develop`
|
110
|
+
puts `git push origin master:master`
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
data/lib/simp/metadata.rb
CHANGED
@@ -76,7 +76,11 @@ module Simp
|
|
76
76
|
else
|
77
77
|
urlspec = component.primary
|
78
78
|
end
|
79
|
-
|
79
|
+
if component.method == 'file'
|
80
|
+
FileUtils.cp_r component.url, directory_name
|
81
|
+
else
|
82
|
+
fetch_from_url(urlspec, retval['path'], component, options)
|
83
|
+
end
|
80
84
|
else
|
81
85
|
raise "component.class=#{component.class}, #{component.class} is not in ['String', 'Simp::Metadata::Component']"
|
82
86
|
end
|
@@ -57,7 +57,7 @@ module Simp
|
|
57
57
|
opts.on('-p', '--platform [platform]', 'el_version to use', 'valid platforms:', ' - el6', ' - el7') do |opt|
|
58
58
|
options['platform'] = opt
|
59
59
|
end
|
60
|
-
yield(opts) if block_given?
|
60
|
+
yield(opts,options) if block_given?
|
61
61
|
end
|
62
62
|
option_parser.parse!(argv)
|
63
63
|
options
|
@@ -4,7 +4,7 @@ module Simp
|
|
4
4
|
module Commands
|
5
5
|
class Clone < Simp::Metadata::Commands::Base
|
6
6
|
def run(argv, engine = nil)
|
7
|
-
options = defaults(argv) do |opts|
|
7
|
+
options = defaults(argv) do |opts,options|
|
8
8
|
opts.banner = 'Usage: simp-metadata clone <source_release> <target_release>'
|
9
9
|
end
|
10
10
|
|
@@ -8,18 +8,18 @@ module Simp
|
|
8
8
|
|
9
9
|
case subcommand
|
10
10
|
when '--help', '-h'
|
11
|
-
options = defaults(argv) do |opts|
|
11
|
+
options = defaults(argv) do |opts,options|
|
12
12
|
opts.banner = 'Usage: simp-metadata component [ view | diff | download | build | update | create ]'
|
13
13
|
end
|
14
14
|
|
15
15
|
when 'create'
|
16
|
-
options = defaults(argv) do |opts|
|
16
|
+
options = defaults(argv) do |opts,options|
|
17
17
|
opts.banner = 'Usage: simp-metadata component create <component_name> name=<value>'
|
18
18
|
end
|
19
19
|
engine, root = get_engine(engine, options)
|
20
20
|
component = argv[1]
|
21
21
|
argv.shift
|
22
|
-
data = {
|
22
|
+
data = {'locations' => [{'primary' => true}]}
|
23
23
|
argv.each do |argument|
|
24
24
|
splitted = argument.split('=')
|
25
25
|
name = splitted[0]
|
@@ -40,7 +40,7 @@ module Simp
|
|
40
40
|
engine.components.create(component, data)
|
41
41
|
|
42
42
|
when 'update'
|
43
|
-
options = defaults(argv) do |opts|
|
43
|
+
options = defaults(argv) do |opts,options|
|
44
44
|
opts.banner = 'Usage: simp-metadata component update <component> <setting> <value>'
|
45
45
|
end
|
46
46
|
engine, root = get_engine(engine, options)
|
@@ -59,8 +59,32 @@ module Simp
|
|
59
59
|
exit 6
|
60
60
|
end
|
61
61
|
|
62
|
+
when 'find_release'
|
63
|
+
options = defaults(argv) do |opts, options|
|
64
|
+
opts.banner = "Usage: simp-metadata component find_release <component> <attribute> <value>\n"
|
65
|
+
opts.banner << " Output releases where specified components <attribute> matches <value>"
|
66
|
+
opts.on('-s', '--show-all', 'Shows all release matches, including unstable and nightlies') do |show_all|
|
67
|
+
options['show_all'] = show_all
|
68
|
+
end
|
69
|
+
end
|
70
|
+
engine, root = get_engine(engine, options)
|
71
|
+
component = argv[1]
|
72
|
+
attribute = argv[2]
|
73
|
+
value = argv[3]
|
74
|
+
|
75
|
+
releases = engine.releases.keys - ['test-stub','test-diff','test-nightly-2018-02-08','5.1.0-2','5.1.0-1','5.1.0-0','4.2.0-0','5.1.0-RC1','5.1.0-Beta','4.2.0-RC1','4.2.0-Beta2']
|
76
|
+
matches = releases.select{ |release| puts "true" if engine.releases[release].components[component].version?; engine.releases[release].components[component][attribute] == value}
|
77
|
+
if options['show_all']
|
78
|
+
output = matches
|
79
|
+
else
|
80
|
+
delete = ['unstable']
|
81
|
+
matches.each{ |match| delete.push(match) if match =~ /nightly-/ }
|
82
|
+
output = matches - delete
|
83
|
+
end
|
84
|
+
puts output
|
85
|
+
|
62
86
|
when 'view'
|
63
|
-
options = defaults(argv) do |opts|
|
87
|
+
options = defaults(argv) do |opts,options|
|
64
88
|
opts.banner = 'Usage: simp-metadata component view <component> [attribute]'
|
65
89
|
end
|
66
90
|
engine, root = get_engine(engine, options)
|
@@ -80,7 +104,7 @@ module Simp
|
|
80
104
|
end
|
81
105
|
|
82
106
|
when 'diff'
|
83
|
-
options = defaults(argv) do |opts|
|
107
|
+
options = defaults(argv) do |opts,options|
|
84
108
|
opts.banner = 'Usage: simp-metadata component diff <release1> <release2> <component> [attribute]'
|
85
109
|
end
|
86
110
|
engine, root = get_engine(engine, options)
|
@@ -94,13 +118,20 @@ module Simp
|
|
94
118
|
puts diff.to_yaml
|
95
119
|
|
96
120
|
when 'download'
|
97
|
-
options = defaults(argv) do |opts|
|
98
|
-
opts.banner = 'Usage: simp-metadata component download -v <version> <
|
121
|
+
options = defaults(argv) do |opts,options|
|
122
|
+
opts.banner = 'Usage: simp-metadata component download [-v <version>] [-d <destination>] [-s <source>] <component>'
|
123
|
+
options['source'] = []
|
124
|
+
opts.on('-s', '--source [path/url]', 'URL or path to grab RPMs from (can be passed more than once)') do |opt|
|
125
|
+
options['source'] << opt
|
126
|
+
end
|
127
|
+
opts.on('-d', '--destination [path]', 'folder to build RPMs in') do |opt|
|
128
|
+
options['destination'] = opt
|
129
|
+
end
|
99
130
|
end
|
100
131
|
engine, root = get_engine(engine, options)
|
101
132
|
component = argv[1]
|
102
|
-
destination =
|
103
|
-
source =
|
133
|
+
destination = options['destination']
|
134
|
+
source = options['source']
|
104
135
|
if engine.components.key?(component)
|
105
136
|
if options['release'].nil?
|
106
137
|
comp = engine.components[component]
|
@@ -114,12 +145,15 @@ module Simp
|
|
114
145
|
end
|
115
146
|
|
116
147
|
when 'build'
|
117
|
-
options = defaults(argv) do |opts|
|
118
|
-
opts.banner = 'Usage: simp-metadata component build <
|
148
|
+
options = defaults(argv) do |opts,options|
|
149
|
+
opts.banner = 'Usage: simp-metadata component build [-v <version>] [-d <destination>] [-s <source>] <component>'
|
150
|
+
opts.on('-d', '--destination [path]', 'folder to build RPMs in') do |opt|
|
151
|
+
options['destination'] = opt
|
152
|
+
end
|
119
153
|
end
|
120
154
|
engine, root = get_engine(engine, options)
|
121
155
|
component = argv[1]
|
122
|
-
destination =
|
156
|
+
destination = options['destination']
|
123
157
|
if engine.components.key?(component)
|
124
158
|
if options['release'].nil?
|
125
159
|
comp = engine.components[component]
|
@@ -4,7 +4,7 @@ module Simp
|
|
4
4
|
module Commands
|
5
5
|
class Release < Simp::Metadata::Commands::Base
|
6
6
|
def run(argv, engine = nil)
|
7
|
-
options = defaults(argv) do |opts|
|
7
|
+
options = defaults(argv) do |opts,options|
|
8
8
|
opts.banner = 'Usage: simp-metadata release <release_name> [components]'
|
9
9
|
opts.banner = ' simp-metadata release diff <release1> <release2>'
|
10
10
|
end
|
@@ -6,7 +6,7 @@ module Simp
|
|
6
6
|
module Commands
|
7
7
|
class Script < Simp::Metadata::Commands::Base
|
8
8
|
def run(argv, engine = nil)
|
9
|
-
options = defaults(argv) do |opts|
|
9
|
+
options = defaults(argv) do |opts,options|
|
10
10
|
opts.banner = 'Usage: simp-metadata script [options] <filename>'
|
11
11
|
end
|
12
12
|
|
@@ -6,7 +6,7 @@ module Simp
|
|
6
6
|
module Commands
|
7
7
|
class Search < Simp::Metadata::Commands::Base
|
8
8
|
def run(argv, engine = nil)
|
9
|
-
options = defaults(argv) do |opts|
|
9
|
+
options = defaults(argv) do |opts,options|
|
10
10
|
opts.banner = "Usage: simp-metadata search <attribute>=<value>\n(supports multiple attributes as well as encoded URLs)"
|
11
11
|
end
|
12
12
|
|
@@ -4,7 +4,7 @@ module Simp
|
|
4
4
|
module Commands
|
5
5
|
class Set_write_url < Simp::Metadata::Commands::Base
|
6
6
|
def run(argv, engine = nil)
|
7
|
-
options = defaults(argv) do |opts|
|
7
|
+
options = defaults(argv) do |opts,options|
|
8
8
|
opts.banner = 'Usage: simp-metadata set-write-url <repo_name> <url>'
|
9
9
|
end
|
10
10
|
|
@@ -4,7 +4,7 @@ module Simp
|
|
4
4
|
module Commands
|
5
5
|
class Update < Simp::Metadata::Commands::Base
|
6
6
|
def run(argv, engine = nil)
|
7
|
-
options = defaults(argv) do |opts|
|
7
|
+
options = defaults(argv) do |opts,options|
|
8
8
|
opts.banner = 'Usage: simp-metadata update <component> <setting> <value>'
|
9
9
|
end
|
10
10
|
|
@@ -303,6 +303,22 @@ module Simp
|
|
303
303
|
ver
|
304
304
|
end
|
305
305
|
|
306
|
+
def version?
|
307
|
+
Dir.mktmpdir do |dir|
|
308
|
+
Dir.chdir(dir) do
|
309
|
+
system("git clone #{url} > /dev/null 2>&1")
|
310
|
+
Dir.chdir("./#{module_name}") do
|
311
|
+
exitcode = Simp::Metadata.run("git checkout #{version} > /dev/null 2>&1")
|
312
|
+
if exitcode == 0
|
313
|
+
true
|
314
|
+
else
|
315
|
+
false
|
316
|
+
end
|
317
|
+
end
|
318
|
+
end
|
319
|
+
end
|
320
|
+
end
|
321
|
+
|
306
322
|
def rpm_basename
|
307
323
|
if component_type == 'puppet-module'
|
308
324
|
if name =~ /pupmod-*/
|
@@ -522,10 +538,10 @@ module Simp
|
|
522
538
|
rpm_name = self.rpm_name
|
523
539
|
return if File.exist?("#{destination}/#{rpm_name}")
|
524
540
|
el_version = platform.split('el')[1]
|
525
|
-
if src.
|
526
|
-
sources =
|
541
|
+
if src.any?
|
542
|
+
sources = src
|
527
543
|
else
|
528
|
-
sources = [
|
544
|
+
sources = ["https://download.simp-project.com/SIMP/yum/simp6/el/#{el_version}/x86_64", "https://download.simp-project.com/SIMP/yum/unstable/el/#{el_version}/x86_64"]
|
529
545
|
end
|
530
546
|
sources.each do |source|
|
531
547
|
if source =~ /^https?:/
|
@@ -537,7 +553,7 @@ module Simp
|
|
537
553
|
puts "Copied #{rpm_name} from #{source}" if File.exist?("#{destination}/#{rpm_name}")
|
538
554
|
return if File.exist?("#{destination}/#{rpm_name}")
|
539
555
|
end
|
540
|
-
puts "Unable to
|
556
|
+
puts "Unable to find #{rpm_name} from #{sources}"
|
541
557
|
end
|
542
558
|
end
|
543
559
|
end
|
data/lib/simp/metadata/engine.rb
CHANGED
@@ -20,12 +20,19 @@ module Simp
|
|
20
20
|
bootstrap_source = Simp::Metadata::Bootstrap_source.new(edition)
|
21
21
|
if metadatarepos.class.to_s == 'Hash'
|
22
22
|
metadatarepos.each do |reponame, url|
|
23
|
+
if url.match?(/https?:/)
|
24
|
+
method = 'git'
|
25
|
+
extract = false
|
26
|
+
else
|
27
|
+
method = 'file'
|
28
|
+
extract = true
|
29
|
+
end
|
23
30
|
# XXX: ToDo replace with better logic once Simp::Metadata.download_component gets refactored.
|
24
31
|
# MUCH LAYERING VIOLATIONS
|
25
32
|
next unless bootstrap_source.components.key?(reponame)
|
26
33
|
bootstrap_source.components[reponame]['locations'][0]['url'] = url
|
27
|
-
bootstrap_source.components[reponame]['locations'][0]['method'] =
|
28
|
-
bootstrap_source.components[reponame]['locations'][0]['extract'] =
|
34
|
+
bootstrap_source.components[reponame]['locations'][0]['method'] = method
|
35
|
+
bootstrap_source.components[reponame]['locations'][0]['extract'] = extract
|
29
36
|
end
|
30
37
|
end
|
31
38
|
@sources[bootstrap_source.name] = bootstrap_source
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simp-metadata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Riden
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-12-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: pry
|
@@ -219,6 +219,7 @@ files:
|
|
219
219
|
- lib/simp/metadata/release.rb
|
220
220
|
- lib/simp/metadata/releases.rb
|
221
221
|
- lib/simp/metadata/source.rb
|
222
|
+
- lib/simp/metadata/version.erb
|
222
223
|
- lib/simp/metadata/version.rb
|
223
224
|
- spec/simp/media/command_spec.rb
|
224
225
|
- spec/simp/media/engine_spec.rb
|
@@ -255,7 +256,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
255
256
|
version: '0'
|
256
257
|
requirements: []
|
257
258
|
rubyforge_project:
|
258
|
-
rubygems_version: 2.7.
|
259
|
+
rubygems_version: 2.7.8
|
259
260
|
signing_key:
|
260
261
|
specification_version: 4
|
261
262
|
summary: SIMP Metadata Library
|