homebrew_automation 0.1.0 → 0.1.2
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49d776c65c9e87632521fa074eae30c674f541dc8fd5f4ffbe5b1ec522196e62
|
4
|
+
data.tar.gz: 42501be3a1f1503901489d1207ab572a1264785a8aebcbba9824ee59513fb09c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3f99f2156856a7489a874953873569c88d42c360334829d33233a7231e7057c1309ad2cf8ad1715e34154444bbb9650ef69acf7472dc8338ba604eee0beab96
|
7
|
+
data.tar.gz: a7d2d286cdc1561dfbd80b6cac9e9e246422b162e3f306eb338a2fb82f070fc64100e79deb505bb4430157eed1c0f0cdeeacd8c88ee684e2069d4e2f6d122d00
|
@@ -11,18 +11,21 @@ module HomebrewAutomation
|
|
11
11
|
# @param os_name [String] As known by Homebrew, e.g. +el_capitan+
|
12
12
|
# @param filename [String] ???
|
13
13
|
# @param content [String] ???
|
14
|
+
# @param keep_tmp [Boolean] pass +--keep-tmp+ to +brew+
|
14
15
|
def initialize(
|
15
16
|
tap_url,
|
16
17
|
formula_name,
|
17
18
|
os_name,
|
18
19
|
filename: nil,
|
19
|
-
content: nil
|
20
|
+
content: nil,
|
21
|
+
keep_tmp: false)
|
20
22
|
@tap_url = tap_url
|
21
23
|
@formula_name = formula_name
|
22
24
|
@os_name = os_name
|
23
25
|
@filename = filename
|
24
26
|
@minus_minus = nil # https://github.com/Homebrew/brew/pull/4612
|
25
27
|
@content = content
|
28
|
+
@keep_tmp = keep_tmp
|
26
29
|
end
|
27
30
|
|
28
31
|
# Takes ages to run, just like if done manually
|
@@ -30,9 +33,10 @@ module HomebrewAutomation
|
|
30
33
|
# @raise [StandardError]
|
31
34
|
# @return [nil]
|
32
35
|
def build
|
33
|
-
die unless system 'brew', 'tap',
|
34
|
-
|
35
|
-
die unless system 'brew', '
|
36
|
+
die unless system 'brew', 'tap', tmp_tap_name, @tap_url
|
37
|
+
maybe_keep_tmp = @keep_tmp ? '--keep-tmp' : ''
|
38
|
+
die unless system 'brew', 'install', '--verbose', maybe_keep_tmp, '--build-bottle', fully_qualified_formula_name
|
39
|
+
die unless system 'brew', 'bottle', '--verbose', '--json', '--no-rebuild', fully_qualified_formula_name
|
36
40
|
end
|
37
41
|
|
38
42
|
# Read and analyse metadata JSON file
|
@@ -82,8 +86,12 @@ module HomebrewAutomation
|
|
82
86
|
private
|
83
87
|
|
84
88
|
# A name for the temporary tap; doesn't really matter what this is.
|
85
|
-
def
|
86
|
-
'easoncxz/
|
89
|
+
def tmp_tap_name
|
90
|
+
'easoncxz/tmp-tap'
|
91
|
+
end
|
92
|
+
|
93
|
+
def fully_qualified_formula_name
|
94
|
+
tmp_tap_name + '/' + @formula_name
|
87
95
|
end
|
88
96
|
|
89
97
|
def die
|
@@ -9,6 +9,11 @@ module HomebrewAutomation
|
|
9
9
|
|
10
10
|
class MyCliApp < Thor
|
11
11
|
|
12
|
+
desc 'version', 'version of homebrew_automation'
|
13
|
+
def version
|
14
|
+
puts HomebrewAutomation::VERSION
|
15
|
+
end
|
16
|
+
|
12
17
|
desc 'formula (...)', 'Modify Formula DSL source (read stdin, write stdout)'
|
13
18
|
subcommand "formula", FormulaCommands
|
14
19
|
|
@@ -21,13 +21,15 @@ class HomebrewAutomation::CLI::WorkflowCommands < Thor
|
|
21
21
|
class_option :bintray_repo
|
22
22
|
class_option :bintray_package
|
23
23
|
class_option :bintray_version
|
24
|
+
class_option :keep_tap_repo, :type => :boolean
|
24
25
|
|
25
26
|
desc 'build-and-upload', 'Build binary tarball from source tarball, then upload to Bintray'
|
26
27
|
long_desc <<-HERE_HERE
|
27
28
|
Since we're uploading to Bintray, we need a Bintray API KEY at `bintray_token`.
|
28
29
|
HERE_HERE
|
30
|
+
option :keep_brew_tmp, :type => :boolean
|
29
31
|
def build_and_upload
|
30
|
-
workflow.build_and_upload_bottle(sdist, tap, formula_name, bintray_version)
|
32
|
+
workflow.build_and_upload_bottle(sdist, tap, formula_name, bintray_version, keep_homebrew_tmp: option[:keep_brew_tmp])
|
31
33
|
end
|
32
34
|
|
33
35
|
desc 'gather-and-publish', 'Make the Tap aware of new Bottles'
|
@@ -50,11 +52,16 @@ class HomebrewAutomation::CLI::WorkflowCommands < Thor
|
|
50
52
|
options[:source_tag])
|
51
53
|
end
|
52
54
|
|
55
|
+
def keep_tap_repo?
|
56
|
+
options[:keep_tap_repo]
|
57
|
+
end
|
58
|
+
|
53
59
|
def tap
|
54
60
|
HomebrewAutomation::Tap.new(
|
55
61
|
options[:tap_user],
|
56
62
|
options[:tap_repo],
|
57
|
-
options[:tap_token]
|
63
|
+
options[:tap_token],
|
64
|
+
keep_submodule: keep_tap_repo?)
|
58
65
|
end
|
59
66
|
|
60
67
|
# DOC: default values here
|
@@ -19,7 +19,7 @@ module HomebrewAutomation
|
|
19
19
|
# @param formula_name [String] the name of the formula in the Tap
|
20
20
|
# @param bversion [Bintray::Version]
|
21
21
|
# @return [Bottle]
|
22
|
-
def build_and_upload_bottle(sdist, tap, formula_name, bversion)
|
22
|
+
def build_and_upload_bottle(sdist, tap, formula_name, bversion, keep_homebrew_tmp: false)
|
23
23
|
os_name = MacOS.identify_version
|
24
24
|
tap.with_git_clone do
|
25
25
|
tap.on_formula(formula_name) do |formula|
|
@@ -28,7 +28,7 @@ module HomebrewAutomation
|
|
28
28
|
tap.git_commit_am "Throwaway commit; just for building bottles"
|
29
29
|
|
30
30
|
local_tap_url = File.realpath('.')
|
31
|
-
bottle = Bottle.new(local_tap_url, formula_name, os_name)
|
31
|
+
bottle = Bottle.new(local_tap_url, formula_name, os_name, keep_tmp: keep_homebrew_tmp)
|
32
32
|
bottle.build
|
33
33
|
|
34
34
|
# Bintray auto-creates Versions on file-upload.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: homebrew_automation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- easoncxz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|