baltix 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ci.yml +44 -0
  3. data/.gitignore +10 -0
  4. data/Gemfile +8 -0
  5. data/LICENSE +8 -0
  6. data/README.md +60 -0
  7. data/Rakefile +8 -0
  8. data/TODO +84 -0
  9. data/baltix.gemspec +39 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/exe/baltix +4 -0
  13. data/lib/baltix/actor/copy.rb +19 -0
  14. data/lib/baltix/actor/link.rb +20 -0
  15. data/lib/baltix/actor/spec.rb +25 -0
  16. data/lib/baltix/actor/touch.rb +17 -0
  17. data/lib/baltix/actor.rb +75 -0
  18. data/lib/baltix/cli.rb +173 -0
  19. data/lib/baltix/deps.rb +280 -0
  20. data/lib/baltix/dsl.rb +311 -0
  21. data/lib/baltix/extensions.rb +536 -0
  22. data/lib/baltix/i18n.rb +64 -0
  23. data/lib/baltix/loader/cmake.rb +11 -0
  24. data/lib/baltix/loader/git-version-gen.rb +36 -0
  25. data/lib/baltix/loader/mast.rb +139 -0
  26. data/lib/baltix/loader/pom.rb +27 -0
  27. data/lib/baltix/loader/rookbook.rb +26 -0
  28. data/lib/baltix/loader/yaml.rb +18 -0
  29. data/lib/baltix/loader.rb +192 -0
  30. data/lib/baltix/log.rb +73 -0
  31. data/lib/baltix/rake.rb +57 -0
  32. data/lib/baltix/scheme.erb.yaml +20 -0
  33. data/lib/baltix/source/base.rb +438 -0
  34. data/lib/baltix/source/fake.rb +17 -0
  35. data/lib/baltix/source/gem.rb +407 -0
  36. data/lib/baltix/source/gemfile.rb +35 -0
  37. data/lib/baltix/source/rakefile.rb +24 -0
  38. data/lib/baltix/source.rb +57 -0
  39. data/lib/baltix/space/spec.rb +11 -0
  40. data/lib/baltix/space.rb +424 -0
  41. data/lib/baltix/spec/rpm/name.rb +155 -0
  42. data/lib/baltix/spec/rpm/parser.rb +412 -0
  43. data/lib/baltix/spec/rpm/secondary.rb +170 -0
  44. data/lib/baltix/spec/rpm/spec_core.rb +580 -0
  45. data/lib/baltix/spec/rpm.erb +188 -0
  46. data/lib/baltix/spec/rpm.rb +822 -0
  47. data/lib/baltix/spec.rb +48 -0
  48. data/lib/baltix/version.rb +3 -0
  49. data/lib/baltix.rb +19 -0
  50. data/locale/en_US.UTF-8.yaml +27 -0
  51. data/locale/ru_RU.UTF-8.yaml +23 -0
  52. metadata +216 -0
