fontist 1.9.0 → 1.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -5
- data/lib/fontist/cli.rb +5 -1
- data/lib/fontist/errors.rb +2 -0
- data/lib/fontist/formula.rb +2 -12
- data/lib/fontist/repo.rb +6 -0
- data/lib/fontist/repo_cli.rb +10 -1
- data/lib/fontist/update.rb +64 -0
- data/lib/fontist/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06c95de209b578a95a9b0d2bf19d196164ece01155a61685060c638af668743c
|
4
|
+
data.tar.gz: a2d621f546be67a09e94c4cad68f432642ec6c47d745c688e919652e3049ec7a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 938f320740216d01c7dc7e48b7a4a6070bba45d437be0e3b2c5846b3d1c28321967653b4b1ad13a6f112cab3e7ae72e74f708bd027022e875b2e4268693200bb
|
7
|
+
data.tar.gz: 602c750adddfc95ed2b7d83257a085b69c464c563ccbd314dc120f86c074d1e0aec243aacafba5bf4e73969ade9bc953b360764209db78fce7362102d1bff8fc
|
data/README.md
CHANGED
@@ -399,16 +399,20 @@ bin/rspec
|
|
399
399
|
All formulas are kept in the [formulas][fontist-formulas] repository. If you'd
|
400
400
|
like to add a new one or change any existing, please refer to its documentation.
|
401
401
|
|
402
|
-
###
|
402
|
+
### Private repos
|
403
403
|
|
404
404
|
There is an ability to use private fonts via private fontist repo. Fontist repo
|
405
405
|
is a git repo which contains YAML formula files. Formulas can be created
|
406
406
|
manually (see [examples](https://github.com/fontist/formulas/tree/master/Formulas)),
|
407
407
|
or [auto-generated from an archive](#auto-generate-a-formula).
|
408
408
|
|
409
|
-
A
|
409
|
+
A repo can be either HTTPS or SSH Git repo. In case of SSH, a corresponding SSH key
|
410
|
+
should be setup with ssh-agent in order to access this private repo.
|
410
411
|
|
411
|
-
|
412
|
+
The `repo setup` command fetches a repo's formulas, and saves repo's name and url
|
413
|
+
for later use.
|
414
|
+
|
415
|
+
Internally all repos are stored at `~/.fontist/formulas/Formulas/private`.
|
412
416
|
|
413
417
|
```sh
|
414
418
|
fontist repo setup NAME URL
|
@@ -418,15 +422,24 @@ E.g.
|
|
418
422
|
|
419
423
|
```sh
|
420
424
|
fontist repo setup acme https://example.com/acme/formulas.git
|
425
|
+
# or
|
426
|
+
fontist repo setup acme git@example.com:acme/formulas.git
|
427
|
+
```
|
428
|
+
|
429
|
+
Then you can just install fonts from this repo:
|
430
|
+
|
431
|
+
```sh
|
432
|
+
fontist install "private font"
|
421
433
|
```
|
422
434
|
|
423
|
-
|
435
|
+
There is no need in any additional command to be run, but if you add new
|
436
|
+
formulas to your repo, you can fetch them with the `repo update` command:
|
424
437
|
|
425
438
|
```sh
|
426
439
|
fontist repo update acme
|
427
440
|
```
|
428
441
|
|
429
|
-
If there is a need to avoid using
|
442
|
+
If there is a need to avoid using private formulas, the repo can be removed with:
|
430
443
|
|
431
444
|
```sh
|
432
445
|
fontist repo remove acme
|
data/lib/fontist/cli.rb
CHANGED
@@ -13,6 +13,7 @@ module Fontist
|
|
13
13
|
STATUS_FONT_INDEX_CORRUPTED = 7
|
14
14
|
STATUS_REPO_NOT_FOUND = 8
|
15
15
|
STATUS_MAIN_REPO_NOT_FOUND = 9
|
16
|
+
STATUS_REPO_COULD_NOT_BE_UPDATED = 10
|
16
17
|
|
17
18
|
ERROR_TO_STATUS = {
|
18
19
|
Fontist::Errors::UnsupportedFontError => [STATUS_NON_SUPPORTED_FONT_ERROR],
|
@@ -83,8 +84,11 @@ module Fontist
|
|
83
84
|
desc "update", "Update formulas"
|
84
85
|
def update
|
85
86
|
Formula.update_formulas_repo
|
86
|
-
Fontist.ui.
|
87
|
+
Fontist.ui.success("Formulas have been successfully updated.")
|
87
88
|
success
|
89
|
+
rescue Fontist::Errors::RepoCouldNotBeUpdatedError => e
|
90
|
+
Fontist.ui.error(e.message)
|
91
|
+
STATUS_REPO_COULD_NOT_BE_UPDATED
|
88
92
|
end
|
89
93
|
|
90
94
|
desc "manifest-locations MANIFEST",
|
data/lib/fontist/errors.rb
CHANGED
data/lib/fontist/formula.rb
CHANGED
@@ -1,22 +1,12 @@
|
|
1
1
|
require "fontist/index"
|
2
2
|
require "fontist/helpers"
|
3
|
+
require "fontist/update"
|
3
4
|
require "git"
|
4
5
|
|
5
6
|
module Fontist
|
6
7
|
class Formula
|
7
8
|
def self.update_formulas_repo
|
8
|
-
|
9
|
-
FileUtils.mkdir_p(dir) unless File.exist?(dir)
|
10
|
-
|
11
|
-
if Dir.exist?(Fontist.formulas_repo_path)
|
12
|
-
Git.open(Fontist.formulas_repo_path).pull
|
13
|
-
else
|
14
|
-
Git.clone(Fontist.formulas_repo_url,
|
15
|
-
Fontist.formulas_repo_path,
|
16
|
-
depth: 1)
|
17
|
-
end
|
18
|
-
|
19
|
-
Index.rebuild
|
9
|
+
Update.call
|
20
10
|
end
|
21
11
|
|
22
12
|
def self.all
|
data/lib/fontist/repo.rb
CHANGED
@@ -29,6 +29,12 @@ module Fontist
|
|
29
29
|
Index.rebuild
|
30
30
|
end
|
31
31
|
|
32
|
+
def list
|
33
|
+
Dir.glob(Fontist.private_formulas_path.join("*"))
|
34
|
+
.select { |path| File.directory?(path) }
|
35
|
+
.map { |path| File.basename(path) }
|
36
|
+
end
|
37
|
+
|
32
38
|
private
|
33
39
|
|
34
40
|
def ensure_private_formulas_path_exists
|
data/lib/fontist/repo_cli.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
module Fontist
|
2
2
|
class RepoCLI < Thor
|
3
3
|
desc "setup NAME URL",
|
4
|
-
"Setup a custom fontist repo named NAME for the repository at URL"
|
4
|
+
"Setup a custom fontist repo named NAME for the repository at URL " \
|
5
|
+
"and fetches its formulas"
|
5
6
|
def setup(name, url)
|
6
7
|
Repo.setup(name, url)
|
7
8
|
Fontist.ui.success(
|
@@ -32,6 +33,14 @@ module Fontist
|
|
32
33
|
handle_repo_not_found(name)
|
33
34
|
end
|
34
35
|
|
36
|
+
desc "list", "List fontist repos"
|
37
|
+
def list
|
38
|
+
Repo.list.each do |name|
|
39
|
+
Fontist.ui.say(name)
|
40
|
+
end
|
41
|
+
CLI::STATUS_SUCCESS
|
42
|
+
end
|
43
|
+
|
35
44
|
private
|
36
45
|
|
37
46
|
def handle_repo_not_found(name)
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Fontist
|
2
|
+
class Update
|
3
|
+
def self.call
|
4
|
+
new.call
|
5
|
+
end
|
6
|
+
|
7
|
+
def call
|
8
|
+
update_main_repo
|
9
|
+
update_private_repos
|
10
|
+
ensure
|
11
|
+
rebuild_index
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def update_main_repo
|
17
|
+
dir = File.dirname(Fontist.formulas_repo_path)
|
18
|
+
FileUtils.mkdir_p(dir) unless File.exist?(dir)
|
19
|
+
|
20
|
+
if Dir.exist?(Fontist.formulas_repo_path)
|
21
|
+
Git.open(Fontist.formulas_repo_path).pull
|
22
|
+
else
|
23
|
+
Git.clone(Fontist.formulas_repo_url,
|
24
|
+
Fontist.formulas_repo_path,
|
25
|
+
depth: 1)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def update_private_repos
|
30
|
+
private_repos.each do |path|
|
31
|
+
update_repo(path)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def update_repo(path)
|
36
|
+
Git.open(path).pull
|
37
|
+
rescue Git::GitExecuteError => e
|
38
|
+
name = repo_name(path)
|
39
|
+
raise Errors::RepoCouldNotBeUpdatedError.new(<<~MSG.chomp)
|
40
|
+
Formulas repo '#{name}' could not be updated.
|
41
|
+
Please consider reinitializing it with:
|
42
|
+
fontist remove #{name}
|
43
|
+
fontist setup #{name} REPO_URL
|
44
|
+
|
45
|
+
Git error:
|
46
|
+
#{e.message}
|
47
|
+
MSG
|
48
|
+
end
|
49
|
+
|
50
|
+
def private_repos
|
51
|
+
Dir.glob(Fontist.private_formulas_path.join("*")).select do |path|
|
52
|
+
File.directory?(path)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def repo_name(path)
|
57
|
+
File.basename(path)
|
58
|
+
end
|
59
|
+
|
60
|
+
def rebuild_index
|
61
|
+
Index.rebuild
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
data/lib/fontist/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fontist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06
|
11
|
+
date: 2021-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: down
|
@@ -307,6 +307,7 @@ files:
|
|
307
307
|
- lib/fontist/system.yml
|
308
308
|
- lib/fontist/system_font.rb
|
309
309
|
- lib/fontist/system_index.rb
|
310
|
+
- lib/fontist/update.rb
|
310
311
|
- lib/fontist/utils.rb
|
311
312
|
- lib/fontist/utils/cache.rb
|
312
313
|
- lib/fontist/utils/downloader.rb
|