glitter 2.0.3 → 2.2.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 +5 -5
- data/.ruby-version +1 -0
- data/glitter.gemspec +5 -4
- data/lib/glitter/cli.rb +11 -14
- data/lib/glitter/release.rb +7 -1
- data/lib/glitter/server.rb +10 -5
- data/lib/glitter/templates/appcast.xml.erb +1 -0
- data/lib/glitter/version.rb +1 -1
- data/spec/lib/glitter_spec.rb +8 -9
- data/spec/lib/server_spec.rb +22 -0
- metadata +21 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ccf1fac2f80421104cc52201577fb06dc3306d34d771e5ba6c20bc8f645d2539
|
4
|
+
data.tar.gz: bc8c6d9a44d27d393d465dd40d08802fda926106567473f3d1e78a6488cb2843
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efa24ff841f8fa88a4472e8fdedb83ce370fc8cc841ae914ca80de355d0311849643723b4b54a0c3ceaf487ca0721384dbb7af80333f302f8099b779a56b67a7
|
7
|
+
data.tar.gz: 0d05e28c9846d6a40b366a536d87b818e78ae6ee1a5d3ed659c94259de78d9db9f0dea6d1c1d2f5ac84c11cf1e374428258334a6358acadd88697fb7cc01e7e1
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.7.4
|
data/glitter.gemspec
CHANGED
@@ -11,11 +11,12 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.homepage = "https://github.com/polleverywhere/glitter"
|
12
12
|
s.summary = %q{Publish Mac software updates with the Sparkle framework and Amazon S3.}
|
13
13
|
s.description = %q{Glitter makes it easy to publish software updates via the Sparkle framework by using S3 buckets.}
|
14
|
+
s.licenses = ['MIT']
|
14
15
|
|
15
|
-
s.
|
16
|
-
s.add_dependency "s3"
|
17
|
-
s.add_dependency "haml"
|
18
|
-
s.add_dependency "thor"
|
16
|
+
s.required_ruby_version = ">= 2.0.0"
|
17
|
+
s.add_dependency "s3", "~> 0.3"
|
18
|
+
s.add_dependency "haml", "~> 5.0"
|
19
|
+
s.add_dependency "thor", "~> 1.0"
|
19
20
|
|
20
21
|
s.files = `git ls-files`.split("\n")
|
21
22
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
data/lib/glitter/cli.rb
CHANGED
@@ -3,14 +3,17 @@ require 'thor'
|
|
3
3
|
module Glitter
|
4
4
|
# Command line interface for cutting glitter builds
|
5
5
|
class CLI < Thor
|
6
|
-
desc "push", "
|
7
|
-
method_option :version,
|
8
|
-
method_option :channel,
|
9
|
-
method_option :notes,
|
10
|
-
method_option :
|
11
|
-
method_option :
|
6
|
+
desc "push", "Pushes a build to a channel with release notes."
|
7
|
+
method_option :version, :type => :string, :aliases => "-v", :required => true
|
8
|
+
method_option :channel, :type => :string, :aliases => "-c", :required => true
|
9
|
+
method_option :notes, :type => :string, :aliases => "-n"
|
10
|
+
method_option :bundle_version, :type => :string, :aliases => "-b"
|
11
|
+
method_option :minimum_system_version, :type => :string, :aliases => "-m"
|
12
|
+
method_option :force, :type => :boolean, :aliases => "-f"
|
13
|
+
method_option :timeout, :type => :numeric, :aliases => "-t", :default => Server::DEFAULT_S3_TIMEOUT
|
12
14
|
def push(executable_path, *asset_paths)
|
13
15
|
release = Release::Sparkle.new(channel, options.version)
|
16
|
+
release.minimum_system_version = options.minimum_system_version
|
14
17
|
release.bundle_version = options.bundle_version
|
15
18
|
release.notes = options.notes
|
16
19
|
release.executable = File.open executable_path
|
@@ -44,19 +47,13 @@ module Glitter
|
|
44
47
|
puts Glitter::VERSION
|
45
48
|
end
|
46
49
|
|
47
|
-
# desc "yank", "remove a build from a release channel"
|
48
|
-
# method_option :version, :type => :string, :aliases => "-v"
|
49
|
-
# method_option :channel, :type => :string, :aliases => "-c"
|
50
|
-
# def yank
|
51
|
-
# end
|
52
|
-
|
53
50
|
private
|
54
51
|
def channel
|
55
52
|
server.channel(options.channel)
|
56
53
|
end
|
57
54
|
|
58
55
|
def server
|
59
|
-
@server ||= Server.new
|
56
|
+
@server ||= Server.new(timeout: options.timeout)
|
60
57
|
end
|
61
58
|
end
|
62
|
-
end
|
59
|
+
end
|
data/lib/glitter/release.rb
CHANGED
@@ -70,7 +70,7 @@ module Glitter
|
|
70
70
|
# lives inside of a channel.
|
71
71
|
class Sparkle < Base
|
72
72
|
attr_accessor :notes, :executable, :filename
|
73
|
-
attr_writer :published_at, :bundle_version
|
73
|
+
attr_writer :published_at, :bundle_version, :minimum_system_version
|
74
74
|
|
75
75
|
# Yeah, lets publish this shiz NOW.
|
76
76
|
def published_at
|
@@ -89,6 +89,12 @@ module Glitter
|
|
89
89
|
@bundle_version || @version
|
90
90
|
end
|
91
91
|
|
92
|
+
def minimum_version_attribute
|
93
|
+
unless @minimum_system_version.nil?
|
94
|
+
"<sparkle:minimumSystemVersion>#{@minimum_system_version}</sparkle:minimumSystemVersion>"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
92
98
|
private
|
93
99
|
# Generates an HTML file of the release notes.
|
94
100
|
def notes_asset
|
data/lib/glitter/server.rb
CHANGED
@@ -5,10 +5,15 @@ require 'uri'
|
|
5
5
|
# contain multiple releases of software.
|
6
6
|
module Glitter
|
7
7
|
class Server
|
8
|
-
attr_reader :access_key_id, :secret_access_key, :bucket_name
|
8
|
+
attr_reader :access_key_id, :secret_access_key, :bucket_name, :timeout
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
DEFAULT_S3_TIMEOUT = 60
|
11
|
+
|
12
|
+
def initialize(access_key_id = ENV['AWS_ACCESS_KEY_ID'], secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'], bucket_name = ENV['AWS_BUCKET_NAME'], timeout: DEFAULT_S3_TIMEOUT)
|
13
|
+
@access_key_id = access_key_id
|
14
|
+
@secret_access_key = secret_access_key
|
15
|
+
@bucket_name = bucket_name
|
16
|
+
@timeout = timeout
|
12
17
|
end
|
13
18
|
|
14
19
|
def channel(name)
|
@@ -35,7 +40,7 @@ module Glitter
|
|
35
40
|
end
|
36
41
|
|
37
42
|
def s3
|
38
|
-
@s3 ||= ::S3::Service.new(:
|
43
|
+
@s3 ||= ::S3::Service.new(access_key_id: access_key_id, secret_access_key: secret_access_key, timeout: timeout, use_ssl: true)
|
39
44
|
end
|
40
45
|
end
|
41
|
-
end
|
46
|
+
end
|
data/lib/glitter/version.rb
CHANGED
data/spec/lib/glitter_spec.rb
CHANGED
@@ -2,16 +2,15 @@ require 'spec_helper'
|
|
2
2
|
require 'rexml/document'
|
3
3
|
|
4
4
|
describe Glitter do
|
5
|
-
let(:server) do
|
6
|
-
Glitter::Server.new
|
7
|
-
end
|
8
5
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
6
|
+
# # Note that uncommenting and running this spec *will* upload a single file to your S3 bucket
|
7
|
+
# it "should release to channel" do
|
8
|
+
# Glitter::Release::Sparkle.new Glitter::Server.new.channel('test-channel'), "1.1.2-#{rand}" do |r|
|
9
|
+
# r.executable = File.open(__FILE__)
|
10
|
+
# r.notes = %[Did you know that its #{Time.now}? Wait, you can only answer yes to that question.]
|
11
|
+
# r.minimum_system_version = "10.10"
|
12
|
+
# end.push.head
|
13
|
+
# end
|
15
14
|
|
16
15
|
it "AWS path segments are parsed correctly for an item at top level of version folder" do
|
17
16
|
channel, version, key = Glitter::Release.object_segments("/channel/version/some-item")
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rexml/document'
|
3
|
+
|
4
|
+
describe Glitter::Server do
|
5
|
+
describe "#new" do
|
6
|
+
context "No timeout flag is passed to the server constructor" do
|
7
|
+
let(:server) { Glitter::Server.new }
|
8
|
+
|
9
|
+
it "defaults to the default timeout" do
|
10
|
+
expect(server.timeout).to eq Glitter::Server::DEFAULT_S3_TIMEOUT
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context "A timeout flag is passed to the server constructor" do
|
15
|
+
let(:server) { Glitter::Server.new(timeout: 10) }
|
16
|
+
|
17
|
+
it "will have a timeout value of the passed timeout flag" do
|
18
|
+
expect(server.timeout).to eq 10
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brad Gessler, Thomas Hanley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: s3
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '0.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '0.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: haml
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '5.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
40
|
+
version: '5.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: thor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
47
|
+
version: '1.0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
54
|
+
version: '1.0'
|
55
55
|
description: Glitter makes it easy to publish software updates via the Sparkle framework
|
56
56
|
by using S3 buckets.
|
57
57
|
email:
|
@@ -62,6 +62,7 @@ extensions: []
|
|
62
62
|
extra_rdoc_files: []
|
63
63
|
files:
|
64
64
|
- ".gitignore"
|
65
|
+
- ".ruby-version"
|
65
66
|
- Gemfile
|
66
67
|
- Guardfile
|
67
68
|
- README.md
|
@@ -78,9 +79,11 @@ files:
|
|
78
79
|
- lib/glitter/templates/notes.html.erb
|
79
80
|
- lib/glitter/version.rb
|
80
81
|
- spec/lib/glitter_spec.rb
|
82
|
+
- spec/lib/server_spec.rb
|
81
83
|
- spec/spec_helper.rb
|
82
84
|
homepage: https://github.com/polleverywhere/glitter
|
83
|
-
licenses:
|
85
|
+
licenses:
|
86
|
+
- MIT
|
84
87
|
metadata: {}
|
85
88
|
post_install_message:
|
86
89
|
rdoc_options: []
|
@@ -90,18 +93,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
93
|
requirements:
|
91
94
|
- - ">="
|
92
95
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
96
|
+
version: 2.0.0
|
94
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
98
|
requirements:
|
96
99
|
- - ">="
|
97
100
|
- !ruby/object:Gem::Version
|
98
101
|
version: '0'
|
99
102
|
requirements: []
|
100
|
-
|
101
|
-
rubygems_version: 2.6.8
|
103
|
+
rubygems_version: 3.1.6
|
102
104
|
signing_key:
|
103
105
|
specification_version: 4
|
104
106
|
summary: Publish Mac software updates with the Sparkle framework and Amazon S3.
|
105
107
|
test_files:
|
106
108
|
- spec/lib/glitter_spec.rb
|
109
|
+
- spec/lib/server_spec.rb
|
107
110
|
- spec/spec_helper.rb
|