smolt 0.3.3 → 0.4.0
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/.gitignore +3 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile +1 -0
- data/README.md +3 -8
- data/lib/smolt/cli.rb +25 -22
- data/lib/smolt/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6e45c9b9f6d4fbf8a2b5a1bcc4a2bf034d0c60891023c1344d49bd4322b25a3
|
4
|
+
data.tar.gz: b196a1bcbc44efed60b57d2540592ae04c86eb9d751b1899d9f864f5f3b21983
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6634f2823c2f34c6d439577ef4add70f5165adba6d6f699642c5258bddd43e1786733a0cf9abe38b7421804ac6f984703f35bcdc1d11e8c00461b266520fbe5
|
7
|
+
data.tar.gz: 9d9b16f54249e337d7dee2ed45b16152aa8240ae1bdda7008f3c48b6163af7e96334774716e79e0dc4d522d052385fb2ffb2b60c6b4217e923a3c8f4d7dd3a28
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -31,3 +31,16 @@ usage example
|
|
31
31
|
usage
|
32
32
|
|
33
33
|
$ smolt version
|
34
|
+
|
35
|
+
## [0.3.3] - 2022-05-19
|
36
|
+
### Fixed
|
37
|
+
- Show message like `{berw} is already installed.`
|
38
|
+
|
39
|
+
## [0.4.0] - 2022-05-24
|
40
|
+
### Change
|
41
|
+
- the word 'brew' to 'formula'
|
42
|
+
|
43
|
+
### Removed
|
44
|
+
- Show message like `{formula} is already installed.`
|
45
|
+
- Pattern like 'the formula is already installed'. Because 'does not require any dependencies covers it'
|
46
|
+
- Method `full`. Because you can find out formulas already installed by `brew list` command
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -23,15 +23,10 @@ Or install it yourself as:
|
|
23
23
|
$ gem install smolt
|
24
24
|
|
25
25
|
## Usage
|
26
|
-
$ smolt
|
26
|
+
$ smolt diff {formula}
|
27
27
|
|
28
|
-
This
|
29
|
-
If you
|
30
|
-
|
31
|
-
$ smolt diff {brew package name}
|
32
|
-
|
33
|
-
This shows brews brews you need to install the brew is given as an argument.
|
34
|
-
If you installed the brew, Smolt return the message like "{brew} is already installed."
|
28
|
+
This will show any additional dependent packages that need to be installed in order to install the package given in the argument.
|
29
|
+
If you don't need any additional packeges, Smolt returns the message like "{formula} does not require any additional dependencies."
|
35
30
|
|
36
31
|
## Development
|
37
32
|
|
data/lib/smolt/cli.rb
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
require "./lib/smolt"
|
4
4
|
require "./lib/smolt/version"
|
5
5
|
require "thor"
|
6
|
+
require "uri"
|
7
|
+
require "net/http"
|
8
|
+
require "json"
|
9
|
+
require "byebug"
|
6
10
|
|
7
11
|
module Smolt
|
8
12
|
# Smolt's all methods
|
@@ -12,34 +16,33 @@ module Smolt
|
|
12
16
|
puts "smolt #{VERSION}"
|
13
17
|
end
|
14
18
|
|
15
|
-
desc "
|
16
|
-
def
|
17
|
-
|
18
|
-
@installed_brews.grep(/#{brew}/)
|
19
|
-
return puts "#{brew} is already installed." unless @installed_brews.grep(/#{brew}/).empty?
|
20
|
-
|
21
|
-
puts @formatted_full
|
19
|
+
desc "diff deps", "return differencies of dependencies"
|
20
|
+
def diff(formula)
|
21
|
+
puts brew_deps(formula)
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
|
-
def diff(brew)
|
26
|
-
brew_params(brew)
|
27
|
-
return puts "#{brew} is already installed." unless @installed_brews.grep(/#{brew}/).empty?
|
24
|
+
private
|
28
25
|
|
29
|
-
|
26
|
+
def brew_deps(formula)
|
27
|
+
installed = brew_list
|
28
|
+
deps_array = fetch_deps(formula)
|
29
|
+
deps = []
|
30
|
+
deps_array.each { |f| deps << f unless installed.include?(f) }
|
31
|
+
if deps.empty?
|
32
|
+
"#{formula} does not require any additional dependencies."
|
33
|
+
else
|
34
|
+
":::Differencies of dependencies:::\n#{deps}"
|
35
|
+
end
|
30
36
|
end
|
31
37
|
|
32
|
-
|
38
|
+
def fetch_deps(formula)
|
39
|
+
uri = URI("https://formulae.brew.sh/api/formula/#{formula}.json")
|
40
|
+
res = Net::HTTP.get_response(uri)
|
41
|
+
JSON.parse(res.body)["dependencies"] if res.is_a?(Net::HTTPSuccess)
|
42
|
+
end
|
33
43
|
|
34
|
-
def
|
35
|
-
|
36
|
-
@installed_brews = `brew list`.split("\n")
|
37
|
-
dependent_brews = `brew deps #{@brew}`.split("\n")
|
38
|
-
diff_brews = dependent_brews - @installed_brews
|
39
|
-
divider = "-" * 50
|
40
|
-
formatted_installed = "#{divider}\nInstalled brews\n#{divider}\n#{@installed_brews}\n"
|
41
|
-
@formatted_diff = "#{divider}\nAdditional brews\n#{divider}\n#{diff_brews}"
|
42
|
-
@formatted_full = "#{formatted_installed}\n#{@formatted_diff}"
|
44
|
+
def brew_list
|
45
|
+
`brew list`.split("\n")
|
43
46
|
end
|
44
47
|
end
|
45
48
|
end
|
data/lib/smolt/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smolt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Naoyuki Ishida
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-05-
|
11
|
+
date: 2022-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|