@@ -0,0 +1,48 @@
1
+ module Baltix::Spec
2
+ class InvalidSpecKindError < StandardError; end
3
+ class UndetectedSpecSourceError < StandardError; end
4
+ class InvalidSpaceError < StandardError; end
5
+
6
+ AUTOMAP =
7
+ %w(Rpm).reduce({}) do |types, name|
8
+ autoload(:"#{name}", File.dirname(__FILE__) + "/spec/#{name.downcase}")
9
+ types.merge(name.to_sym => "Baltix/Spec/#{name}".downcase)
10
+ end
11
+
12
+ class << self
13
+ def kinds
14
+ specs.keys
15
+ end
16
+
17
+ def specs
18
+ @specs ||= AUTOMAP.keys.map do |const|
19
+ require(AUTOMAP[const])
20
+ [ const.to_s.downcase, const_get(const) ]
21
+ end.to_h
22
+ end
23
+
24
+ def find spec_kind
25
+ specs[spec_kind.to_s] || raise(InvalidSpecKindError.new(spec_kind: spec_kind))
26
+ end
27
+
28
+ def load_from source: raise, options: {}, space: raise(InvalidSpaceError.new)
29
+ source_pre =
30
+ case source
31
+ when IO, StringIO
32
+ source.readlines.join("")
33
+ when String
34
+ source
35
+ else
36
+ source.to_s
37
+ end
38
+
39
+ spec = specs.values.find { |spec| spec.match?(source_pre) }
40
+
41
+ if spec
42
+ spec.parse(source_pre, options, space)
43
+ else
44
+ raise(UndetectedSpecSourceError.new(source: source))
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,3 @@
1
+ module Baltix
2
+ VERSION = "0.1.1"
3
+ end
data/lib/baltix.rb ADDED
@@ -0,0 +1,19 @@
1
+ begin
2
+ require 'pry'
3
+ rescue LoadError
4
+ end
5
+
6
+ require 'ostruct'
7
+
8
+ require "baltix/version"
9
+ require "baltix/extensions"
10
+ require 'baltix/i18n'
11
+ require 'baltix/deps'
12
+
13
+ module Baltix
14
+ ::Kernel.extend(Extensions::Kernel)
15
+ ::Object.include(Extensions::Object)
16
+ ::OpenStruct.include(Extensions::OpenStruct)
17
+ ::Hash.include(Extensions::Hash)
18
+ ::Gem::Requirement.include(Extensions::GemRequirement)
19
+ end
@@ -0,0 +1,27 @@
1
+ ---
2
+ spec:
3
+ rpm:
4
+ change:
5
+ upgrade: "- ^ %previous_version -> %version"
6
+ fix: "- ! spec"
7
+ new: "- + packaged gem with Ruby Policy 2.0"
8
+ app:
9
+ summary: "%summary"
10
+ description: "%summary."
11
+ group: Other
12
+ lib:
13
+ summary: "%summary"
14
+ description: "%summary."
15
+ group: Development/Ruby
16
+ exec:
17
+ summary: "%summary executable(s)"
18
+ description: "%summary executable(s)."
19
+ group: Other
20
+ doc:
21
+ summary: "%summary documentation files"
22
+ description: "%summary documentation files."
23
+ group: Development/Documentation
24
+ devel:
25
+ summary: "%summary development package"
26
+ description: "%summary development package."
27
+ group: Development/Ruby
@@ -0,0 +1,23 @@
1
+ ---
2
+ spec:
3
+ rpm:
4
+ change:
5
+ upgrade: "- ^ %previous_version -> %version"
6
+ fix: "- ! спек"
7
+ new: "- + самоцвет упакован на основе политик Ruby 2.0"
8
+ app:
9
+ group: Other
10
+ lib:
11
+ group: Development/Ruby
12
+ exec:
13
+ summary: Исполнямка для самоцвета %source_name
14
+ description: Исполнямка для самоцвета %source_name.
15
+ group: Other
16
+ doc:
17
+ summary: Файлы сведений для самоцвета %source_name
18
+ description: Файлы сведений для самоцвета %source_name.
19
+ group: Development/Documentation
20
+ devel:
21
+ summary: Файлы для разработки самоцвета %source_name
22
+ description: Файлы для разработки самоцвета %source_name.
23
+ group: Development/Ruby
metadata ADDED
@@ -0,0 +1,216 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: baltix
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Pavel Skrylev
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2023-11-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '12.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '12.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.13'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.13'
55
+ - !ruby/object:Gem::Dependency
56
+ name: cucumber
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '5.2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '5.2'
69
+ - !ruby/object:Gem::Dependency
70
+ name: shoulda-matchers-cucumber
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.0'
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 1.0.1
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '1.0'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.0.1
89
+ - !ruby/object:Gem::Dependency
90
+ name: timecop
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: simplecov
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: simplecov-lcov
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ description: Baltix is setup replacement and spec control utility for RPM/local packages
132
+ email:
133
+ - majioa@altlinux.org
134
+ executables:
135
+ - baltix
136
+ extensions: []
137
+ extra_rdoc_files: []
138
+ files:
139
+ - ".github/workflows/ci.yml"
140
+ - ".gitignore"
141
+ - Gemfile
142
+ - LICENSE
143
+ - README.md
144
+ - Rakefile
145
+ - TODO
146
+ - baltix.gemspec
147
+ - bin/console
148
+ - bin/setup
149
+ - exe/baltix
150
+ - lib/baltix.rb
151
+ - lib/baltix/actor.rb
152
+ - lib/baltix/actor/copy.rb
153
+ - lib/baltix/actor/link.rb
154
+ - lib/baltix/actor/spec.rb
155
+ - lib/baltix/actor/touch.rb
156
+ - lib/baltix/cli.rb
157
+ - lib/baltix/deps.rb
158
+ - lib/baltix/dsl.rb
159
+ - lib/baltix/extensions.rb
160
+ - lib/baltix/i18n.rb
161
+ - lib/baltix/loader.rb
162
+ - lib/baltix/loader/cmake.rb
163
+ - lib/baltix/loader/git-version-gen.rb
164
+ - lib/baltix/loader/mast.rb
165
+ - lib/baltix/loader/pom.rb
166
+ - lib/baltix/loader/rookbook.rb
167
+ - lib/baltix/loader/yaml.rb
168
+ - lib/baltix/log.rb
169
+ - lib/baltix/rake.rb
170
+ - lib/baltix/scheme.erb.yaml
171
+ - lib/baltix/source.rb
172
+ - lib/baltix/source/base.rb
173
+ - lib/baltix/source/fake.rb
174
+ - lib/baltix/source/gem.rb
175
+ - lib/baltix/source/gemfile.rb
176
+ - lib/baltix/source/rakefile.rb
177
+ - lib/baltix/space.rb
178
+ - lib/baltix/space/spec.rb
179
+ - lib/baltix/spec.rb
180
+ - lib/baltix/spec/rpm.erb
181
+ - lib/baltix/spec/rpm.rb
182
+ - lib/baltix/spec/rpm/name.rb
183
+ - lib/baltix/spec/rpm/parser.rb
184
+ - lib/baltix/spec/rpm/secondary.rb
185
+ - lib/baltix/spec/rpm/spec_core.rb
186
+ - lib/baltix/version.rb
187
+ - locale/en_US.UTF-8.yaml
188
+ - locale/ru_RU.UTF-8.yaml
189
+ homepage: https://github.org/majioa/baltix
190
+ licenses:
191
+ - MIT
192
+ metadata:
193
+ allowed_push_host: https://rubygems.org
194
+ homepage_uri: https://github.org/majioa/baltix
195
+ source_code_uri: https://github.org/majioa/baltix
196
+ changelog_uri: https://github.org/majioa/baltix/CHANGELOG.md
197
+ post_install_message:
198
+ rdoc_options: []
199
+ require_paths:
200
+ - lib
201
+ required_ruby_version: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: 3.0.0
206
+ required_rubygems_version: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: '0'
211
+ requirements: []
212
+ rubygems_version: 3.3.26
213
+ signing_key:
214
+ specification_version: 4
215
+ summary: Baltix is setup replacement and spec control utility for RPM/local packages
216
+ test_files: []