deb-s3 0.1.1 → 0.2.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.
- data/README.md +8 -6
- data/lib/deb/s3.rb +1 -1
- data/lib/deb/s3/cli.rb +8 -1
- data/lib/deb/s3/manifest.rb +6 -2
- data/lib/deb/s3/package.rb +1 -0
- metadata +2 -2
data/README.md
CHANGED
|
@@ -10,15 +10,17 @@ sync the files to S3.
|
|
|
10
10
|
|
|
11
11
|
The annoying thing about this process is it requires you to maintain a local
|
|
12
12
|
copy of the file tree for regenerating and syncing the next time. Personally,
|
|
13
|
-
my process is to use one-off virtual machines with
|
|
14
|
-
script out the build process, and then would
|
|
15
|
-
`.deb` from my Mac.
|
|
13
|
+
my process is to use one-off virtual machines with
|
|
14
|
+
[Vagrant](http://vagrantup.com), script out the build process, and then would
|
|
15
|
+
prefer to just upload the final `.deb` from my Mac.
|
|
16
16
|
|
|
17
17
|
With `deb-s3`, there is no need for this. `deb-s3` features:
|
|
18
18
|
|
|
19
19
|
* Downloads the existing package manifest and parses it.
|
|
20
|
-
* Updates it with the new package, replacing the existing entry if already
|
|
21
|
-
|
|
20
|
+
* Updates it with the new package, replacing the existing entry if already
|
|
21
|
+
there or adding a new one if not.
|
|
22
|
+
* Uploads the package itself, the Packages manifest, and the Packages.gz
|
|
23
|
+
manifest.
|
|
22
24
|
* Updates the Release file with the new hashes and file sizes.
|
|
23
25
|
|
|
24
26
|
## Getting Started
|
|
@@ -70,6 +72,7 @@ Options:
|
|
|
70
72
|
[--secret-key=SECRET_KEY] # The secret key for connecting to S3.
|
|
71
73
|
# Default: $AMAZON_SECRET_ACCESS_KEY
|
|
72
74
|
[--sign=SIGN] # Sign the Release file. Use --sign with your key ID to use a specific key.
|
|
75
|
+
-p, [--preserve-versions] # Whether to preserve other versions of a package in the repository when uploading one.
|
|
73
76
|
|
|
74
77
|
Uploads the given FILE to a S3 bucket as an APT repository.
|
|
75
78
|
```
|
|
@@ -79,4 +82,3 @@ Uploads the given FILE to a S3 bucket as an APT repository.
|
|
|
79
82
|
This is still experimental. These are several things to be done:
|
|
80
83
|
|
|
81
84
|
* Don't re-upload a package if it already exists and has the same hashes.
|
|
82
|
-
* Clean up the code some more.
|
data/lib/deb/s3.rb
CHANGED
data/lib/deb/s3/cli.rb
CHANGED
|
@@ -55,6 +55,13 @@ class Deb::S3::CLI < Thor
|
|
|
55
55
|
:desc => "Sign the Release file. Use --sign with your key ID to use " +
|
|
56
56
|
"a specific key."
|
|
57
57
|
|
|
58
|
+
option :preserve_versions,
|
|
59
|
+
:default => false,
|
|
60
|
+
:type => :boolean,
|
|
61
|
+
:aliases => "-p",
|
|
62
|
+
:desc => "Whether to preserve other versions of a package " +
|
|
63
|
+
"in the repository when uploading one."
|
|
64
|
+
|
|
58
65
|
desc "upload FILE",
|
|
59
66
|
"Uploads the given FILE to a S3 bucket as an APT repository."
|
|
60
67
|
def upload(file)
|
|
@@ -108,7 +115,7 @@ class Deb::S3::CLI < Thor
|
|
|
108
115
|
manifest = Deb::S3::Manifest.retrieve(options[:codename], options[:section], arch)
|
|
109
116
|
|
|
110
117
|
# add in the package
|
|
111
|
-
manifest.add(pkg)
|
|
118
|
+
manifest.add(pkg, options[:preserve_versions])
|
|
112
119
|
|
|
113
120
|
log("Uploading package and new manifests to S3")
|
|
114
121
|
manifest.write_to_s3 { |f| sublog("Transferring #{f}") }
|
data/lib/deb/s3/manifest.rb
CHANGED
|
@@ -45,8 +45,12 @@ class Deb::S3::Manifest
|
|
|
45
45
|
@packages
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
-
def add(pkg)
|
|
49
|
-
|
|
48
|
+
def add(pkg, preserve_versions)
|
|
49
|
+
if preserve_versions
|
|
50
|
+
@packages.delete_if { |p| p.name == pkg.name && p.version == pkg.version }
|
|
51
|
+
else
|
|
52
|
+
@packages.delete_if { |p| p.name == pkg.name }
|
|
53
|
+
end
|
|
50
54
|
@packages << pkg
|
|
51
55
|
pkg
|
|
52
56
|
end
|
data/lib/deb/s3/package.rb
CHANGED
|
@@ -239,6 +239,7 @@ class Deb::S3::Package
|
|
|
239
239
|
self.url = parse.call("Homepage")
|
|
240
240
|
self.vendor = parse.call("Vendor") || self.vendor
|
|
241
241
|
self.attributes[:deb_priority] = parse.call("Priority")
|
|
242
|
+
self.attributes[:deb_installed_size] = parse.call("Installed-Size")
|
|
242
243
|
|
|
243
244
|
# Packages manifest fields
|
|
244
245
|
self.url_filename = parse.call("Filename")
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: deb-s3
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-
|
|
12
|
+
date: 2013-05-31 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: thor
|