dtc_rake 0.1.0
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 +7 -0
- data/.gitignore +9 -0
- data/Gemfile +4 -0
- data/README.md +238 -0
- data/Rakefile +2 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/dtc_rake.gemspec +27 -0
- data/lib/dtc_rake/config.rb +112 -0
- data/lib/dtc_rake/product.rb +137 -0
- data/lib/dtc_rake/tasks.rb +28 -0
- data/lib/dtc_rake/ui.rb +49 -0
- data/lib/dtc_rake/util.rb +58 -0
- data/lib/dtc_rake/version.rb +3 -0
- data/lib/dtc_rake.rb +4 -0
- data/lib/tasks/appbox.rake +90 -0
- data/lib/tasks/build_all.rake +20 -0
- data/lib/tasks/build_cmd.rake +25 -0
- data/lib/tasks/build_dockerfiles.rake +51 -0
- data/lib/tasks/build_gem.rake +23 -0
- data/lib/tasks/build_vuc.rake +25 -0
- data/lib/tasks/build_yardoc.rake +57 -0
- data/lib/tasks/upload_all.rake +22 -0
- data/lib/tasks/upload_cmd.rake +40 -0
- data/lib/tasks/upload_descriptor.rb +41 -0
- data/lib/tasks/upload_dockerfiles.rake +40 -0
- data/lib/tasks/upload_gem.rake +40 -0
- data/lib/tasks/upload_vuc.rake +40 -0
- data/lib/tasks/upload_yardoc.rake +40 -0
- metadata +147 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c817667aaedf7106b5c94e35686711cd05a1397e
|
4
|
+
data.tar.gz: 519d634e71da52759dbf46bfd0d6d4c2297e249f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1e3fb74e9dc74d865c3822f206027800378089db348deece4b808fb325754aab5777e65c011612b557ec788f412f5784f6027eabaf277f28d9086473c4b3a9cf
|
7
|
+
data.tar.gz: 4aff5f658dce122c1e9ac33f97ad56b200b689ce2c2b55e2900219e813cef917fd5938367d4fb945dcae376c9cd7dbee452d4374e207ca72f302c1079a01f371
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,238 @@
|
|
1
|
+
# dtc_rake
|
2
|
+
|
3
|
+
Rake tasks for building apps produced by DTC.DEV team.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's `Gemfile`:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem "dtc_rake", git: ""ssh://git@codebase.plus4u.net:9422/dtc.rake.git
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or build it yourself from source as:
|
18
|
+
|
19
|
+
$ git clone ssh://git@codebase.plus4u.net:9422/dtc.rake.git
|
20
|
+
$ cd dtc.rake/dtc_rake
|
21
|
+
$ rake install
|
22
|
+
|
23
|
+
# Quick Start
|
24
|
+
|
25
|
+
For a quick start just add to your appbox project's `Rakefile`:
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
require "dtc_rake"
|
29
|
+
|
30
|
+
DtcRake.configure do |config|
|
31
|
+
config.appbox_uarchive = "<uarchive_path>"
|
32
|
+
config.appbox_territory_code = "<territory_code>"
|
33
|
+
config.appbox_meta_artifact_code = "<meta_artifact_code>"
|
34
|
+
config.appbox_location_code = "<folder_code>"
|
35
|
+
end
|
36
|
+
```
|
37
|
+
|
38
|
+
*Note: The appbox project name should be `<vendor>_<app>-appbox` and it must contain a uuApp deployment descriptor with default name `<vendor>_<app>-uuapp.json`.*
|
39
|
+
|
40
|
+
All shared tasks will be found and loaded automatically, you can verify it with `rake -T` command.
|
41
|
+
|
42
|
+
It is recommended to check whether the defaults fit your needs and change the configuration if needed.
|
43
|
+
|
44
|
+
Also set `DTC_RAKE_PASSWD` environment variable. It represents path to password file with authentication credentials (necessary for appbox creation and packs uploading). Its value can be either path relative to `uu.home` or an absolute path.
|
45
|
+
|
46
|
+
Example:
|
47
|
+
|
48
|
+
```sh
|
49
|
+
rake upload:cmd DTC_RAKE_PASSWD=12-345-6
|
50
|
+
# or
|
51
|
+
rake upload:cmd DTC_RAKE_PASSWD=/path/to/12-345-6
|
52
|
+
```
|
53
|
+
|
54
|
+
*Tip: If you set `DTC_RAKE_PASSWD` globally (e.g. in your `.bash_profile` or `.zshenv`), you won't have to set it everytime you use Rake tasks from this gem.*
|
55
|
+
|
56
|
+
# Documentation
|
57
|
+
|
58
|
+
TODO Link to online yardoc
|
59
|
+
|
60
|
+
## Configuration
|
61
|
+
|
62
|
+
The following example shows all configuration options:
|
63
|
+
|
64
|
+
|
65
|
+
```ruby
|
66
|
+
require "dtc_rake"
|
67
|
+
|
68
|
+
DtcRake.configure do |config|
|
69
|
+
# Code of application. Guessed from root_dir name if not set.
|
70
|
+
config.app = "<app_code>"
|
71
|
+
|
72
|
+
# Code of appbox artifact. Guessed from vendor, app and version in uuApp
|
73
|
+
# deployment descriptor if not set.
|
74
|
+
config.appbox_artifact_code = "<artifact_code>"
|
75
|
+
|
76
|
+
# Code of appbox location (folder or organization unit). Required.
|
77
|
+
config.appbox_location_code = "<folder_code>"
|
78
|
+
|
79
|
+
# Code of appbox meta artifact. Default value: UU.OS/RUNTIME/APP_BOX.
|
80
|
+
config.appbox_meta_artifact_code = "<meta_artifact_code>"
|
81
|
+
|
82
|
+
# Code of territory where the appbox artifact is / should be. Required.
|
83
|
+
config.appbox_territory_code = "<territory_code>"
|
84
|
+
|
85
|
+
# Path to uarchive with contents of appbox artifact. Default value: nil.
|
86
|
+
# If not set, appbox is created with empty content.
|
87
|
+
# Relative path is relative to root_dir.
|
88
|
+
config.appbox_uarchive = "<uarchive_path>"
|
89
|
+
|
90
|
+
# Path to uuApp deployment descriptor. Guessed from vendor and app if not set.
|
91
|
+
config.app_descriptor_path = "<deployment_descriptor_path>"
|
92
|
+
|
93
|
+
# Print messages in colors. Default value: true.
|
94
|
+
config.colorize = true
|
95
|
+
|
96
|
+
# Name of folder with build products. Default value: target.
|
97
|
+
# Relative path is relative to root_dir.
|
98
|
+
config.output_dir = "target"
|
99
|
+
|
100
|
+
# Appbox project root folder. Default value: current working directory.
|
101
|
+
config.root_dir = Dir.pwd
|
102
|
+
|
103
|
+
# Upload uuApp deployment descriptor to appbox artifact. Default value: false.
|
104
|
+
config.upload_app_descriptor = true
|
105
|
+
|
106
|
+
# Code of vendor. Guessed from root_dir name if not set.
|
107
|
+
config.vendor = "<vendor_code>"
|
108
|
+
end
|
109
|
+
```
|
110
|
+
|
111
|
+
## Explanation of Provided Tasks
|
112
|
+
|
113
|
+
### appbox
|
114
|
+
|
115
|
+
Creates new appbox artifact.
|
116
|
+
|
117
|
+
### build:all
|
118
|
+
|
119
|
+
Builds all available packs. Which packs get built depends on which projects exist for the app being built.
|
120
|
+
|
121
|
+
Example:
|
122
|
+
|
123
|
+
Only tasks for building command client and server would be available for app with the following structure.
|
124
|
+
|
125
|
+
```
|
126
|
+
cds.gb
|
127
|
+
+- cds_gb
|
128
|
+
+- cds_gb-appbox
|
129
|
+
+- Rakefile
|
130
|
+
+- cds_gb-cmd
|
131
|
+
```
|
132
|
+
|
133
|
+
### build:cmd
|
134
|
+
|
135
|
+
Builds pack with command server. Available if project `<vendor>_<app>-cmd` exists.
|
136
|
+
|
137
|
+
### build:dockerfiles
|
138
|
+
|
139
|
+
Builds pack with `Dockerfile`s. Available if project `<vendor>_<app>-dockerfiles` exists.
|
140
|
+
|
141
|
+
### build:gem
|
142
|
+
|
143
|
+
Builds pack with command client Ruby gem. Available if project `<vendor>_<app>` exists.
|
144
|
+
|
145
|
+
### build:vuc
|
146
|
+
|
147
|
+
Builds pack with visual use cases. Available if project `<vendor>_<app>-vuc` exists.
|
148
|
+
|
149
|
+
### build:yardoc
|
150
|
+
|
151
|
+
Builds pach with command client yardoc. Available if project `<vendor>_<app>` exists.
|
152
|
+
|
153
|
+
### upload:all
|
154
|
+
|
155
|
+
Uploads all available packs to appbox artifact. Which packs get uploaded depends on which projects exist for the app being built. See example for the `build:all` task.
|
156
|
+
|
157
|
+
### upload:cmd
|
158
|
+
|
159
|
+
Uploads pack with command server to appbox artifact. Available if project `<vendor>_<app>-cmd` exists.
|
160
|
+
|
161
|
+
Requires `DTC_RAKE_PASSWD` to be set.
|
162
|
+
|
163
|
+
### upload:descriptor
|
164
|
+
|
165
|
+
Uploads uuApp deployment descriptor to appbox artifact. Available if `config.upload_app_descriptor` is set to `true`.
|
166
|
+
|
167
|
+
Requires `DTC_RAKE_PASSWD` to be set.
|
168
|
+
|
169
|
+
### upload:dockerfiles
|
170
|
+
|
171
|
+
Uploads pack with `Dockerfile`s to appbox artifact. Available if project `<vendor>_<app>-dockerfiles` exists.
|
172
|
+
|
173
|
+
Requires `DTC_RAKE_PASSWD` to be set.
|
174
|
+
|
175
|
+
### upload:gem
|
176
|
+
|
177
|
+
Uploads pack with command client Ruby gem to appbox artifact. Available if project `<vendor>_<app>` exists.
|
178
|
+
|
179
|
+
Requires `DTC_RAKE_PASSWD` to be set.
|
180
|
+
|
181
|
+
### upload:vuc
|
182
|
+
|
183
|
+
Uploads pack with visual use cases to appbox artifact. Available if project `<vendor>_<app>-vuc` exists.
|
184
|
+
|
185
|
+
Requires `DTC_RAKE_PASSWD` to be set.
|
186
|
+
|
187
|
+
### upload:yardoc
|
188
|
+
|
189
|
+
Uploads pach with command client yardoc to appbox artifact. Available if project `<vendor>_<app>` exists.
|
190
|
+
|
191
|
+
Requires `DTC_RAKE_PASSWD` to be set.
|
192
|
+
|
193
|
+
# How-to
|
194
|
+
|
195
|
+
## How to Add Custom Task
|
196
|
+
|
197
|
+
When a project requires a specific Rake task then implement it and add it to a shared task as dependency:
|
198
|
+
|
199
|
+
```ruby
|
200
|
+
namespace :build do
|
201
|
+
desc "Builds pack with widget"
|
202
|
+
task :widget do
|
203
|
+
...
|
204
|
+
end
|
205
|
+
end
|
206
|
+
task "build:all" => "widget"
|
207
|
+
```
|
208
|
+
|
209
|
+
## How to Remove a Task
|
210
|
+
|
211
|
+
If there is a task that doesn't make sense for you then you can exclude it from loading.
|
212
|
+
|
213
|
+
For example, to exclude the `upload:dockerfiles`, replace the `require`
|
214
|
+
|
215
|
+
```ruby
|
216
|
+
require "dtc_rake"
|
217
|
+
```
|
218
|
+
|
219
|
+
with
|
220
|
+
|
221
|
+
```ruby
|
222
|
+
require "dtc_rake/tasks"
|
223
|
+
DtcRake::Tasks.load_tasks(exclude: ["upload_dockerfiles.rake"])
|
224
|
+
```
|
225
|
+
|
226
|
+
To remove check that is used also as dependency for e.g. `upload:all`, it is needed to remove it also from prerequisites of task. Example how to remove `upload:dockerfiles` and do not call it when building all packs.
|
227
|
+
|
228
|
+
```ruby
|
229
|
+
require "dtc_rake/tasks"
|
230
|
+
DtcRake::Tasks.load_tasks(exclude: ["upload_dockerfiles.rake"])
|
231
|
+
Rake::Task["upload:all"].prerequisites.delete("dockerfiles")
|
232
|
+
```
|
233
|
+
|
234
|
+
# Development
|
235
|
+
|
236
|
+
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
237
|
+
|
238
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "dtc_rake"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
data/dtc_rake.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'dtc_rake/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "dtc_rake"
|
8
|
+
spec.version = DtcRake::VERSION
|
9
|
+
spec.authors = ["Jan Sibil"]
|
10
|
+
spec.email = ["21-1@plus4u.net"]
|
11
|
+
|
12
|
+
spec.summary = %q{Rake tasks for building apps produced by DTC.DEV team.}
|
13
|
+
|
14
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
15
|
+
f.match(%r{^(test|spec|features)/})
|
16
|
+
end
|
17
|
+
spec.bindir = "exe"
|
18
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_runtime_dependency "json", "~> 1.8.3"
|
22
|
+
spec.add_runtime_dependency "rainbow", "~> 2.1.0"
|
23
|
+
spec.add_runtime_dependency "uu_os", "~> 0.19"
|
24
|
+
|
25
|
+
spec.add_development_dependency "bundler", "~> 1.13", ">= 1.13.3"
|
26
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
27
|
+
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
require "rake"
|
2
|
+
require "pathname"
|
3
|
+
|
4
|
+
module DtcRake
|
5
|
+
def configure(&block)
|
6
|
+
yield Config.instance
|
7
|
+
end
|
8
|
+
module_function :configure
|
9
|
+
|
10
|
+
class Config
|
11
|
+
include Singleton
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
@root_dir = Dir.pwd
|
15
|
+
@output_dir = "target"
|
16
|
+
@colorize = true
|
17
|
+
@appbox_meta_artifact_code = "UU.OS/RUNTIME/APP_BOX"
|
18
|
+
@upload_app_descriptor = false
|
19
|
+
guess_vendor_and_app
|
20
|
+
end
|
21
|
+
|
22
|
+
# Code of application. Guessed from root_dir name if not set.
|
23
|
+
attr_accessor :app
|
24
|
+
|
25
|
+
# Code of appbox artifact. Guessed from vendor, app and version in uuApp
|
26
|
+
# deployment descriptor if not set.
|
27
|
+
attr_accessor :appbox_artifact_code
|
28
|
+
|
29
|
+
# Code of appbox location (folder or organization unit). Required.
|
30
|
+
attr_accessor :appbox_location_code
|
31
|
+
|
32
|
+
# Code of appbox meta artifact. Default value: UU.OS/RUNTIME/APP_BOX.
|
33
|
+
attr_accessor :appbox_meta_artifact_code
|
34
|
+
|
35
|
+
# Code of territory where the appbox artifact is / should be. Required.
|
36
|
+
attr_accessor :appbox_territory_code
|
37
|
+
|
38
|
+
# Path to uarchive with contents of appbox artifact. Default value: nil.
|
39
|
+
# If not set, appbox is created with empty content.
|
40
|
+
# Relative path is relative to root_dir.
|
41
|
+
attr_accessor :appbox_uarchive
|
42
|
+
|
43
|
+
# Path to uuApp deployment descriptor. Guessed from vendor and app if not set.
|
44
|
+
attr_accessor :app_descriptor_path
|
45
|
+
|
46
|
+
# Print messages in colors. Default value: true.
|
47
|
+
attr_accessor :colorize
|
48
|
+
|
49
|
+
# Name of folder with build products. Default value: target.
|
50
|
+
# Relative path is relative to root_dir.
|
51
|
+
attr_accessor :output_dir
|
52
|
+
|
53
|
+
# Appbox project root folder. Default value: current working directory.
|
54
|
+
attr_accessor :root_dir
|
55
|
+
|
56
|
+
# Upload uuApp deployment descriptor to appbox artifact. Default value: false.
|
57
|
+
attr_accessor :upload_app_descriptor
|
58
|
+
|
59
|
+
# Code of vendor. Guessed from root_dir name if not set.
|
60
|
+
attr_accessor :vendor
|
61
|
+
|
62
|
+
def app=(name)
|
63
|
+
@app = name.downcase unless name.nil?
|
64
|
+
end
|
65
|
+
|
66
|
+
def appbox_uarchive=(path)
|
67
|
+
unless path.nil?
|
68
|
+
path = File.join(root_dir, path) if Pathname.new(path).relative?
|
69
|
+
# File.expand_path converts path to absolute and expands "~" to real user home path
|
70
|
+
@appbox_uarchive = File.expand_path(path)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def app_descriptor_path
|
75
|
+
return @app_descriptor_path if @app_descriptor_path
|
76
|
+
|
77
|
+
default_file_path = File.expand_path(File.join(root_dir, "#{vendor}_#{app}-uuapp-deploy.json"))
|
78
|
+
|
79
|
+
Dir.chdir(root_dir) do
|
80
|
+
unless File.file?(default_file_path)
|
81
|
+
abort "uuApp deployment descriptor not found. Please create file #{default_file_path} or configure its path in Rakefile."
|
82
|
+
end
|
83
|
+
@app_descriptor_path = default_file_path
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def output_dir=(path)
|
88
|
+
unless path.nil?
|
89
|
+
path = File.join(root_dir, path) if Pathname.new(path).relative?
|
90
|
+
# File.expand_path converts path to absolute and expands "~" to real user home path
|
91
|
+
@output_dir = File.expand_path(path)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def vendor=(name)
|
96
|
+
@vendor = name.downcase unless name.nil?
|
97
|
+
end
|
98
|
+
|
99
|
+
private
|
100
|
+
|
101
|
+
def guess_vendor_and_app
|
102
|
+
base_name = File.basename(root_dir)
|
103
|
+
if /([^_]+)_([^-]+)-appbox/ =~ base_name
|
104
|
+
@vendor = $1
|
105
|
+
@app = $2
|
106
|
+
else
|
107
|
+
abort "Appbox root folder (#{base_name}) does not match naming convention <vendor>_<app>-appbox." \
|
108
|
+
" Either change the folder name or configure 'vendor' and 'app' in Rakefile."
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
@@ -0,0 +1,137 @@
|
|
1
|
+
require "rake"
|
2
|
+
require "dtc_rake/config"
|
3
|
+
require "dtc_rake/ui"
|
4
|
+
require "json"
|
5
|
+
require "uu/os/uesuri"
|
6
|
+
|
7
|
+
module DtcRake
|
8
|
+
class Product
|
9
|
+
include Singleton
|
10
|
+
include DtcRake::UI
|
11
|
+
|
12
|
+
# Appbox version specified in deployment descriptor.
|
13
|
+
attr_reader :version
|
14
|
+
|
15
|
+
# UESURI of the appbox artifact.
|
16
|
+
attr_reader :appbox_uri
|
17
|
+
|
18
|
+
attr_reader :gem_project, :cmd_project, :vuc_project, :dockerfiles_project
|
19
|
+
|
20
|
+
attr_reader :has_gem, :has_cmd, :has_vuc, :has_dockerfiles
|
21
|
+
|
22
|
+
attr_reader :gem_file_name, :cmd_file_name, :vuc_file_name, :yardoc_file_name, :dockerfiles_file_name
|
23
|
+
attr_reader :gem_attachment_code, :cmd_attachment_code, :vuc_attachment_code, :yardoc_attachment_code, :dockerfiles_attachment_code
|
24
|
+
|
25
|
+
def initialize
|
26
|
+
config = Config.instance
|
27
|
+
root_dir = config.root_dir
|
28
|
+
sibling_dir_path = File.expand_path(File.join(root_dir, "../#{config.vendor}_#{config.app}"))
|
29
|
+
|
30
|
+
@gem_project = sibling_dir_path
|
31
|
+
@has_gem = File.directory?(@gem_project)
|
32
|
+
|
33
|
+
@cmd_project = "#{sibling_dir_path}-cmd"
|
34
|
+
@has_cmd = File.directory?(@cmd_project)
|
35
|
+
|
36
|
+
@vuc_project = "#{sibling_dir_path}-vuc"
|
37
|
+
@has_vuc = File.directory?(@vuc_project)
|
38
|
+
|
39
|
+
@dockerfiles_project = File.expand_path(File.join(root_dir, "../docker"))
|
40
|
+
@has_dockerfiles = File.directory?(@dockerfiles_project)
|
41
|
+
end
|
42
|
+
|
43
|
+
def app_descriptor
|
44
|
+
return @app_descriptor if @app_descriptor
|
45
|
+
|
46
|
+
File.open(Config.instance.app_descriptor_path, "r") do |f|
|
47
|
+
@app_descriptor = JSON.parse(f.read, symbolize_names: true)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def version
|
52
|
+
app_descriptor[:data][:version]
|
53
|
+
end
|
54
|
+
|
55
|
+
def appbox_uri
|
56
|
+
return @appbox_uri if @appbox_uri
|
57
|
+
|
58
|
+
config = Config.instance
|
59
|
+
error("Territory code is not set. Set it in DtcRake.configure (attribute appbox_territory_code) in your Rakefile.") if config.appbox_territory_code.nil?
|
60
|
+
appbox_artifact_code = config.appbox_artifact_code || "#{config.vendor.upcase}.#{config.app.upcase}_#{version}"
|
61
|
+
appbox_uri = UU::OS::UESURI.create(territory_code: config.appbox_territory_code, artifact_code: appbox_artifact_code)
|
62
|
+
@appbox_uri = appbox_uri
|
63
|
+
end
|
64
|
+
|
65
|
+
def gem_file_name
|
66
|
+
return @gem_file_name if defined? @gem_file_name
|
67
|
+
config = Config.instance
|
68
|
+
# TODO Read version from version.rb or allow to override it from within the Rakefile
|
69
|
+
# the actual gem version differs - e.g. uu_operation_registry-1.3.0.pre.BETA.1.gem (NOT uu_operation_registry-1.3.0-BETA.1.gem)
|
70
|
+
gem_version = version.sub(/-(ALPHA|BETA|RC)/) { |match| ".pre.#{$1}" }
|
71
|
+
@gem_file_name = "#{config.vendor}_#{config.app}-#{gem_version}.gem"
|
72
|
+
end
|
73
|
+
|
74
|
+
def cmd_file_name
|
75
|
+
return @cmd_file_name if defined? @cmd_file_name
|
76
|
+
config = Config.instance
|
77
|
+
# TODO Read version from version.rb or allow to override it from within the Rakefile
|
78
|
+
@cmd_file_name = "#{config.vendor}_#{config.app}-cmd-#{version}.war"
|
79
|
+
end
|
80
|
+
|
81
|
+
def vuc_file_name
|
82
|
+
return @vuc_file_name if defined? @vuc_file_name
|
83
|
+
config = Config.instance
|
84
|
+
# TODO Read version from version.rb or allow to override it from within the Rakefile
|
85
|
+
@vuc_file_name = "#{config.vendor}_#{config.app}-vuc-#{version}.war"
|
86
|
+
end
|
87
|
+
|
88
|
+
def dockerfiles_file_name
|
89
|
+
return @dockerfiles_file_name if defined? @dockerfiles_file_name
|
90
|
+
config = Config.instance
|
91
|
+
# TODO Read version from version.rb or allow to override it from within the Rakefile
|
92
|
+
@dockerfiles_file_name = "#{config.vendor}_#{config.app}-dockerfiles-#{version}.zip"
|
93
|
+
end
|
94
|
+
|
95
|
+
def yardoc_file_name
|
96
|
+
return @yardoc_file_name if defined? @yardoc_file_name
|
97
|
+
config = Config.instance
|
98
|
+
@yardoc_file_name = "#{config.vendor}_#{config.app}-yardoc-#{version}.zip"
|
99
|
+
end
|
100
|
+
|
101
|
+
def gem_attachment_code
|
102
|
+
return @gem_attachment_code if defined? @gem_attachment_code
|
103
|
+
config = Config.instance
|
104
|
+
@gem_attachment_code = "#{config.vendor.upcase}.#{config.app.upcase}/GEM-PACK"
|
105
|
+
end
|
106
|
+
|
107
|
+
def cmd_attachment_code
|
108
|
+
return @cmd_attachment_code if defined? @cmd_attachment_code
|
109
|
+
config = Config.instance
|
110
|
+
@cmd_attachment_code = "#{config.vendor.upcase}.#{config.app.upcase}/CMD-PACK"
|
111
|
+
end
|
112
|
+
|
113
|
+
def vuc_attachment_code
|
114
|
+
return @vuc_attachment_code if defined? @vuc_attachment_code
|
115
|
+
config = Config.instance
|
116
|
+
@vuc_attachment_code = "#{config.vendor.upcase}.#{config.app.upcase}/VUC-PACK"
|
117
|
+
end
|
118
|
+
|
119
|
+
def dockerfiles_attachment_code
|
120
|
+
return @dockerfiles_attachment_code if defined? @dockerfiles_attachment_code
|
121
|
+
config = Config.instance
|
122
|
+
@dockerfiles_attachment_code = "#{config.vendor.upcase}.#{config.app.upcase}/DOCKERFILES-PACK"
|
123
|
+
end
|
124
|
+
|
125
|
+
def yardoc_attachment_code
|
126
|
+
return @yardoc_attachment_code if defined? @yardoc_attachment_code
|
127
|
+
config = Config.instance
|
128
|
+
@yardoc_attachment_code = "#{config.vendor.upcase}.#{config.app.upcase}/YARDOC-PACK"
|
129
|
+
end
|
130
|
+
|
131
|
+
def app_descriptor_attachment_code
|
132
|
+
return @app_descriptor_attachment_code if defined? @app_descriptor_attachment_code
|
133
|
+
config = Config.instance
|
134
|
+
@app_descriptor_attachment_code = "#{config.vendor.upcase}.#{config.app.upcase}/UUAPP-DEPLOY"
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require "rake"
|
2
|
+
|
3
|
+
module DtcRake
|
4
|
+
module Tasks
|
5
|
+
def load_tasks(params = {})
|
6
|
+
# a flag - load the tasks just once, multiple loading
|
7
|
+
# leads to multiple invocation of the same task
|
8
|
+
return if defined? @tasks_loaded
|
9
|
+
|
10
|
+
params[:exclude] ||= []
|
11
|
+
params[:include] ||= ["*.rake"]
|
12
|
+
filelist = {}
|
13
|
+
|
14
|
+
[:exclude, :include].each do |key|
|
15
|
+
filelist[key] = params[key].collect { |file| Dir[File.expand_path("#{File.dirname(__FILE__)}/../tasks/#{file}")] }
|
16
|
+
filelist[key].flatten!
|
17
|
+
end
|
18
|
+
|
19
|
+
# load an include file only if it not in the exclude list
|
20
|
+
filelist[:include].each do |ext|
|
21
|
+
load ext unless filelist[:exclude].include?(ext)
|
22
|
+
end
|
23
|
+
|
24
|
+
@tasks_loaded = true
|
25
|
+
end
|
26
|
+
module_function :load_tasks
|
27
|
+
end
|
28
|
+
end
|
data/lib/dtc_rake/ui.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
module DtcRake
|
2
|
+
module UI
|
3
|
+
def error(msg)
|
4
|
+
msg = Rainbow(msg).red if colorize?
|
5
|
+
abort msg
|
6
|
+
end
|
7
|
+
module_function :error
|
8
|
+
|
9
|
+
def announce(msg)
|
10
|
+
msg = Rainbow(msg).aqua if colorize?
|
11
|
+
puts msg
|
12
|
+
end
|
13
|
+
module_function :announce
|
14
|
+
|
15
|
+
def success(msg)
|
16
|
+
msg = Rainbow(msg).green if colorize?
|
17
|
+
puts msg
|
18
|
+
end
|
19
|
+
module_function :success
|
20
|
+
|
21
|
+
def warning(msg)
|
22
|
+
msg = Rainbow(msg).yellow if colorize?
|
23
|
+
puts msg
|
24
|
+
end
|
25
|
+
module_function :warning
|
26
|
+
|
27
|
+
def info(msg)
|
28
|
+
msg = Rainbow(msg).white if colorize?
|
29
|
+
puts msg
|
30
|
+
end
|
31
|
+
module_function :info
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def colorize?
|
36
|
+
return @colorize if defined? @colorize
|
37
|
+
|
38
|
+
colorize = Config.instance.colorize
|
39
|
+
if colorize
|
40
|
+
begin
|
41
|
+
require "rainbow"
|
42
|
+
rescue LoadError
|
43
|
+
colorize = false
|
44
|
+
end
|
45
|
+
end
|
46
|
+
@colorize = colorize
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|