fontist 1.9.0 → 1.9.1
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/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
|