teapot 3.4.0 → 3.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/teapot/command/list.rb +5 -5
- data/lib/teapot/loader.rb +8 -8
- data/lib/teapot/select.rb +1 -1
- data/lib/teapot/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +80 -80
- metadata.gz.sig +0 -0
- data/.gitignore +0 -21
- data/.rspec +0 -4
- data/.travis.yml +0 -33
- data/Gemfile +0 -4
- data/Gemfile.local +0 -23
- data/README.md +0 -171
- data/Rakefile +0 -19
- data/materials/kurocha.png +0 -0
- data/materials/kurocha.svg +0 -101
- data/materials/teapot.png +0 -0
- data/materials/teapot.svg +0 -82
- data/spec/spec_helper.rb +0 -11
- data/spec/teapot/command/clone_spec.rb +0 -57
- data/spec/teapot/command/fetch_spec/repositories/thing/README.md +0 -3
- data/spec/teapot/command/fetch_spec/repositories/thing/teapot.rb +0 -2
- data/spec/teapot/command/fetch_spec/test-project/teapot.rb +0 -8
- data/spec/teapot/command/fetch_spec.rb +0 -107
- data/spec/teapot/command_spec.rb +0 -59
- data/spec/teapot/configuration_spec/teapot.rb +0 -13
- data/spec/teapot/configuration_spec.rb +0 -33
- data/spec/teapot/context_spec/teapot.rb +0 -40
- data/spec/teapot/context_spec.rb +0 -61
- data/spec/teapot/target_spec/teapot.rb +0 -52
- data/spec/teapot/target_spec.rb +0 -55
- data/teapot.gemspec +0 -46
data/README.md
DELETED
@@ -1,171 +0,0 @@
|
|
1
|
-
# ![Teapot](materials/teapot.svg)
|
2
|
-
|
3
|
-
Teapot is a decentralised build tool for managing complex cross-platform projects. It has many goals but it is primarily designed to improve the experience for developers trying to make cross-platform applications and libraries with a minimum of overhead.
|
4
|
-
|
5
|
-
- Provide useful feedback when dependencies are not met or errors are encountered.
|
6
|
-
- Decentralised dependency management allows use within private organisations without exposing code.
|
7
|
-
- Generators can simplify the construction of new projects as well as assist with the development of existing ones.
|
8
|
-
- The build subsystem provides a simple set of canonical operations for building libraries and executables to minimise configuration overhead.
|
9
|
-
|
10
|
-
[![Build Status](https://secure.travis-ci.org/kurocha/teapot.svg)](http://travis-ci.org/kurocha/teapot)
|
11
|
-
[![Code Climate](https://codeclimate.com/github/kurocha/teapot.svg)](https://codeclimate.com/github/kurocha/teapot)
|
12
|
-
[![Coverage Status](https://coveralls.io/repos/kurocha/teapot/badge.svg)](https://coveralls.io/r/kurocha/teapot)
|
13
|
-
[![Gitter Chat](https://badges.gitter.im/kurocha/community.svg)](https://gitter.im/kurocha/community)
|
14
|
-
|
15
|
-
## Installation
|
16
|
-
|
17
|
-
Ensure that you already have a working install of Ruby 2.0.0+ and run the following to install `teapot`:
|
18
|
-
|
19
|
-
$ gem install teapot
|
20
|
-
|
21
|
-
## Usage
|
22
|
-
|
23
|
-
Teapot doesn't have a default centralised package management system but there is a [canonical one](https://github.com/kurocha) for developing cross-platform C++ applications. This example shows how to use this framework.
|
24
|
-
|
25
|
-
### Create Project
|
26
|
-
|
27
|
-
Firstly, create your project by running:
|
28
|
-
|
29
|
-
$ teapot create "My Project" https://github.com/kurocha generate-project
|
30
|
-
$ cd my-project
|
31
|
-
|
32
|
-
You will be asked to merge the project file. At present, merge tools are not very good and thus you may need to take a moment to review the changes. You want to keep most of the original file, but you would like to add the `define_target` blocks which are being added.
|
33
|
-
|
34
|
-
In the resulting project directory that has been created, you can see the list of dependencies:
|
35
|
-
|
36
|
-
$ teapot list
|
37
|
-
... lots of output ...
|
38
|
-
|
39
|
-
To only see things exported by your current project, you can run:
|
40
|
-
|
41
|
-
$ teapot list root
|
42
|
-
Package root (from /private/tmp/my-project):
|
43
|
-
#<Teapot::Project "my-project">
|
44
|
-
My Project description.
|
45
|
-
- Summary: A brief one line summary of the project.
|
46
|
-
- License: MIT License
|
47
|
-
- Version: 0.1.0
|
48
|
-
- Author: Samuel Williams <samuel.williams@oriontransfer.co.nz>
|
49
|
-
#<Teapot::Target "my-project-library">
|
50
|
-
- depends on "Build/Files"
|
51
|
-
- depends on "Build/Clang"
|
52
|
-
- depends on :platform
|
53
|
-
- depends on "Language/C++14" {:private=>true}
|
54
|
-
- provides "Library/MyProject"
|
55
|
-
#<Teapot::Target "my-project-test">
|
56
|
-
- depends on "Library/UnitTest"
|
57
|
-
- depends on "Library/MyProject"
|
58
|
-
- provides "Test/MyProject"
|
59
|
-
#<Teapot::Target "my-project-executable">
|
60
|
-
- depends on "Build/Files"
|
61
|
-
- depends on "Build/Clang"
|
62
|
-
- depends on :platform
|
63
|
-
- depends on "Language/C++14" {:private=>true}
|
64
|
-
- depends on "Library/MyProject"
|
65
|
-
- provides "Executable/MyProject"
|
66
|
-
#<Teapot::Target "my-project-run">
|
67
|
-
- depends on "Executable/MyProject"
|
68
|
-
- provides "Run/MyProject"
|
69
|
-
#<Teapot::Configuration "development" visibility=private>
|
70
|
-
- references root from /private/tmp/my-project
|
71
|
-
- clones platforms from https://github.com/kurocha/platforms
|
72
|
-
- clones unit-test from https://github.com/kurocha/unit-test
|
73
|
-
- clones generate-cpp-class from https://github.com/kurocha/generate-cpp-class
|
74
|
-
- clones generate-project from https://github.com/kurocha/generate-project
|
75
|
-
- clones variants from https://github.com/kurocha/variants
|
76
|
-
- clones platform-darwin-osx from https://github.com/kurocha/platform-darwin-osx
|
77
|
-
- clones platform-darwin-ios from https://github.com/kurocha/platform-darwin-ios
|
78
|
-
- clones build-clang from https://github.com/kurocha/build-clang
|
79
|
-
- clones build-darwin from https://github.com/kurocha/build-darwin
|
80
|
-
- clones build-files from https://github.com/kurocha/build-files
|
81
|
-
- clones streams from https://github.com/kurocha/streams
|
82
|
-
- clones generate-template from https://github.com/kurocha/generate-template
|
83
|
-
#<Teapot::Configuration "my-project" visibility=public>
|
84
|
-
- references root from /private/tmp/my-project
|
85
|
-
|
86
|
-
### Run Tests
|
87
|
-
|
88
|
-
Testing is a good idea, and teapot supports test driven development.
|
89
|
-
|
90
|
-
$ teapot Test/MyProject
|
91
|
-
|
92
|
-
#### Wildcard Targets
|
93
|
-
|
94
|
-
To run all tests:
|
95
|
-
|
96
|
-
$ teapot "Test/*"
|
97
|
-
|
98
|
-
Provided you are using an environment that supports sanitizers, you can test more thoroughly using:
|
99
|
-
|
100
|
-
$ teapot "Test/*" variant-sanitize
|
101
|
-
|
102
|
-
### Run Project
|
103
|
-
|
104
|
-
We can now build and run the project executable:
|
105
|
-
|
106
|
-
$ teapot Run/MyProject
|
107
|
-
I'm a little teapot,
|
108
|
-
Short and stout,
|
109
|
-
Here is my handle (one hand on hip),
|
110
|
-
Here is my spout (other arm out with elbow and wrist bent).
|
111
|
-
When I get all steamed up,
|
112
|
-
Hear me shout,
|
113
|
-
Tip me over and pour me out! (lean over toward spout)
|
114
|
-
|
115
|
-
~
|
116
|
-
___^___ __
|
117
|
-
.- / \./ /
|
118
|
-
/ / _/
|
119
|
-
\__| |
|
120
|
-
\_______/
|
121
|
-
|
122
|
-
The resulting executables and libraries will be framework dependent, but are typically located in:
|
123
|
-
|
124
|
-
$ cd teapot/platforms/development/$PLATFORM-debug/bin
|
125
|
-
$ ./$PROJECT_NAME
|
126
|
-
|
127
|
-
### Cloning Project
|
128
|
-
|
129
|
-
You can clone another project which will fetch all dependencies:
|
130
|
-
|
131
|
-
$ teapot clone https://github.com/kurocha/tagged-format
|
132
|
-
$ cd tagged-format
|
133
|
-
$ teapot build Executable/TaggedFormat
|
134
|
-
|
135
|
-
## Open Issues
|
136
|
-
|
137
|
-
- Should packages be built into a shared prefix or should they be built into unique prefixes and joined together either via install or `-L` and `-I`?
|
138
|
-
- Relative include paths might fail to work correctly if headers are not installed into same directory.
|
139
|
-
- Should packages have some way to expose system requirements, e.g. installed compiler, libraries, etc. Perhaps some kind of `Package#valid?` which allows custom logic?
|
140
|
-
|
141
|
-
## Contributing
|
142
|
-
|
143
|
-
1. Fork it
|
144
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
145
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
146
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
147
|
-
5. Create new Pull Request
|
148
|
-
|
149
|
-
## License
|
150
|
-
|
151
|
-
Released under the MIT license.
|
152
|
-
|
153
|
-
Copyright, 2012, 2014, by [Samuel G. D. Williams](http://www.codeotaku.com/samuel-williams).
|
154
|
-
|
155
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
156
|
-
of this software and associated documentation files (the "Software"), to deal
|
157
|
-
in the Software without restriction, including without limitation the rights
|
158
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
159
|
-
copies of the Software, and to permit persons to whom the Software is
|
160
|
-
furnished to do so, subject to the following conditions:
|
161
|
-
|
162
|
-
The above copyright notice and this permission notice shall be included in
|
163
|
-
all copies or substantial portions of the Software.
|
164
|
-
|
165
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
166
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
167
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
168
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
169
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
170
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
171
|
-
THE SOFTWARE.
|
data/Rakefile
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require "bundler/gem_tasks"
|
2
|
-
require "rspec/core/rake_task"
|
3
|
-
|
4
|
-
# Load all rake tasks:
|
5
|
-
import(*Dir.glob('tasks/**/*.rake'))
|
6
|
-
|
7
|
-
RSpec::Core::RakeTask.new(:test)
|
8
|
-
|
9
|
-
task :environment do
|
10
|
-
$LOAD_PATH.unshift File.expand_path('lib', __dir__)
|
11
|
-
end
|
12
|
-
|
13
|
-
task :console => :environment do
|
14
|
-
require 'pry'
|
15
|
-
|
16
|
-
Pry.start
|
17
|
-
end
|
18
|
-
|
19
|
-
task :default => :test
|
data/materials/kurocha.png
DELETED
Binary file
|
data/materials/kurocha.svg
DELETED
@@ -1,101 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
-
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
-
|
4
|
-
<svg
|
5
|
-
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
-
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
-
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
-
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
-
xmlns="http://www.w3.org/2000/svg"
|
10
|
-
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
11
|
-
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
12
|
-
width="128pt"
|
13
|
-
height="128pt"
|
14
|
-
viewBox="0 0 160 160"
|
15
|
-
id="svg3403"
|
16
|
-
version="1.1"
|
17
|
-
inkscape:version="0.91 r13725"
|
18
|
-
sodipodi:docname="kurocha.svg">
|
19
|
-
<defs
|
20
|
-
id="defs3405" />
|
21
|
-
<sodipodi:namedview
|
22
|
-
id="base"
|
23
|
-
pagecolor="#ffffff"
|
24
|
-
bordercolor="#666666"
|
25
|
-
borderopacity="1.0"
|
26
|
-
inkscape:pageopacity="0.0"
|
27
|
-
inkscape:pageshadow="2"
|
28
|
-
inkscape:zoom="3.5"
|
29
|
-
inkscape:cx="104.53051"
|
30
|
-
inkscape:cy="99.464665"
|
31
|
-
inkscape:document-units="px"
|
32
|
-
inkscape:current-layer="g38"
|
33
|
-
showgrid="false"
|
34
|
-
units="pt"
|
35
|
-
inkscape:window-width="1920"
|
36
|
-
inkscape:window-height="1054"
|
37
|
-
inkscape:window-x="0"
|
38
|
-
inkscape:window-y="0"
|
39
|
-
inkscape:window-maximized="1" />
|
40
|
-
<metadata
|
41
|
-
id="metadata3408">
|
42
|
-
<rdf:RDF>
|
43
|
-
<cc:Work
|
44
|
-
rdf:about="">
|
45
|
-
<dc:format>image/svg+xml</dc:format>
|
46
|
-
<dc:type
|
47
|
-
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
48
|
-
<dc:title></dc:title>
|
49
|
-
</cc:Work>
|
50
|
-
</rdf:RDF>
|
51
|
-
</metadata>
|
52
|
-
<g
|
53
|
-
inkscape:label="Layer 1"
|
54
|
-
inkscape:groupmode="layer"
|
55
|
-
id="layer1"
|
56
|
-
transform="translate(0,-892.36223)">
|
57
|
-
<g
|
58
|
-
id="g36"
|
59
|
-
transform="matrix(0.7036536,0,0,0.7036536,-255.86452,913.02177)">
|
60
|
-
<g
|
61
|
-
id="g38">
|
62
|
-
<ellipse
|
63
|
-
cx="473.57303"
|
64
|
-
cy="186.68559"
|
65
|
-
rx="48.167"
|
66
|
-
ry="5.8959999"
|
67
|
-
id="ellipse40"
|
68
|
-
style="fill:#290f01" />
|
69
|
-
<g
|
70
|
-
id="g42"
|
71
|
-
transform="translate(0.40604395,23.956593)">
|
72
|
-
<path
|
73
|
-
d="m 514.888,59.404 c 5.632,-14.131 -1.051,-20.75 -0.548,-22.182 0.507,-1.437 4.245,-7.809 11.094,-13.888 -2.651,-0.44 -16.256,1.168 -16.256,1.168 l -69.283,19.57 c -1.879,0.688 -8.808,8.596 -10.686,11.355 6.521,-0.771 10.692,0.19 10.692,0.19 0,0 -0.058,1.729 0.362,4.255 0.293,0.809 37.997,0.749 37.997,0.749 l 36.628,-1.217 z"
|
74
|
-
id="path44"
|
75
|
-
inkscape:connector-curvature="0"
|
76
|
-
style="fill:#290f01" />
|
77
|
-
<path
|
78
|
-
d="m 500.681,42.508 c 0,1.934 -1.563,3.499 -3.5,3.499 -1.935,0 -3.5,-1.565 -3.5,-3.499 0,-1.932 1.565,-3.495 3.5,-3.495 1.936,0 3.5,1.563 3.5,3.495 z"
|
79
|
-
id="path46"
|
80
|
-
inkscape:connector-curvature="0"
|
81
|
-
style="fill:#ffffff" />
|
82
|
-
<path
|
83
|
-
d="m 466.14,48.982 c 0,1.932 -1.563,3.497 -3.501,3.497 -1.936,0 -3.494,-1.565 -3.494,-3.497 0,-1.933 1.559,-3.5 3.494,-3.5 1.937,0 3.501,1.568 3.501,3.5 z"
|
84
|
-
id="path48"
|
85
|
-
inkscape:connector-curvature="0"
|
86
|
-
style="fill:#ffffff" />
|
87
|
-
</g>
|
88
|
-
<path
|
89
|
-
d="m 578.24004,92.123593 c -2.75,-0.667 -11.296,3.683 -16.417,11.499997 -5.121,7.817 -8.661,13.378 -12.267,14.727 -3.607,1.352 -7.877,-1.169 -9.396,-1.414 -2.16,-9.058 -10.217,-19.941997 -17.749,-24.188997 -0.292,-8.569 -2.104,-10.259 -2.104,-10.259 l -42.226,1.968 -43.854,-1.969 c 0,0 -1.52,4.405 -1.449,8.819 -5.713,5.694 -8.769,7.372 -12.971,13.953997 -1.321,2.072 -2.312,4.176 -3.053,6.702 -2.446,-0.162 -4.192,-1.261 -4.192,-1.261 0,0 -6.231,-17.814997 -10.798,-20.278997 -4.564,-2.463 -12.027,-4.021 -18.404,-1.194 -6.377,2.827 -11.811,10.999997 -13.913,17.809997 -2.101,6.813 -3.115,18.546 2.9,29.627 6.015,11.091 13.623,21.656 29.562,25.572 15.941,3.914 25.125,4.857 25.125,4.857 0.899,1.225 1.832,2.417 2.814,3.571 4.09,3.393 7.664,3.42 10.392,5.708 0,0 -0.143,5.792 1.595,6.227 1.737,0.436 13.365,4.2 36.246,3.623 22.883,-0.583 35.345,-2.32 36.355,-4.2 1.018,-1.888 1.378,-5.438 1.378,-5.438 3.465,-2.889 8.76,-5.181 12.216,-8.028 1.313,-1.683 2.529,-3.439 3.671,-5.252 0,0 13.821,-3.313 18.965,-6.938 5.146,-3.623 9.493,-10.982 11.016,-13.913 1.522,-2.924 6.004,-19.09 9.142,-25.997 3.138,-6.907 6.533,-11.376 9.146,-12.438 2.607,-1.064 7.983,-1.758 7.646,-3.208 -5.335,-2.916997 -6.626,-8.021997 -9.376,-8.687997 z m -194.591,49.176997 c -5.287,-6.236 -10.795,-24.783 -7.099,-34.927 3.695,-10.146997 9.709,-12.752997 18.041,-11.015997 8.333,1.741 10.146,17.316997 11.304,24.707997 1.16,7.393 8.262,7.537 8.262,7.537 0,0 -3.335,5.938 3.258,26.81 -18.585,3.521 -28.475,-6.882 -33.766,-13.112 z"
|
90
|
-
id="path50"
|
91
|
-
inkscape:connector-curvature="0"
|
92
|
-
style="fill:#26992e" />
|
93
|
-
<path
|
94
|
-
d="m 440.63104,69.034593 c 0,0 -0.704,-2.043 -0.628,-2.232 0.076,-0.189 1.401,-0.243 1.97,-2.51 0.569,-2.267 4.057,-11.223 6.699,-13.617 2.642,-2.396 10.513,-7.014 10.686,-8.566 0.163,-1.551 2.747,-1.975 2.747,-1.975 0,0 0.828,-1.886 0.175,-2.607 -0.657,-0.717 -3.938,-1.681 -4.62,-4.648 -0.683,-2.972 2.656,-6.689 7.91,-8.163 5.245,-1.473 9.899,0.01 10.855,2.9 0.964,2.891 -1.351,5.384 -1.532,6.337 -0.184,0.957 1.506,2.156 1.506,2.156 0,0 2.439,-0.975 3.385,0.265 0.951,1.239 10.088,1.088 13.593,1.763 3.499,0.674 11.155,6.507 12.815,8.147 1.668,1.64 2.818,1.02 3.024,1.112 0.206,0.092 0.625,2.232 0.625,2.232 l -69.21,19.406 z"
|
95
|
-
id="path52"
|
96
|
-
inkscape:connector-curvature="0"
|
97
|
-
style="fill:#26992e" />
|
98
|
-
</g>
|
99
|
-
</g>
|
100
|
-
</g>
|
101
|
-
</svg>
|
data/materials/teapot.png
DELETED
Binary file
|
data/materials/teapot.svg
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg version="1.1" id="TeapotLogo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
4
|
-
width="596.08px" height="197.684px" viewBox="0 0 596.08 197.684" enable-background="new 0 0 596.08 197.684"
|
5
|
-
xml:space="preserve">
|
6
|
-
<g>
|
7
|
-
<path fill="#26992E" d="M44.586,59.396c3.081,0,5.729,1.074,7.939,3.216c2.211,2.145,3.316,4.724,3.316,7.739
|
8
|
-
s-1.105,5.628-3.316,7.839s-4.858,3.316-7.939,3.316h-5.025v56.079c3.081,0,5.694,1.105,7.839,3.316
|
9
|
-
c2.142,2.211,3.216,4.859,3.216,7.939c0,3.085-1.074,5.697-3.216,7.84c-2.145,2.145-4.758,3.216-7.839,3.216
|
10
|
-
c-6.165,0-11.426-2.177-15.779-6.532c-4.356-4.354-6.532-9.613-6.532-15.779V81.505h-5.829c-3.084,0-5.697-1.071-7.839-3.216
|
11
|
-
c-2.145-2.142-3.216-4.755-3.216-7.839c0-3.081,1.071-5.694,3.216-7.839c2.142-2.142,4.755-3.216,7.839-3.216h5.829V30.25
|
12
|
-
c0-3.081,1.105-5.694,3.316-7.839c2.211-2.142,4.855-3.216,7.939-3.216c3.081,0,5.694,1.074,7.839,3.216
|
13
|
-
c2.142,2.145,3.216,4.758,3.216,7.839v29.145H44.586z"/>
|
14
|
-
<path fill="#26992E" d="M169.965,107.033c0,2.948-0.974,5.326-2.915,7.135c-1.944,1.809-4.522,2.713-7.738,2.713H95.394
|
15
|
-
c1.206,5.764,3.483,10.186,6.834,13.267c4.287,4.959,10.553,7.939,18.794,8.944c8.241,1.006,15.376-0.635,21.406-4.924
|
16
|
-
c2.01-2.143,4.689-3.217,8.04-3.217c3.348,0,5.694,0.873,7.035,2.613c3.75,4.155,3.75,8.512,0,13.064
|
17
|
-
c-9.648,8.845-21.476,13.235-35.477,13.166c-14.004-0.066-25.728-4.99-35.175-14.773c-9.447-9.779-14.239-21.572-14.371-35.376
|
18
|
-
c0.132-13.8,4.924-25.627,14.371-35.477c9.447-9.849,20.87-14.773,34.271-14.773c13.398,0,24.688,4.391,33.869,13.166
|
19
|
-
c9.177,8.778,14.17,19.934,14.975,33.466V107.033z M121.524,78.491c-7.773,0.402-14.004,2.814-18.693,7.236
|
20
|
-
c-4.692,4.422-7.506,9.114-8.442,14.07h56.883c-1.206-4.689-4.457-9.247-9.749-13.668
|
21
|
-
C136.229,81.707,129.564,79.163,121.524,78.491z"/>
|
22
|
-
<path fill="#26992E" d="M198.205,145.223c-9.18-9.78-13.769-21.607-13.769-35.477s4.588-25.728,13.769-35.577
|
23
|
-
c9.177-9.849,20.533-14.773,34.069-14.773c9.513,0,18.423,2.949,26.733,8.844c0.669-2.544,1.941-4.655,3.819-6.332
|
24
|
-
c1.875-1.674,4.187-2.513,6.935-2.513c2.745,0,5.157,1.074,7.236,3.216c2.076,2.145,3.115,4.692,3.115,7.638v78.993
|
25
|
-
c0,2.949-1.04,5.462-3.115,7.537c-2.079,2.08-4.491,3.116-7.236,3.116c-2.748,0-5.06-0.804-6.935-2.412
|
26
|
-
c-1.878-1.608-3.15-3.685-3.819-6.231c-8.175,5.764-17.085,8.644-26.733,8.644C218.738,159.896,207.381,155.006,198.205,145.223z
|
27
|
-
M205.943,109.746c0,8.109,2.443,14.908,7.336,20.401c4.89,5.496,11.187,8.241,18.894,8.241c7.704,0,14.07-2.745,19.095-8.241
|
28
|
-
c5.025-5.493,7.538-12.261,7.538-20.301s-2.547-14.874-7.638-20.502c-5.094-5.628-11.426-8.442-18.995-8.442
|
29
|
-
c-7.572,0-13.837,2.783-18.793,8.342C208.421,94.806,205.943,101.641,205.943,109.746z"/>
|
30
|
-
<path fill="#562F04" d="M322.798,194.367c-2.211,2.211-4.824,3.316-7.839,3.316s-5.597-1.105-7.738-3.316
|
31
|
-
c-2.145-2.211-3.216-4.724-3.216-7.537V70.048c0-2.946,1.037-5.458,3.116-7.537c2.076-2.076,4.554-3.116,7.437-3.116
|
32
|
-
c2.88,0,5.358,0.804,7.437,2.412c2.076,1.608,3.316,3.552,3.718,5.829c8.442-5.493,17.553-8.241,27.336-8.241
|
33
|
-
c13.398,0,24.855,4.959,34.371,14.874c9.513,9.918,14.271,21.777,14.271,35.577c0,13.803-4.758,25.562-14.271,35.275
|
34
|
-
c-9.516,9.717-20.973,14.572-34.371,14.572c-10.32,0-19.296-2.745-26.934-8.241v35.377
|
35
|
-
C326.115,189.644,325.009,192.156,322.798,194.367z M371.943,89.545c-5.226-5.493-11.592-8.241-19.095-8.241
|
36
|
-
c-7.506,0-13.838,2.782-18.995,8.341c-5.16,5.562-7.738,12.497-7.738,20.803c0,8.311,2.613,14.809,7.839,19.497
|
37
|
-
c5.091,5.628,11.356,8.442,18.793,8.442s13.8-2.814,19.095-8.442c5.292-5.628,7.94-12.292,7.94-19.999
|
38
|
-
C379.782,102.243,377.169,95.444,371.943,89.545z"/>
|
39
|
-
</g>
|
40
|
-
<g>
|
41
|
-
<path fill="#562F04" d="M584.824,59.396c3.081,0,5.729,1.074,7.939,3.216c2.211,2.145,3.316,4.724,3.316,7.739
|
42
|
-
s-1.105,5.628-3.316,7.839s-4.858,3.316-7.939,3.316h-5.025v56.079c3.081,0,5.694,1.105,7.84,3.316
|
43
|
-
c2.141,2.211,3.215,4.859,3.215,7.939c0,3.085-1.074,5.697-3.215,7.84c-2.146,2.145-4.759,3.216-7.84,3.216
|
44
|
-
c-6.164,0-11.426-2.177-15.778-6.532c-4.356-4.354-6.532-9.613-6.532-15.779V81.505h-5.829c-3.084,0-5.697-1.071-7.839-3.216
|
45
|
-
c-2.145-2.142-3.217-4.755-3.217-7.839c0-3.081,1.072-5.694,3.217-7.839c2.142-2.142,4.755-3.216,7.839-3.216h5.829V30.25
|
46
|
-
c0-3.081,1.105-5.694,3.316-7.839c2.211-2.142,4.855-3.216,7.939-3.216c3.081,0,5.693,1.074,7.839,3.216
|
47
|
-
c2.142,2.145,3.216,4.758,3.216,7.839v29.145H584.824z"/>
|
48
|
-
</g>
|
49
|
-
<g>
|
50
|
-
<g>
|
51
|
-
<ellipse fill="#290F01" cx="473.167" cy="162.729" rx="48.167" ry="5.896"/>
|
52
|
-
<g>
|
53
|
-
<path fill="#290F01" d="M514.888,59.404c5.632-14.131-1.051-20.75-0.548-22.182c0.507-1.437,4.245-7.809,11.094-13.888
|
54
|
-
c-2.651-0.44-16.256,1.168-16.256,1.168l-69.283,19.57c-1.879,0.688-8.808,8.596-10.686,11.355
|
55
|
-
c6.521-0.771,10.692,0.19,10.692,0.19s-0.058,1.729,0.362,4.255c0.293,0.809,37.997,0.749,37.997,0.749L514.888,59.404z"/>
|
56
|
-
<path fill="#FFFFFF" d="M500.681,42.508c0,1.934-1.563,3.499-3.5,3.499c-1.935,0-3.5-1.565-3.5-3.499
|
57
|
-
c0-1.932,1.565-3.495,3.5-3.495C499.117,39.013,500.681,40.576,500.681,42.508z"/>
|
58
|
-
<path fill="#FFFFFF" d="M466.14,48.982c0,1.932-1.563,3.497-3.501,3.497c-1.936,0-3.494-1.565-3.494-3.497
|
59
|
-
c0-1.933,1.559-3.5,3.494-3.5C464.576,45.482,466.14,47.05,466.14,48.982z"/>
|
60
|
-
</g>
|
61
|
-
<path fill="#26992E" d="M577.834,68.167c-2.75-0.667-11.296,3.683-16.417,11.5s-8.661,13.378-12.267,14.727
|
62
|
-
c-3.607,1.352-7.877-1.169-9.396-1.414c-2.16-9.058-10.217-19.942-17.749-24.189c-0.292-8.569-2.104-10.259-2.104-10.259
|
63
|
-
L477.675,60.5l-43.854-1.969c0,0-1.52,4.405-1.449,8.819c-5.713,5.694-8.769,7.372-12.971,13.954
|
64
|
-
c-1.321,2.072-2.312,4.176-3.053,6.702c-2.446-0.162-4.192-1.261-4.192-1.261s-6.231-17.815-10.798-20.279
|
65
|
-
c-4.564-2.463-12.027-4.021-18.404-1.194s-11.811,11-13.913,17.81c-2.101,6.813-3.115,18.546,2.9,29.627
|
66
|
-
c6.015,11.091,13.623,21.656,29.562,25.572c15.941,3.914,25.125,4.857,25.125,4.857c0.899,1.225,1.832,2.417,2.814,3.571
|
67
|
-
c4.09,3.393,7.664,3.42,10.392,5.708c0,0-0.143,5.792,1.595,6.227c1.737,0.436,13.365,4.2,36.246,3.623
|
68
|
-
c22.883-0.583,35.345-2.32,36.355-4.2c1.018-1.888,1.378-5.438,1.378-5.438c3.465-2.889,8.76-5.181,12.216-8.028
|
69
|
-
c1.313-1.683,2.529-3.439,3.671-5.252c0,0,13.821-3.313,18.965-6.938c5.146-3.623,9.493-10.982,11.016-13.913
|
70
|
-
c1.522-2.924,6.004-19.09,9.142-25.997s6.533-11.376,9.146-12.438c2.607-1.064,7.983-1.758,7.646-3.208
|
71
|
-
C581.875,73.938,580.584,68.833,577.834,68.167z M383.243,117.344c-5.287-6.236-10.795-24.783-7.099-34.927
|
72
|
-
c3.695-10.147,9.709-12.753,18.041-11.016c8.333,1.741,10.146,17.317,11.304,24.708c1.16,7.393,8.262,7.537,8.262,7.537
|
73
|
-
s-3.335,5.938,3.258,26.81C398.424,133.977,388.534,123.574,383.243,117.344z"/>
|
74
|
-
<path fill="#26992E" d="M440.225,45.078c0,0-0.704-2.043-0.628-2.232s1.401-0.243,1.97-2.51s4.057-11.223,6.699-13.617
|
75
|
-
c2.642-2.396,10.513-7.014,10.686-8.566c0.163-1.551,2.747-1.975,2.747-1.975s0.828-1.886,0.175-2.607
|
76
|
-
c-0.657-0.717-3.938-1.681-4.62-4.648c-0.683-2.972,2.656-6.689,7.91-8.163c5.245-1.473,9.899,0.01,10.855,2.9
|
77
|
-
c0.964,2.891-1.351,5.384-1.532,6.337c-0.184,0.957,1.506,2.156,1.506,2.156s2.439-0.975,3.385,0.265
|
78
|
-
c0.951,1.239,10.088,1.088,13.593,1.763c3.499,0.674,11.155,6.507,12.815,8.147c1.668,1.64,2.818,1.02,3.024,1.112
|
79
|
-
s0.625,2.232,0.625,2.232L440.225,45.078z"/>
|
80
|
-
</g>
|
81
|
-
</g>
|
82
|
-
</svg>
|
data/spec/spec_helper.rb
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
|
2
|
-
# Copyright, 2016, by Samuel G. D. Williams. <http://www.codeotaku.com>
|
3
|
-
#
|
4
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
-
# of this software and associated documentation files (the "Software"), to deal
|
6
|
-
# in the Software without restriction, including without limitation the rights
|
7
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
-
# copies of the Software, and to permit persons to whom the Software is
|
9
|
-
# furnished to do so, subject to the following conditions:
|
10
|
-
#
|
11
|
-
# The above copyright notice and this permission notice shall be included in
|
12
|
-
# all copies or substantial portions of the Software.
|
13
|
-
#
|
14
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20
|
-
# THE SOFTWARE.
|
21
|
-
|
22
|
-
require 'teapot/command'
|
23
|
-
|
24
|
-
RSpec.describe Teapot::Command::Clone, order: :defined do
|
25
|
-
let(:root) {Build::Files::Path.new(__dir__) + "clone_spec"}
|
26
|
-
let(:source) {'https://github.com/kurocha/tagged-format'}
|
27
|
-
|
28
|
-
let(:top) {Teapot::Command::Top["--root", root.to_s]}
|
29
|
-
|
30
|
-
before do
|
31
|
-
root.delete
|
32
|
-
end
|
33
|
-
|
34
|
-
context "clone remote source" do
|
35
|
-
subject {top['clone', source]}
|
36
|
-
|
37
|
-
it "should checkout files" do
|
38
|
-
expect{subject.call}.to_not raise_error
|
39
|
-
|
40
|
-
expect(File).to be_exist(root + "teapot.rb")
|
41
|
-
|
42
|
-
selection = top.context.select
|
43
|
-
|
44
|
-
# Check that we actually fetched some remote targets.
|
45
|
-
expect(selection.targets).to include(
|
46
|
-
"tagged-format-library",
|
47
|
-
"tagged-format-executable",
|
48
|
-
"tagged-format-tests",
|
49
|
-
"build-files",
|
50
|
-
"unit-test-library",
|
51
|
-
"unit-test-tests",
|
52
|
-
"variant-debug",
|
53
|
-
"variant-release",
|
54
|
-
)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
@@ -1,107 +0,0 @@
|
|
1
|
-
|
2
|
-
# Copyright, 2016, by Samuel G. D. Williams. <http://www.codeotaku.com>
|
3
|
-
#
|
4
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
-
# of this software and associated documentation files (the "Software"), to deal
|
6
|
-
# in the Software without restriction, including without limitation the rights
|
7
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
-
# copies of the Software, and to permit persons to whom the Software is
|
9
|
-
# furnished to do so, subject to the following conditions:
|
10
|
-
#
|
11
|
-
# The above copyright notice and this permission notice shall be included in
|
12
|
-
# all copies or substantial portions of the Software.
|
13
|
-
#
|
14
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20
|
-
# THE SOFTWARE.
|
21
|
-
|
22
|
-
require 'teapot/command'
|
23
|
-
|
24
|
-
RSpec.describe Teapot::Command::Fetch, order: :defined do
|
25
|
-
let(:root) {Build::Files::Path.new(__dir__) + "fetch_spec"}
|
26
|
-
let(:project_path) {root + 'test-project'}
|
27
|
-
let(:thing_path) {root + "repositories/thing"}
|
28
|
-
let(:thing_package_path) {project_path + "teapot/packages/test/thing"}
|
29
|
-
|
30
|
-
let(:top) {Teapot::Command::Top["--root", project_path.to_s]}
|
31
|
-
|
32
|
-
context "clean project" do
|
33
|
-
subject {top['clean']}
|
34
|
-
|
35
|
-
it "should delete all packages" do
|
36
|
-
expect{subject.call}.to_not raise_error
|
37
|
-
|
38
|
-
expect(File).to_not be_exist(root + "test-project/teapot/packages/test")
|
39
|
-
end
|
40
|
-
|
41
|
-
it "can create thing repository" do
|
42
|
-
(thing_path + ".git").delete
|
43
|
-
|
44
|
-
system("git", "init", chdir: thing_path)
|
45
|
-
system("git", "add", "teapot.rb", chdir: thing_path)
|
46
|
-
system("git", "commit", "-m", "Teapot file for testing", chdir: thing_path)
|
47
|
-
end
|
48
|
-
|
49
|
-
let(:lockfile_path) {root + "test-project/test-lock.yml"}
|
50
|
-
|
51
|
-
it "should delete the lock file" do
|
52
|
-
lockfile_path.delete
|
53
|
-
|
54
|
-
expect(File).to_not be_exist(lockfile_path)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
context "initial fetch" do
|
59
|
-
subject {top['fetch']}
|
60
|
-
|
61
|
-
it "should fetch repositories" do
|
62
|
-
expect{subject.call}.to_not raise_error
|
63
|
-
|
64
|
-
# Did the thing package checkout correctly?
|
65
|
-
expect(File).to be_exist(root + "test-project/teapot/packages/test/thing/teapot.rb")
|
66
|
-
end
|
67
|
-
|
68
|
-
it "should fetch repositories with no changes" do
|
69
|
-
expect{subject.call}.to_not raise_error
|
70
|
-
|
71
|
-
# Did the thing package checkout correctly?
|
72
|
-
expect(File).to be_exist(root + "test-project/teapot/packages/test/thing/teapot.rb")
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
context "fetch with worktree modifications" do
|
77
|
-
subject {top['fetch']}
|
78
|
-
let(:path) {root + "test-project/teapot/packages/test/thing/README.md"}
|
79
|
-
|
80
|
-
it "can make local modifications" do
|
81
|
-
path.write("Hello World")
|
82
|
-
|
83
|
-
expect(File).to be_exist(path)
|
84
|
-
end
|
85
|
-
|
86
|
-
it "can't fetch with local modifications" do
|
87
|
-
expect{subject.call}.to raise_error(Teapot::Command::FetchError, /local modifications/)
|
88
|
-
|
89
|
-
path.delete
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
context "fetch with upstream changes" do
|
94
|
-
subject {top['fetch', '--update']}
|
95
|
-
|
96
|
-
it "can commit upstream changes" do
|
97
|
-
system("git", "add", "README.md", chdir: thing_path)
|
98
|
-
system("git", "commit", "-m", "Add documentation", chdir: thing_path)
|
99
|
-
end
|
100
|
-
|
101
|
-
it "can fetch changes" do
|
102
|
-
expect{subject.call}.to_not raise_error
|
103
|
-
|
104
|
-
expect(File).to be_exist(thing_package_path + "README.md")
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
data/spec/teapot/command_spec.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
# Copyright, 2016, by Samuel G. D. Williams. <http://www.codeotaku.com>
|
2
|
-
#
|
3
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
# of this software and associated documentation files (the "Software"), to deal
|
5
|
-
# in the Software without restriction, including without limitation the rights
|
6
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
# copies of the Software, and to permit persons to whom the Software is
|
8
|
-
# furnished to do so, subject to the following conditions:
|
9
|
-
#
|
10
|
-
# The above copyright notice and this permission notice shall be included in
|
11
|
-
# all copies or substantial portions of the Software.
|
12
|
-
#
|
13
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
# THE SOFTWARE.
|
20
|
-
|
21
|
-
require 'teapot/command'
|
22
|
-
|
23
|
-
RSpec.describe Teapot::Command, order: :defined do
|
24
|
-
let(:source) {"https://github.com/kurocha"}
|
25
|
-
# let(:source) {File.expand_path("../../../../kurocha", __dir__)}
|
26
|
-
let(:root) {Build::Files::Path.new(__dir__) + "command_spec"}
|
27
|
-
let(:project_name) {"Test Project"}
|
28
|
-
let(:project_path) {root + 'test-project'}
|
29
|
-
|
30
|
-
let(:top) {Teapot::Command::Top["--root", project_path.to_s]}
|
31
|
-
|
32
|
-
context Teapot::Command::Create do
|
33
|
-
subject {top["create", project_name, source.to_s, "generate-project", "generate-travis"]}
|
34
|
-
|
35
|
-
it "should create a new project" do
|
36
|
-
root.delete
|
37
|
-
|
38
|
-
expect{subject.call}.to_not raise_error
|
39
|
-
expect(project_path + "teapot.rb").to be_exist
|
40
|
-
expect(project_path + ".travis.yml").to be_exist
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
context Teapot::Command::Build do
|
45
|
-
subject {top["build", "Run/TestProject"]}
|
46
|
-
|
47
|
-
it "should build project" do
|
48
|
-
expect{subject.call}.to_not raise_error
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
context Teapot::Command::Fetch do
|
53
|
-
subject {top["fetch"]}
|
54
|
-
|
55
|
-
it "should fetch any changes" do
|
56
|
-
expect{subject.call}.to_not raise_error
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
|
2
|
-
teapot_version "2.0"
|
3
|
-
|
4
|
-
define_configuration "build-bar" do |configuration|
|
5
|
-
configuration.import "build-foo"
|
6
|
-
|
7
|
-
configuration.targets[:build] << "Bar"
|
8
|
-
end
|
9
|
-
|
10
|
-
define_configuration "build-foo" do |configuration|
|
11
|
-
configuration.targets[:build] << "Foo"
|
12
|
-
end
|
13
|
-
|