sysbuild 1.0.3 → 1.0.4
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/LICENSE.md +21 -0
- data/README.md +24 -17
- data/lib/sysbuild.rb +9 -0
- data/lib/version.rb +1 -1
- data/sysbuild.gemspec +2 -2
- metadata +6 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: caa674ab2f7c3ffb3a1d18852a7ddd636ea79640
|
|
4
|
+
data.tar.gz: 5794716805b7d6caad21e01ccd0afe04abcabbc5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4a7e6898579d49d68e7d2b2942b3d1be4092e602ce52abfc85321fe4d30087db334896d8f3cb58eace59aee226a63e981790ece6f81c53fec8e38a5db91fca52
|
|
7
|
+
data.tar.gz: 2e28bae3bf59e89c917960332d9d0496a75af6f287061ec02f03e20656d853ee432a13d741f09412951629376e95d10d07e5d8c0b309cab3b79c6a3c16541c6d
|
data/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017 John Hawksley
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
CHANGED
|
@@ -1,36 +1,43 @@
|
|
|
1
1
|
# Sysbuild
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+

|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Sysbuild builds multi-module Maven non-reactor projects.
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Install the gem directly from [rubygems](https://rubygems.org/gems/sysbuild):
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
$ gem install sysbuild
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
The gem installs a shell `sysbuild` command which calls the gem. Running `sysbuild --help` gets you all the global options. The `-o` option lists all the things Sysbuild can currently do.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
### Example - Typical Usage
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
`sysbuild -o build -d my_main_module` - build (`-o build`) by detecting changes and then building `my_main_module` if any changes occurred (`-d my_main_module`)
|
|
20
20
|
|
|
21
|
-
$ gem install sysbuild
|
|
22
21
|
|
|
23
|
-
##
|
|
22
|
+
## Exit Codes
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
XXTODOXX
|
|
26
25
|
|
|
27
|
-
##
|
|
26
|
+
## Change Detector
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
The change detector uses hashes to calculate whether the contents of a POM have changed. This is the most reliable method of doing this. The hashes themselves are stored in a `.sysbuild` folder within each module. This folder should be added to your SCM's ignore mechanism.
|
|
30
29
|
|
|
31
|
-
|
|
30
|
+
> #### Methodology
|
|
31
|
+
> The original implementation of POM change detection compared the source POM with that of the POM stored in the `~/.m2/repository` folder. This required the effective pom to be calculated, in order that any variables were resolved. This was very slow and the approach was abandoned in favour of hashing.
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Source files are checked by comparing their modification time to the newest target file time.
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
## Configuration
|
|
36
|
+
|
|
37
|
+
The configuration of `sysbuild` is held in a YAML file.
|
|
38
|
+
|
|
39
|
+
XXTODOXX
|
|
40
|
+
|
|
41
|
+
## Contributing
|
|
36
42
|
|
|
43
|
+
Bug reports and pull requests are welcome on [GitHub](https://github.com/jhawksley/sysbuild).
|
data/lib/sysbuild.rb
CHANGED
|
@@ -90,6 +90,8 @@ class Sysbuild_Main
|
|
|
90
90
|
setup_optparser
|
|
91
91
|
load_spec
|
|
92
92
|
|
|
93
|
+
@@ERROR_EXIT = false
|
|
94
|
+
|
|
93
95
|
case @options[:operation]
|
|
94
96
|
when 'build'
|
|
95
97
|
do_build
|
|
@@ -113,6 +115,10 @@ class Sysbuild_Main
|
|
|
113
115
|
system "/usr/bin/osascript -e 'display notification \"#{completion_message}\" with title \"Sysbuild\" subtitle \"#{subtitle}\"'"
|
|
114
116
|
end
|
|
115
117
|
|
|
118
|
+
if @@ERROR_EXIT
|
|
119
|
+
exit -1
|
|
120
|
+
end
|
|
121
|
+
|
|
116
122
|
end
|
|
117
123
|
|
|
118
124
|
|
|
@@ -462,11 +468,13 @@ class Sysbuild_Main
|
|
|
462
468
|
puts e.message
|
|
463
469
|
puts e.backtrace.inspect
|
|
464
470
|
|
|
471
|
+
@@ERROR_EXIT = true
|
|
465
472
|
ensure
|
|
466
473
|
|
|
467
474
|
Dir.chdir( current_dir )
|
|
468
475
|
|
|
469
476
|
end
|
|
477
|
+
|
|
470
478
|
end
|
|
471
479
|
|
|
472
480
|
|
|
@@ -549,6 +557,7 @@ class Sysbuild_Main
|
|
|
549
557
|
" stdout: " << stdout.gets(sep=nil).to_s,
|
|
550
558
|
" stderr: " << stderr.gets(sep=nil).to_s]
|
|
551
559
|
end
|
|
560
|
+
|
|
552
561
|
end
|
|
553
562
|
|
|
554
563
|
|
data/lib/version.rb
CHANGED
data/sysbuild.gemspec
CHANGED
|
@@ -7,10 +7,10 @@ Gem::Specification.new do |spec|
|
|
|
7
7
|
spec.name = "sysbuild"
|
|
8
8
|
spec.version = Sysbuild::VERSION
|
|
9
9
|
spec.authors = ["John Hawksley"]
|
|
10
|
-
spec.email = ["john
|
|
10
|
+
spec.email = ["john@hawksley.net"]
|
|
11
11
|
|
|
12
12
|
spec.summary = %q{Build a Maven non-reactor system}
|
|
13
|
-
spec.homepage = ""
|
|
13
|
+
spec.homepage = "https://github.com/jhawksley/sysbuild"
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sysbuild
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- John Hawksley
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-09-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -152,7 +152,7 @@ dependencies:
|
|
|
152
152
|
version: 1.8.1
|
|
153
153
|
description:
|
|
154
154
|
email:
|
|
155
|
-
- john
|
|
155
|
+
- john@hawksley.net
|
|
156
156
|
executables:
|
|
157
157
|
- sysbuild
|
|
158
158
|
extensions: []
|
|
@@ -162,6 +162,7 @@ files:
|
|
|
162
162
|
- ".ruby-gemset"
|
|
163
163
|
- ".ruby-version"
|
|
164
164
|
- Gemfile
|
|
165
|
+
- LICENSE.md
|
|
165
166
|
- README.md
|
|
166
167
|
- Rakefile
|
|
167
168
|
- bin/sysbuild
|
|
@@ -170,7 +171,7 @@ files:
|
|
|
170
171
|
- lib/sysbuild.rb
|
|
171
172
|
- lib/version.rb
|
|
172
173
|
- sysbuild.gemspec
|
|
173
|
-
homepage:
|
|
174
|
+
homepage: https://github.com/jhawksley/sysbuild
|
|
174
175
|
licenses: []
|
|
175
176
|
metadata: {}
|
|
176
177
|
post_install_message:
|
|
@@ -189,7 +190,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
189
190
|
version: '0'
|
|
190
191
|
requirements: []
|
|
191
192
|
rubyforge_project:
|
|
192
|
-
rubygems_version: 2.
|
|
193
|
+
rubygems_version: 2.6.8
|
|
193
194
|
signing_key:
|
|
194
195
|
specification_version: 4
|
|
195
196
|
summary: Build a Maven non-reactor system
|