lyp 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +251 -57
- data/bin/install_release.sh +3 -6
- data/bin/lilypond +75 -9
- data/lib/lyp/base.rb +2 -0
- data/lib/lyp/cli.rb +75 -29
- data/lib/lyp/lilypond.rb +54 -32
- data/lib/lyp/version.rb +1 -1
- metadata +7 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86f269cc3a5d4371afd93fdb52179687f39e004d
|
4
|
+
data.tar.gz: b7e7ab100e40d0be46b4d61c4d3a2aa1aa371c38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64f17f1ca324b90ca147fc5bd41c77e52f42bc960b145204ecffb3926deda54e84930881a1f1d809e458151f27d94d17f025474cc06c40c9b6a2d7f87a34ff73
|
7
|
+
data.tar.gz: 81ec32c68983e53bd1eff21e524ff2f1143c97dae6b4ba8017055da48b40839da4dae9591b147a47f2f36b8ceb9f7e4fb0456aeeef1e834a289b78f3e6d9dfbf
|
data/README.md
CHANGED
@@ -16,6 +16,7 @@ __No hassle Lilypond installation__: With lyp you can also install any version o
|
|
16
16
|
- [Working with packages](#working-with-packages)
|
17
17
|
- [What constitutes a package?](#what-constitutes-a-package)
|
18
18
|
- [Installing packages](#installing-packages)
|
19
|
+
- [Automatic package installation](#automatic-package-installation)
|
19
20
|
- [Package references](#package-references)
|
20
21
|
- [Version specifiers](#version-specifiers)
|
21
22
|
- [Using packages](#using-packages)
|
@@ -25,7 +26,12 @@ __No hassle Lilypond installation__: With lyp you can also install any version o
|
|
25
26
|
- [Including fonts](#including-fonts)
|
26
27
|
- [Testing packages](#testing-packages)
|
27
28
|
- [Publishing packages](#publishing-packages)
|
28
|
-
- [Installing and
|
29
|
+
- [Installing and Using Lilypond](#installing-and-using-lilypond)
|
30
|
+
- [Installing/uninstalling a version of lilypond](#installing-uninstalling a version of lilypond)
|
31
|
+
- [Showing the list of installed lilypond versions](#showing-the-list-of-installed-lilypond-versions)
|
32
|
+
- [Showing available lilypond versions](#Showing-available-lilypond-versions)
|
33
|
+
- [Switching between lilypond versions](#switching-between-lilypond-versions)
|
34
|
+
- [Running lilypond](#running-lilypond)
|
29
35
|
- [Contributing](#contributing)
|
30
36
|
|
31
37
|
## Installation
|
@@ -37,27 +43,38 @@ __No hassle Lilypond installation__: With lyp you can also install any version o
|
|
37
43
|
If you have a recent (>=1.9.3) version of Ruby on your machine, you can install lyp as a gem:
|
38
44
|
|
39
45
|
```bash
|
40
|
-
gem install lyp
|
41
|
-
lyp install self
|
46
|
+
$ gem install lyp
|
47
|
+
$ lyp install self
|
42
48
|
```
|
43
49
|
|
44
50
|
The `lyp install self` command is needed in order to setup the `~/.lyp` working directory and add the lyp binaries directory to your `PATH` (see below), by adding a line of code to your shell profile file.
|
45
51
|
|
46
52
|
#### Installing lyp without Ruby
|
47
53
|
|
48
|
-
If you don't have Ruby on your machine you can install lyp as a stand alone package using the
|
54
|
+
If you don't have Ruby on your machine you can install lyp as a stand alone package using the install script ([view source](https://git.io/getlyp)):
|
49
55
|
|
50
56
|
```bash
|
51
|
-
curl -sSL https://git.io/getlyp | bash
|
57
|
+
$ curl -sSL https://git.io/getlyp | bash
|
52
58
|
```
|
53
59
|
|
54
60
|
or with Wget:
|
55
61
|
|
56
62
|
```bash
|
57
|
-
wget -qO- https://git.io/getlyp | bash
|
63
|
+
$ wget -qO- https://git.io/getlyp | bash
|
58
64
|
```
|
59
65
|
|
60
|
-
|
66
|
+
If you feel uneasy about piping curl output to bash, you can install lyp yourself by downloading a [release](https://github.com/noteflakes/lyp/releases), untarring it, and running `lyp install self`:
|
67
|
+
|
68
|
+
```bash
|
69
|
+
$ cd /Downloads
|
70
|
+
# assuming linux-64 platform
|
71
|
+
$ tar -xzf lyp-0.2.1-linux-x86_64.tar.gz
|
72
|
+
$ lyp-0.2.1-linux-x86_64/lyp install self
|
73
|
+
```
|
74
|
+
|
75
|
+
https://github.com/noteflakes/lyp/releases/download/v0.2.1/lyp-0.2.1-linux-x86_64.tar.gz
|
76
|
+
|
77
|
+
**Note**: using the standalone release of lyp requires having git on your machine.
|
61
78
|
|
62
79
|
### How lyp works
|
63
80
|
|
@@ -69,12 +86,14 @@ Lyp sets up a working directory in `~/.lyp` where it keeps its binaries, instal
|
|
69
86
|
- Create a wrapper lilypond file that loads the packages.
|
70
87
|
- Invoke the selected version of lilypond.
|
71
88
|
|
89
|
+
For more information on running lilypond see the section on [Running lilypond](#running-lilypond).
|
90
|
+
|
72
91
|
### Uninstalling
|
73
92
|
|
74
93
|
In order to remove lyp from your system use the `uninstall self` command:
|
75
94
|
|
76
95
|
```bash
|
77
|
-
lyp uninstall self
|
96
|
+
$ lyp uninstall self
|
78
97
|
```
|
79
98
|
|
80
99
|
This command will undo the changes made to your shell profile file, and remove any binaries from `~/.lyp/bin`.
|
@@ -82,7 +101,7 @@ This command will undo the changes made to your shell profile file, and remove a
|
|
82
101
|
In order to completely remove all files in `~/.lyp` you can simply delete the directory:
|
83
102
|
|
84
103
|
```bash
|
85
|
-
rm -rf ~/.lyp
|
104
|
+
$ rm -rf ~/.lyp
|
86
105
|
```
|
87
106
|
|
88
107
|
## Working with Packages
|
@@ -102,31 +121,77 @@ Lilypond packages are expected to be published as git repositories. The packages
|
|
102
121
|
In order to install a package, use the `lyp install` command:
|
103
122
|
|
104
123
|
```bash
|
105
|
-
|
106
|
-
lyp install
|
107
|
-
|
108
|
-
|
124
|
+
# install latest version of package dummy
|
125
|
+
$ lyp install dummy
|
126
|
+
|
127
|
+
# install version 0.2.0
|
128
|
+
$ lyp install github.com/ciconia/mypack@0.2.0
|
129
|
+
|
130
|
+
# install version 0.1.0 or higher
|
131
|
+
$ lyp install "mypack>=0.1.0"
|
132
|
+
|
133
|
+
# install from local path (see section below on developing packages)
|
134
|
+
$ lyp install mypack@dev:~/repo/mypack
|
109
135
|
```
|
110
136
|
|
111
137
|
To uninstall the package, use the `lyp uninstall` command:
|
112
138
|
|
113
139
|
```bash
|
114
|
-
|
115
|
-
lyp uninstall
|
140
|
+
# uninstall version 0.1.0
|
141
|
+
$ lyp uninstall dummy@0.1.0
|
142
|
+
|
143
|
+
# uninstall all versions of dummy
|
144
|
+
$ lyp uninstall -a dummy
|
116
145
|
```
|
117
146
|
|
118
147
|
To list currently installed packages use `lyp list` command:
|
119
148
|
|
120
149
|
```bash
|
121
|
-
|
122
|
-
lyp list
|
150
|
+
# list all installed packages
|
151
|
+
$ lyp list
|
152
|
+
|
153
|
+
# list all installed packages matching the pattern 'font'
|
154
|
+
$ lyp list font
|
123
155
|
```
|
124
156
|
|
125
157
|
To list packages available on the lyp package index use the `lyp search` command:
|
126
158
|
|
127
159
|
```bash
|
128
|
-
|
129
|
-
lyp search
|
160
|
+
# list all packages in index
|
161
|
+
lyp search
|
162
|
+
|
163
|
+
# list available packages matching pattern 'stylesheet'
|
164
|
+
lyp search stylesheet
|
165
|
+
```
|
166
|
+
|
167
|
+
### Automatic package installation
|
168
|
+
|
169
|
+
An easier way to install packages is by using the `lyp resolve` command, which installs all packages required for a given input file. Suppose a lilypond called `test.ly` with the following content:
|
170
|
+
|
171
|
+
```lilypond
|
172
|
+
\version "2.19.35"
|
173
|
+
\require "assert"
|
174
|
+
|
175
|
+
#(assert-eq? 1 1)
|
176
|
+
#(assert:summary)
|
177
|
+
```
|
178
|
+
|
179
|
+
To install the `assert` package required in the file we run:
|
180
|
+
|
181
|
+
```bash
|
182
|
+
$ lyp resolve test.ly
|
183
|
+
#=>
|
184
|
+
Cloning https://github.com/noteflakes/lyp-assert.git...
|
185
|
+
|
186
|
+
Installed assert@0.2.0
|
187
|
+
```
|
188
|
+
|
189
|
+
Package dependencies for a given input file can be shown using the `lyp deps` command:
|
190
|
+
|
191
|
+
```bash
|
192
|
+
$ lyp deps test.ly
|
193
|
+
#=>
|
194
|
+
assert => 0.2.0
|
130
195
|
```
|
131
196
|
|
132
197
|
### Package references
|
@@ -134,16 +199,21 @@ lyp search stylesheet # list available packages matching pattern 'stylesheet'
|
|
134
199
|
A package is normally referenced by its git URL. Lyp lets you provide either fully- or partially qualified URLs. A package hosted on github can be also referenced by the user/repository pair. The following are all equivalent:
|
135
200
|
|
136
201
|
```bash
|
137
|
-
|
138
|
-
lyp install https://github.com/noteflakes/lyp-package-template
|
139
|
-
lyp install github.com/noteflakes/lyp-package-template
|
140
|
-
|
202
|
+
# Fully-qualified URLs
|
203
|
+
$ lyp install https://github.com/noteflakes/lyp-package-template.git
|
204
|
+
$ lyp install https://github.com/noteflakes/lyp-package-template
|
205
|
+
|
206
|
+
# Partially-qualified URL
|
207
|
+
$ lyp install github.com/noteflakes/lyp-package-template
|
208
|
+
|
209
|
+
# Github repository id
|
210
|
+
$ lyp install noteflakes/lyp-package-template
|
141
211
|
```
|
142
212
|
|
143
213
|
In addition, lyp also provides an [index of publically available package](https://github.com/noteflakes/lyp-index), which maps a package name to its URL (see also below). Using the index, packages are referenced by their published name instead of by their git URL:
|
144
214
|
|
145
215
|
```bash
|
146
|
-
lyp install dummy
|
216
|
+
$ lyp install dummy
|
147
217
|
```
|
148
218
|
|
149
219
|
To get a list of all available packages on the index, use the `lyp search` command.
|
@@ -169,21 +239,23 @@ Version constraints specify a range of versions to use. Lyp currently supports t
|
|
169
239
|
Version specifiers could be used when installing, listing and requiring packages, and also for specifying versions of lilypond (see below). For example:
|
170
240
|
|
171
241
|
```bash
|
172
|
-
lyp install "dummy~>0.2.0"
|
242
|
+
$ lyp install "dummy~>0.2.0"
|
173
243
|
```
|
174
244
|
|
175
|
-
|
245
|
+
**Note**: when using version constraints you should put the package specifier in quotes for bash properly parse the command.
|
176
246
|
|
177
|
-
###
|
247
|
+
### Requiring packages
|
178
248
|
|
179
|
-
To include a package in your lilypond code, use
|
249
|
+
To include a package in your lilypond code, use the `\require` command:
|
180
250
|
|
181
251
|
```lilypond
|
182
252
|
\require "dummy"
|
183
253
|
\require "github.com/lulu/mypack>=0.4.0"
|
184
254
|
```
|
185
255
|
|
186
|
-
|
256
|
+
**Note**: once you use `\require` in your code, you will have to compile it using the lilypond wrapper provided by lyp. It will not pass compilation using plain lilypond.
|
257
|
+
|
258
|
+
Once the package requirements are defined, you can either install packages manually using [`lyp install`](#installing-packages), or automatically using [`lyp resolve`](#automatic-package-installation) as described above.
|
187
259
|
|
188
260
|
## Developing packages
|
189
261
|
|
@@ -195,18 +267,24 @@ To create a lilypond package:
|
|
195
267
|
- Test & debug your code (see below).
|
196
268
|
- Publish your package (see below).
|
197
269
|
|
198
|
-
To test your package with an actual input file, you can install it from a local path (for more on testing
|
270
|
+
To test your package with an actual input file, you can install it from a local path (for more on testing see [below](#testing-packages)). Suppose your package is at ~/repo/mypack:
|
199
271
|
|
200
272
|
```bash
|
201
|
-
lyp install mypack@dev:~/repo/mypack
|
273
|
+
$ lyp install mypack@dev:~/repo/mypack
|
202
274
|
```
|
203
275
|
|
204
|
-
This will create a `mypack@dev` package referencing your local files, which you can then reference from
|
276
|
+
This will create a `mypack@dev` package referencing your local files, which you can then reference normally from an input file using the `\require` command:
|
205
277
|
|
206
278
|
```lilypond
|
207
279
|
\require "mypack@dev"
|
208
280
|
```
|
209
281
|
|
282
|
+
If the input file is residing inside your package (for example, [test files](#testing-packages)), you can require your package by specifying a relative path. Suppose the input file is at `mypack/test/mypack_test.ly`:
|
283
|
+
|
284
|
+
```lilypond
|
285
|
+
\require "mypack:.."
|
286
|
+
```
|
287
|
+
|
210
288
|
### The package interface
|
211
289
|
|
212
290
|
In order to facilitate writing complex packages, lyp defines a few variables and functions:
|
@@ -224,13 +302,13 @@ Lyp provides the `\pinclude` and `\pincludeOnce` commands for including files re
|
|
224
302
|
\pinclude "inc/template.ily"
|
225
303
|
```
|
226
304
|
|
227
|
-
Lyp also defines a `
|
305
|
+
Lyp also defines a `lyp:load` scheme function for loading scheme files using relative paths without adding directories to the `%load-path`:
|
228
306
|
|
229
307
|
```lilypond
|
230
|
-
#(if (not (defined? 'mypack:init))(
|
308
|
+
#(if (not (defined? 'mypack:init))(lyp:load "scm/init.scm"))
|
231
309
|
```
|
232
310
|
|
233
|
-
Loading scheme files that way is better
|
311
|
+
Loading scheme files that way is a better technique than adding directorys to `%load-path`, because this way one avoids possible name clashes, which may lead to unexpected behavior.
|
234
312
|
|
235
313
|
### Including fonts
|
236
314
|
|
@@ -243,8 +321,8 @@ Lyp also supports automatic installation of fonts, based on work by [Abraham Lei
|
|
243
321
|
Packages can be tested by using the `lyp test` command, which will compile any file found inside the package directory ending in `_test.ly`:
|
244
322
|
|
245
323
|
```bash
|
246
|
-
cd mypack
|
247
|
-
lyp test .
|
324
|
+
$ cd mypack
|
325
|
+
$ lyp test .
|
248
326
|
```
|
249
327
|
|
250
328
|
A test file can either be a simple lilypond file which includes the package files and results in a lilypond score, or a lilypond file that performs unit tests on scheme code.
|
@@ -257,58 +335,174 @@ In order for your package to be available to all users, you'll need to first pus
|
|
257
335
|
|
258
336
|
You can also add your package to the lyp [public package index](https://github.com/noteflakes/lyp-index), by cloning it, editing [index.yaml](https://github.com/noteflakes/lyp-index/blob/master/index.yaml), and creating a pull request.
|
259
337
|
|
260
|
-
## Installing and
|
338
|
+
## Installing and Using Lilypond
|
339
|
+
|
340
|
+
### Installing/uninstalling a version of lilypond
|
261
341
|
|
262
342
|
When installing lilypond, the specific version to download can be specified in different ways:
|
263
343
|
|
264
344
|
```bash
|
265
|
-
|
266
|
-
lyp install lilypond
|
267
|
-
|
268
|
-
|
269
|
-
lyp install lilypond@
|
270
|
-
|
271
|
-
|
345
|
+
# latest stable version
|
346
|
+
$ lyp install lilypond
|
347
|
+
|
348
|
+
# latest stable version
|
349
|
+
$ lyp install lilypond@stable
|
350
|
+
|
351
|
+
# latest stable version
|
352
|
+
$ lyp install lilypond@unstable
|
353
|
+
|
354
|
+
# latest version
|
355
|
+
$ lyp install lilypond@latest
|
356
|
+
|
357
|
+
# version 2.18.1
|
358
|
+
$ lyp install lilypond@2.18.1
|
359
|
+
|
360
|
+
# highest version higher than 2.19.27
|
361
|
+
$ lyp install "lilypond>=2.19.27"
|
362
|
+
|
363
|
+
# highest 2.18 version higher than 2.18.1
|
364
|
+
$ lyp install "lilypond~>2.18.1"
|
365
|
+
```
|
366
|
+
|
367
|
+
To uninstall a version lilypond use `lyp uninstall`
|
368
|
+
|
369
|
+
```bash
|
370
|
+
$ lyp uninstall lilypond@2.18.2
|
272
371
|
```
|
273
372
|
|
373
|
+
### Showing the list of installed lilypond versions
|
374
|
+
|
274
375
|
To display all installed versions of lilypond, use the `list` command:
|
275
376
|
|
276
377
|
```bash
|
277
|
-
lyp list lilypond
|
378
|
+
$ lyp list lilypond
|
379
|
+
```
|
380
|
+
|
381
|
+
The output will look as follows:
|
382
|
+
|
278
383
|
```
|
384
|
+
Lilypond versions:
|
279
385
|
|
280
|
-
|
386
|
+
=> 2.18.2
|
387
|
+
2.19.12
|
388
|
+
* 2.19.35
|
389
|
+
|
390
|
+
# => - current
|
391
|
+
# =* - current && default
|
392
|
+
# * - default
|
393
|
+
```
|
394
|
+
|
395
|
+
(For current, default settings see below)
|
396
|
+
|
397
|
+
This will also list any versions of lilypond found on the user's `$PATH` outside of the `~/.lyp` directory (these versions will be marked as 'system' versions).
|
398
|
+
|
399
|
+
### Showing available lilypond versions
|
281
400
|
|
282
401
|
You can also list available versions of lilypond by using the `search` command:
|
283
402
|
|
284
403
|
```bash
|
285
|
-
|
286
|
-
lyp search
|
287
|
-
|
404
|
+
# display all available versions of lilypond
|
405
|
+
$ lyp search lilypond
|
406
|
+
|
407
|
+
# display all available versions higher than 2.19
|
408
|
+
$ lyp search "lilypond>=2.19"
|
409
|
+
|
410
|
+
# display all available stable versions
|
411
|
+
$ lyp search "lilypond@stable"
|
288
412
|
````
|
289
413
|
|
414
|
+
The output will look as follows:
|
415
|
+
|
416
|
+
```
|
417
|
+
Available versions of lilypond@stable:
|
418
|
+
|
419
|
+
2.8.8
|
420
|
+
2.10.0
|
421
|
+
2.10.33
|
422
|
+
2.12.0
|
423
|
+
2.12.3
|
424
|
+
2.14.0
|
425
|
+
2.14.2
|
426
|
+
2.16.0
|
427
|
+
2.16.1
|
428
|
+
2.16.2
|
429
|
+
2.18.0
|
430
|
+
2.18.1
|
431
|
+
* 2.18.2
|
432
|
+
|
433
|
+
* Currently installed
|
434
|
+
```
|
435
|
+
|
436
|
+
### Switching between lilypond versions
|
437
|
+
|
290
438
|
To switch between versions use the `lyp use`. The same version specifiers could be used as for the `lyp install` command:
|
291
439
|
|
292
440
|
```bash
|
293
|
-
lyp use lilypond@2.18.2
|
294
|
-
|
295
|
-
|
441
|
+
$ lyp use lilypond@2.18.2 # the 'lilypond' identifier is optional
|
442
|
+
|
443
|
+
# use latest stable/unstable versions
|
444
|
+
$ lyp use stable
|
445
|
+
$ lyp use unstable
|
296
446
|
```
|
297
447
|
|
298
|
-
The setting of the current lilypond version to use will be maintained for the current shell session.
|
448
|
+
**Note**: The setting of the current lilypond version to use will be maintained for the current shell session.
|
299
449
|
|
300
450
|
In order to switch the default version of lilypond to use, add the `--default` switch:
|
301
451
|
|
302
452
|
```bash
|
303
|
-
lyp use --default 2.19.35
|
453
|
+
$ lyp use --default 2.19.35
|
454
|
+
```
|
455
|
+
|
456
|
+
The version used can be further controlled using the `--use` and `--env` options passed to `lilypond` (see below).
|
457
|
+
|
458
|
+
As discussed [above](#showing-the-list-of-installed-lilypond-versions), the `lyp list lilypond` command displays the current and default settings. You can also display the path to the currently selected version by running `lyp which lilypond`:
|
459
|
+
|
460
|
+
```bash
|
461
|
+
$ lyp which lilypond
|
462
|
+
#=> /Users/sharon/.lyp/lilyponds/2.18.2/bin/lilypond
|
304
463
|
```
|
305
464
|
|
465
|
+
### Running lilypond
|
466
|
+
|
467
|
+
Once one or more versions of lilypond are installed, the lilypond command may be used normally to compile lilypond files. Lyp adds a few extra options:
|
468
|
+
|
469
|
+
- `--use`, `-u` - use a specific version of lilypond:
|
470
|
+
|
471
|
+
```bash
|
472
|
+
$ lilypond --use=2.19.12 ...
|
473
|
+
|
474
|
+
# version constraints can also be used:
|
475
|
+
$ lilypond --use=">=2.19.12" ...
|
476
|
+
$ lilypond --use=stable ...
|
477
|
+
$ lilypond --use=latest ...
|
478
|
+
```
|
479
|
+
|
480
|
+
- `--env`, `-E` - use a version set by the `$LILYPOND_VERSION` environment variable:
|
481
|
+
|
482
|
+
```bash
|
483
|
+
$ LILYPOND_VERSION=2.18.2 lilypond --env ...
|
484
|
+
```
|
485
|
+
|
486
|
+
- `--install`, `-n` - install the specified version of lilypond if not present. This option works only in conjunction with `--env` or `--use`:
|
487
|
+
|
488
|
+
```bash
|
489
|
+
$ lilypond -u2.19.35 -n ...
|
490
|
+
```
|
491
|
+
|
492
|
+
- `--raw`, `-r` - do not pre-process input file (no scanning for dependencies, no wrapping).
|
493
|
+
|
494
|
+
```bash
|
495
|
+
$ lilypond --raw ...
|
496
|
+
```
|
497
|
+
|
306
498
|
## Contributing
|
307
499
|
|
308
|
-
Lyp is written in Ruby, and its code is [available on github](https://github.com/noteflakes/lyp). To hack on it,
|
500
|
+
Lyp is written in Ruby, and its code is [available on github](https://github.com/noteflakes/lyp). To hack on it, simply clone the repository. To run the specs:
|
309
501
|
|
310
502
|
```bash
|
311
|
-
|
503
|
+
$ cd lyp
|
504
|
+
$ bundle install # needs to be run only once
|
505
|
+
$ rspec
|
312
506
|
```
|
313
507
|
|
314
508
|
Please feel free to submit issues and pull requests.
|
data/bin/install_release.sh
CHANGED
@@ -4,11 +4,8 @@ shopt -s extglob
|
|
4
4
|
set -o errtrace
|
5
5
|
set -o errexit
|
6
6
|
|
7
|
-
fail() { log "\nERROR: $*\n" ; exit 1
|
8
|
-
|
9
|
-
has() {
|
10
|
-
type "$1" > /dev/null 2>&1
|
11
|
-
}
|
7
|
+
fail() { log "\nERROR: $*\n" ; exit 1 }
|
8
|
+
has() { type "$1" > /dev/null 2>&1 }
|
12
9
|
|
13
10
|
download() {
|
14
11
|
if has "curl"; then
|
@@ -21,7 +18,7 @@ download() {
|
|
21
18
|
}
|
22
19
|
|
23
20
|
WORKDIR="/tmp/lyp-release-installer"
|
24
|
-
LYP_VERSION="0.2.
|
21
|
+
LYP_VERSION="0.2.2"
|
25
22
|
URL_BASE="https://github.com/noteflakes/lyp/releases/download/v$LYP_VERSION"
|
26
23
|
|
27
24
|
PLATFORM=`uname -sp`
|
data/bin/lilypond
CHANGED
@@ -3,20 +3,86 @@
|
|
3
3
|
require 'lyp/version'
|
4
4
|
require 'lyp'
|
5
5
|
|
6
|
-
|
6
|
+
def process_argv
|
7
|
+
options = {}
|
8
|
+
argv = ARGV.dup # copy for iterating
|
9
|
+
argv_clean = []
|
10
|
+
while arg = argv.shift
|
11
|
+
case arg
|
12
|
+
when '-r', '--raw'
|
13
|
+
options[:raw] = true
|
14
|
+
when '-E', '--env'
|
15
|
+
unless ENV['LILYPOND_VERSION']
|
16
|
+
STDERR.puts "$LILYPOND_VERSION not set"
|
17
|
+
exit 1
|
18
|
+
end
|
19
|
+
options[:use_version] = ENV['LILYPOND_VERSION']
|
20
|
+
when '-u', '--use'
|
21
|
+
options[:use_version] = argv.shift
|
22
|
+
when /^(?:\-u|\-\-use\=)"?([^\s]+)"?/
|
23
|
+
options[:use_version] = $1
|
24
|
+
when '-n', '--install'
|
25
|
+
options[:install] = true
|
26
|
+
else
|
27
|
+
argv_clean << arg
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
[options, argv_clean]
|
32
|
+
end
|
33
|
+
$options, $argv = process_argv
|
7
34
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
35
|
+
def get_lilypond_path
|
36
|
+
if $options[:use_version]
|
37
|
+
if $options[:install]
|
38
|
+
Lyp::Lilypond.install_if_missing($options[:use_version])
|
39
|
+
end
|
40
|
+
Lyp::Lilypond.force_version!($options[:use_version])
|
41
|
+
end
|
42
|
+
Lyp::Lilypond.check_lilypond!
|
43
|
+
Lyp::Lilypond.current_lilypond.tap do |path|
|
44
|
+
unless path && File.file?(path)
|
45
|
+
STDERR.puts "No version of lilypond found. To install lilypond run 'lyp install lilypond'."
|
46
|
+
exit 1
|
47
|
+
end
|
48
|
+
end
|
49
|
+
rescue => e
|
50
|
+
STDERR.puts e.message
|
12
51
|
exit 1
|
13
52
|
end
|
53
|
+
$lilypond_path = get_lilypond_path
|
54
|
+
|
55
|
+
if $options[:raw]
|
56
|
+
exec("#{$lilypond_path} #{$argv[1..-1].join(' ')}")
|
57
|
+
end
|
58
|
+
|
59
|
+
OVERRIDING_LILYPOND_SWITCHES = %w{
|
60
|
+
-w --warranty
|
61
|
+
-v --version
|
62
|
+
scheme-sandbox
|
63
|
+
}
|
64
|
+
LILYPOND_HELP_SWITCHES = %w{
|
65
|
+
-h --help
|
66
|
+
}
|
67
|
+
LYP_LY_HELP = <<EOF
|
68
|
+
Lyp-provided options:
|
69
|
+
-r, --raw run raw lilypond (no pre-processing)
|
70
|
+
-E, --env use version specified in $LILYPOND_VERSION
|
71
|
+
-u, --use=VERSION use the given version of lilypond
|
72
|
+
-n, --install install the given version if not found
|
73
|
+
EOF
|
14
74
|
|
15
|
-
case
|
16
|
-
when
|
17
|
-
|
75
|
+
case $argv.first
|
76
|
+
when nil, *OVERRIDING_LILYPOND_SWITCHES
|
77
|
+
STDERR.puts "Lyp version #{Lyp::VERSION}"
|
78
|
+
exec("#{$lilypond_path} #{$argv.join(' ')}")
|
79
|
+
|
80
|
+
when *LILYPOND_HELP_SWITCHES
|
81
|
+
STDERR.puts "Lyp version #{Lyp::VERSION}"
|
82
|
+
puts `#{$lilypond_path} #{$argv.join(' ')}`
|
83
|
+
puts LYP_LY_HELP
|
18
84
|
else
|
19
85
|
begin
|
20
|
-
Lyp::Lilypond.compile(
|
86
|
+
Lyp::Lilypond.compile($argv, $options)
|
21
87
|
end
|
22
88
|
end
|
data/lib/lyp/base.rb
CHANGED
@@ -25,6 +25,8 @@ module Lyp
|
|
25
25
|
# etc/lyp.ly contains lyp:* procedure definitions for loading packages and
|
26
26
|
# other support code.
|
27
27
|
LYP_LY_LIB_PATH = File.expand_path('etc/lyp.ly', File.dirname(__FILE__))
|
28
|
+
|
29
|
+
LILYPOND_NOT_FOUND_MSG = "No version of lilypond found.\nTo install lilypond run 'lyp install lilypond'"
|
28
30
|
|
29
31
|
SETTINGS_FILENAME = 'settings.yml'
|
30
32
|
|
data/lib/lyp/cli.rb
CHANGED
@@ -39,10 +39,13 @@ LILYPOND_LEGEND = <<EOF
|
|
39
39
|
|
40
40
|
EOF
|
41
41
|
|
42
|
+
$cmd_options = {}
|
43
|
+
|
42
44
|
class Lyp::CLI < Thor
|
43
45
|
package_name "lyp"
|
44
46
|
map "-v" => :version
|
45
47
|
check_unknown_options! :except => :compile
|
48
|
+
class_option :verbose, aliases: '-V', :type => :boolean
|
46
49
|
|
47
50
|
desc "version", "show Lyp version"
|
48
51
|
def version
|
@@ -51,7 +54,7 @@ class Lyp::CLI < Thor
|
|
51
54
|
|
52
55
|
desc "search [PATTERN|lilypond]", "List available packages matching PATTERN or versions of lilypond"
|
53
56
|
def search(pattern = '')
|
54
|
-
|
57
|
+
$cmd_options = options
|
55
58
|
|
56
59
|
pattern =~ Lyp::PACKAGE_RE
|
57
60
|
package, version = $1, $2
|
@@ -68,9 +71,9 @@ class Lyp::CLI < Thor
|
|
68
71
|
versions = Lyp::Lilypond.search(version)
|
69
72
|
|
70
73
|
if versions.empty?
|
71
|
-
puts "\nNo versions of lilypond
|
74
|
+
puts "\nNo available versions of lilypond@#{version} found\n\n"
|
72
75
|
else
|
73
|
-
puts "\nAvailable versions of lilypond:\n\n"
|
76
|
+
puts "\nAvailable versions of lilypond@#{version}:\n\n"
|
74
77
|
versions.each do |v|
|
75
78
|
prefix = v[:installed] ? " * " : " "
|
76
79
|
puts "#{prefix}#{v[:version]}"
|
@@ -94,42 +97,61 @@ class Lyp::CLI < Thor
|
|
94
97
|
end
|
95
98
|
|
96
99
|
desc "compile [<option>...] <FILE>", "Invokes lilypond with given file"
|
97
|
-
method_option :install, aliases: '-
|
98
|
-
method_option :env, aliases: '-
|
100
|
+
method_option :install, aliases: '-n', type: :boolean, desc: 'Install the requested version of lilypond if not present'
|
101
|
+
method_option :env, aliases: '-E', type: :boolean, desc: 'Use version set by LILYPOND_VERSION environment variable'
|
102
|
+
method_option :use, aliases: '-u', type: :string, desc: 'Use specified version'
|
99
103
|
def compile(*args)
|
100
|
-
$
|
101
|
-
Lyp::System.test_installed_status!
|
104
|
+
$cmd_options = options
|
102
105
|
|
103
106
|
if options[:env]
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
+
unless ENV['LILYPOND_VERSION']
|
108
|
+
STDERR.puts "$LILYPOND_VERSION not set"
|
109
|
+
exit 1
|
107
110
|
end
|
108
|
-
|
109
|
-
# check lilypond default / current settings
|
110
|
-
Lyp::Lilypond.check_lilypond!
|
111
|
+
options[:use] = ENV['LILYPOND_VERSION']
|
111
112
|
end
|
112
113
|
|
114
|
+
if options[:use]
|
115
|
+
if options[:install]
|
116
|
+
Lyp::Lilypond.install_if_missing(options[:use], no_version_test: true)
|
117
|
+
end
|
118
|
+
Lyp::Lilypond.force_version!(options[:use])
|
119
|
+
end
|
120
|
+
|
121
|
+
# check lilypond default / current settings
|
122
|
+
Lyp::Lilypond.check_lilypond!
|
123
|
+
|
124
|
+
$stderr.puts "Lyp #{Lyp::VERSION}"
|
125
|
+
Lyp::System.test_installed_status!
|
113
126
|
Lyp::Lilypond.compile(args)
|
114
127
|
end
|
115
128
|
|
116
129
|
desc "test [<option>...] [.|PATTERN]", "Runs package tests on installed packages or local directory"
|
117
|
-
method_option :install, aliases: '-
|
118
|
-
method_option :env, aliases: '-
|
119
|
-
method_option :
|
130
|
+
method_option :install, aliases: '-n', type: :boolean, desc: 'Install the requested version of lilypond if not present'
|
131
|
+
method_option :env, aliases: '-E', type: :boolean, desc: 'Use version set by LILYPOND_VERSION environment variable'
|
132
|
+
method_option :use, aliases: '-u', type: :string, desc: 'Use specified version'
|
120
133
|
def test(*args)
|
121
|
-
$
|
134
|
+
$cmd_options = options
|
122
135
|
|
123
136
|
if options[:env]
|
124
|
-
|
125
|
-
|
126
|
-
|
137
|
+
unless ENV['LILYPOND_VERSION']
|
138
|
+
STDERR.puts "$LILYPOND_VERSION not set"
|
139
|
+
exit 1
|
127
140
|
end
|
128
|
-
|
129
|
-
# check lilypond default / current settings
|
130
|
-
Lyp::Lilypond.check_lilypond!
|
141
|
+
options[:use] = ENV['LILYPOND_VERSION']
|
131
142
|
end
|
132
143
|
|
144
|
+
if options[:use]
|
145
|
+
if options[:install]
|
146
|
+
Lyp::Lilypond.install_if_missing(options[:use], no_version_test: true)
|
147
|
+
end
|
148
|
+
Lyp::Lilypond.force_version!(options[:use])
|
149
|
+
end
|
150
|
+
|
151
|
+
# check lilypond default / current settings
|
152
|
+
Lyp::Lilypond.check_lilypond!
|
153
|
+
|
154
|
+
$stderr.puts "Lyp #{Lyp::VERSION}"
|
133
155
|
case args
|
134
156
|
when ['.']
|
135
157
|
Lyp::Package.run_local_tests('.')
|
@@ -142,6 +164,8 @@ class Lyp::CLI < Thor
|
|
142
164
|
method_option :default, aliases: '-d', type: :boolean, desc: 'Set default lilypond version'
|
143
165
|
method_option :test, aliases: '-t', type: :boolean, desc: 'Run package tests after installation'
|
144
166
|
def install(*args)
|
167
|
+
$cmd_options = options
|
168
|
+
|
145
169
|
raise "No package specified" if args.empty?
|
146
170
|
|
147
171
|
args.each do |package|
|
@@ -161,6 +185,8 @@ class Lyp::CLI < Thor
|
|
161
185
|
desc "uninstall <PACKAGE|lilypond|self>...", "Uninstall a package or a version of lilypond. When 'uninstall self' is invoked, lyp uninstalls itself from ~/.lyp."
|
162
186
|
method_option :all, aliases: '-a', type: :boolean, desc: 'Uninstall all versions'
|
163
187
|
def uninstall(*args)
|
188
|
+
$cmd_options = options
|
189
|
+
|
164
190
|
Lyp::System.test_installed_status!
|
165
191
|
|
166
192
|
raise "No package specified" if args.empty?
|
@@ -170,7 +196,7 @@ class Lyp::CLI < Thor
|
|
170
196
|
Lyp::System.uninstall!
|
171
197
|
when Lyp::LILYPOND_RE
|
172
198
|
Lyp::System.test_installed_status!
|
173
|
-
Lyp::Lilypond.uninstall($1)
|
199
|
+
Lyp::Lilypond.uninstall($1, options)
|
174
200
|
else
|
175
201
|
Lyp::System.test_installed_status!
|
176
202
|
Lyp::Package.uninstall(package, options)
|
@@ -181,6 +207,8 @@ class Lyp::CLI < Thor
|
|
181
207
|
desc "use [lilypond@]<VERSION>", "Switch version of lilypond"
|
182
208
|
method_option :default, aliases: '-d', type: :boolean, desc: 'Set default lilypond version'
|
183
209
|
def use(version)
|
210
|
+
$cmd_options = options
|
211
|
+
|
184
212
|
Lyp::System.test_installed_status!
|
185
213
|
|
186
214
|
if version =~ Lyp::LILYPOND_RE
|
@@ -193,12 +221,19 @@ class Lyp::CLI < Thor
|
|
193
221
|
|
194
222
|
desc "list [PATTERN|lilypond]", "List installed packages matching PATTERN or versions of lilypond"
|
195
223
|
def list(pattern = nil)
|
224
|
+
$cmd_options = options
|
225
|
+
|
196
226
|
Lyp::System.test_installed_status!
|
197
227
|
|
198
228
|
if pattern == 'lilypond'
|
199
|
-
|
200
|
-
|
201
|
-
|
229
|
+
list = Lyp::Lilypond.list
|
230
|
+
if list.empty?
|
231
|
+
puts LILYPOND_NOT_FOUND_MSG
|
232
|
+
else
|
233
|
+
puts LILYPOND_PREAMBLE
|
234
|
+
list.each {|info| puts format_lilypond_entry(info)}
|
235
|
+
puts LILYPOND_LEGEND
|
236
|
+
end
|
202
237
|
else
|
203
238
|
list = Lyp::Package.list(args.first)
|
204
239
|
if list.empty?
|
@@ -223,10 +258,17 @@ class Lyp::CLI < Thor
|
|
223
258
|
|
224
259
|
desc "which [PATTERN|lilypond]", "List locations of installed packages matching PATTERN or versions of lilypond"
|
225
260
|
def which(pattern = nil)
|
261
|
+
$cmd_options = options
|
262
|
+
|
226
263
|
Lyp::System.test_installed_status!
|
227
264
|
|
228
265
|
if pattern == 'lilypond'
|
229
|
-
|
266
|
+
current = Lyp::Lilypond.current_lilypond
|
267
|
+
if current
|
268
|
+
puts Lyp::Lilypond.current_lilypond
|
269
|
+
else
|
270
|
+
puts LILYPOND_NOT_FOUND_MSG
|
271
|
+
end
|
230
272
|
else
|
231
273
|
Lyp::Package.which(args.first).each {|p| puts p}
|
232
274
|
end
|
@@ -234,6 +276,8 @@ class Lyp::CLI < Thor
|
|
234
276
|
|
235
277
|
desc "deps FILE", "Lists dependencies found in user's files"
|
236
278
|
def deps(fn)
|
279
|
+
$cmd_options = options
|
280
|
+
|
237
281
|
resolver = Lyp::Resolver.new(fn)
|
238
282
|
tree = resolver.get_dependency_tree(ignore_missing: true)
|
239
283
|
tree[:dependencies].each do |package, leaf|
|
@@ -249,6 +293,8 @@ class Lyp::CLI < Thor
|
|
249
293
|
desc "resolve FILE", "Resolves and installs missing dependencies found in user's files"
|
250
294
|
method_option :all, aliases: '-a', type: :boolean, desc: 'Install all found dependencies'
|
251
295
|
def resolve(fn)
|
296
|
+
$cmd_options = options
|
297
|
+
|
252
298
|
resolver = Lyp::Resolver.new(fn)
|
253
299
|
tree = resolver.get_dependency_tree(ignore_missing: true)
|
254
300
|
tree[:dependencies].each do |package, leaf|
|
@@ -263,6 +309,6 @@ begin
|
|
263
309
|
Lyp::CLI.start(ARGV)
|
264
310
|
rescue => e
|
265
311
|
puts e.message
|
266
|
-
puts e.backtrace.join("\n")
|
312
|
+
puts e.backtrace.join("\n") if $cmd_options[:verbose]
|
267
313
|
exit(1)
|
268
314
|
end
|
data/lib/lyp/lilypond.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
require 'httpclient'
|
2
1
|
require 'uri'
|
2
|
+
require 'httpclient'
|
3
3
|
require 'open3'
|
4
4
|
require 'ruby-progressbar'
|
5
5
|
|
@@ -57,11 +57,12 @@ module Lyp::Lilypond
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def forced_lilypond
|
60
|
-
lilypond =
|
61
|
-
|
60
|
+
lilypond = filter_installed_list(@forced_version)[0]
|
61
|
+
if lilypond
|
62
|
+
lilypond[:path]
|
63
|
+
else
|
64
|
+
raise "No installed version found matching '#{@forced_version}'"
|
62
65
|
end
|
63
|
-
|
64
|
-
lilypond && lilypond[:path]
|
65
66
|
end
|
66
67
|
|
67
68
|
def force_env_version!
|
@@ -71,6 +72,10 @@ module Lyp::Lilypond
|
|
71
72
|
end
|
72
73
|
end
|
73
74
|
|
75
|
+
def force_version!(version)
|
76
|
+
@forced_version = version
|
77
|
+
end
|
78
|
+
|
74
79
|
attr_reader :forced_version
|
75
80
|
|
76
81
|
def check_lilypond!
|
@@ -81,7 +86,7 @@ module Lyp::Lilypond
|
|
81
86
|
end
|
82
87
|
|
83
88
|
def valid_lilypond?(path)
|
84
|
-
File.file?(path) && (`#{path} -v` =~ /^GNU LilyPond/)
|
89
|
+
(File.file?(path) rescue nil) && (`#{path} -v` =~ /^GNU LilyPond/)
|
85
90
|
end
|
86
91
|
|
87
92
|
def select_default_lilypond!
|
@@ -89,6 +94,8 @@ module Lyp::Lilypond
|
|
89
94
|
if latest
|
90
95
|
default = latest[:path]
|
91
96
|
set_default_lilypond(default)
|
97
|
+
else
|
98
|
+
raise LILYPOND_NOT_FOUND_MSG
|
92
99
|
end
|
93
100
|
end
|
94
101
|
|
@@ -110,9 +117,14 @@ module Lyp::Lilypond
|
|
110
117
|
Gem::Version.new(x[:version]) <=> Gem::Version.new(y[:version])
|
111
118
|
end
|
112
119
|
|
113
|
-
def
|
114
|
-
|
115
|
-
|
120
|
+
def filter_installed_list(version_specifier)
|
121
|
+
list = (system_lilyponds + lyp_lilyponds).sort!(&CMP_VERSION)
|
122
|
+
list.select {|l| version_match(l[:version], version_specifier, list)}
|
123
|
+
end
|
124
|
+
|
125
|
+
def list(opts = {})
|
126
|
+
system_list = opts[:lyp_only] ? [] : system_lilyponds
|
127
|
+
lyp_list = opts[:system_only] ? [] : lyp_lilyponds
|
116
128
|
|
117
129
|
default = default_lilypond
|
118
130
|
unless default
|
@@ -191,21 +203,19 @@ module Lyp::Lilypond
|
|
191
203
|
# Returns a list of versions of lilyponds available for download
|
192
204
|
def search(version_specifier = nil)
|
193
205
|
require 'open-uri'
|
194
|
-
require 'nokogiri'
|
195
206
|
|
196
207
|
platform = detect_lilypond_platform
|
197
208
|
url = "#{BASE_URL}/#{platform}/"
|
198
|
-
doc = Nokogiri::HTML(open(url))
|
199
209
|
|
200
210
|
versions = []
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
end
|
211
|
+
|
212
|
+
open(url).read.scan(/a href=\"lilypond-([0-9\.]+)[^>]+\"/) do |m|
|
213
|
+
versions << $1
|
205
214
|
end
|
206
|
-
|
215
|
+
|
207
216
|
installed_versions = list.map {|l| l[:version]}
|
208
|
-
versions.select {|v| version_match(v, version_specifier, versions)}
|
217
|
+
versions.select! {|v| version_match(v, version_specifier, versions)}
|
218
|
+
versions.map do |v|
|
209
219
|
{
|
210
220
|
version: v,
|
211
221
|
installed: installed_versions.include?(v)
|
@@ -238,6 +248,12 @@ module Lyp::Lilypond
|
|
238
248
|
search.last[:version]
|
239
249
|
end
|
240
250
|
|
251
|
+
def install_if_missing(version_specifier, opts = {})
|
252
|
+
if filter_installed_list(version_specifier).empty?
|
253
|
+
install(version_specifier, opts)
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
241
257
|
def install(version_specifier, opts = {})
|
242
258
|
version = detect_version_from_specifier(version_specifier)
|
243
259
|
raise "No version found matching specifier #{version_specifier}" unless version
|
@@ -394,7 +410,8 @@ module Lyp::Lilypond
|
|
394
410
|
FileUtils.cp_r(dir, target_dir, remove_destination: true) if File.directory?(dir)
|
395
411
|
end
|
396
412
|
|
397
|
-
|
413
|
+
# Show lilypond versions
|
414
|
+
STDERR.puts `#{target_dir}/bin/lilypond -v` unless opts[:silent] || opts[:no_version_test]
|
398
415
|
rescue => e
|
399
416
|
puts e.message
|
400
417
|
end
|
@@ -465,24 +482,29 @@ module Lyp::Lilypond
|
|
465
482
|
lilypond
|
466
483
|
end
|
467
484
|
|
468
|
-
def uninstall(
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
485
|
+
def uninstall(version_specifier, opts = {})
|
486
|
+
list = list(lyp_only: true)
|
487
|
+
if version_specifier
|
488
|
+
list.select! {|l| version_match(l[:version], version_specifier, list)}
|
489
|
+
elsif !opts[:all]
|
490
|
+
# if no version is specified
|
491
|
+
raise "No version specifier given.\nTo uninstall all versions run 'lyp uninstall lilypond -a'.\n"
|
473
492
|
end
|
474
|
-
lilyponds.delete(lilypond)
|
475
|
-
latest = lilyponds.first
|
476
493
|
|
477
|
-
if
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
494
|
+
if list.empty?
|
495
|
+
if version_specifier
|
496
|
+
raise "No lilypond found matching #{version_specifier}"
|
497
|
+
else
|
498
|
+
raise "No lilypond found"
|
499
|
+
end
|
482
500
|
end
|
483
501
|
|
484
|
-
|
485
|
-
|
502
|
+
list.each do |l|
|
503
|
+
puts "Uninstalling lilypond #{l[:version]}" unless opts[:silent]
|
504
|
+
set_current_lilypond(nil) if l[:current]
|
505
|
+
set_default_lilypond(nil) if l[:default]
|
506
|
+
FileUtils.rm_rf(l[:root_path])
|
507
|
+
end
|
486
508
|
end
|
487
509
|
|
488
510
|
def exec(cmd, raise_on_failure = true)
|
data/lib/lyp/version.rb
CHANGED
metadata
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lyp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: httpclient
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.7'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: 2.7.1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
29
|
+
version: '2.7'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: 2.7.1
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: ruby-progressbar
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,40 +70,6 @@ dependencies:
|
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: 0.19.1
|
73
|
-
- !ruby/object:Gem::Dependency
|
74
|
-
name: httpclient
|
75
|
-
requirement: !ruby/object:Gem::Requirement
|
76
|
-
requirements:
|
77
|
-
- - "~>"
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: '2.7'
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 2.7.1
|
83
|
-
type: :runtime
|
84
|
-
prerelease: false
|
85
|
-
version_requirements: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '2.7'
|
90
|
-
- - ">="
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
version: 2.7.1
|
93
|
-
- !ruby/object:Gem::Dependency
|
94
|
-
name: nokogiri
|
95
|
-
requirement: !ruby/object:Gem::Requirement
|
96
|
-
requirements:
|
97
|
-
- - '='
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version: 1.6.6.2
|
100
|
-
type: :runtime
|
101
|
-
prerelease: false
|
102
|
-
version_requirements: !ruby/object:Gem::Requirement
|
103
|
-
requirements:
|
104
|
-
- - '='
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: 1.6.6.2
|
107
73
|
- !ruby/object:Gem::Dependency
|
108
74
|
name: rugged
|
109
75
|
requirement: !ruby/object:Gem::Requirement
|