zotplus-rakehelper 0.0.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 +7 -0
- data/.gitignore +3 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +29 -0
- data/LICENSE.txt +22 -0
- data/README.md +2 -0
- data/Rakefile +22 -0
- data/lib/zotplus-rakehelper.rb +129 -0
- data/lib/zotplus-rakehelper/version.rb +5 -0
- data/zotplus-rakehelper.gemspec +28 -0
- metadata +123 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: afedba60677aa9c0777691bd1d58fcb06da1f305
|
4
|
+
data.tar.gz: 21e023534a1346fed8f4ff27e1f9af577da0a1eb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 86b1effde510a9b4ae536ca828fbe8ac8deaed58ddaf01e8e5da8a61c09af6c2056328b8f951e5587b7cd9c71538f7d807708809f0868a48d786bbdfaec6f7dd
|
7
|
+
data.tar.gz: 6cb8a2355c38c85e7cfc89601777f1a86b5545519d1df228fb4fdb5c2af127e4af9dfad4c79a2c4eb85c960f5d6b9a11bc6c51d7b5070ccfcd068310bd01ed66
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
zotplus-rakehelper (0.0.2)
|
5
|
+
nokogiri
|
6
|
+
rake
|
7
|
+
rubyzip (>= 1.0.0)
|
8
|
+
typhoeus
|
9
|
+
|
10
|
+
GEM
|
11
|
+
remote: https://rubygems.org/
|
12
|
+
specs:
|
13
|
+
ethon (0.7.1)
|
14
|
+
ffi (>= 1.3.0)
|
15
|
+
ffi (1.9.3)
|
16
|
+
mini_portile (0.6.0)
|
17
|
+
nokogiri (1.6.3.1)
|
18
|
+
mini_portile (= 0.6.0)
|
19
|
+
rake (10.3.2)
|
20
|
+
rubyzip (1.1.6)
|
21
|
+
typhoeus (0.6.9)
|
22
|
+
ethon (>= 0.7.1)
|
23
|
+
|
24
|
+
PLATFORMS
|
25
|
+
ruby
|
26
|
+
|
27
|
+
DEPENDENCIES
|
28
|
+
bundler (~> 1.3)
|
29
|
+
zotplus-rakehelper!
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 friflaj
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'yaml'
|
4
|
+
require 'pp'
|
5
|
+
|
6
|
+
task :default => :build
|
7
|
+
|
8
|
+
task :bump do
|
9
|
+
version = ZotPlus::RakeHelper::VERSION.split('.').collect{|v| Integer(v)}
|
10
|
+
version[2] += 1
|
11
|
+
version = version.collect{|v| v.to_s}.join('.')
|
12
|
+
File.open('lib/zotplus-rakehelper/version.rb', 'w'){|f| f.write("module ZotPlus\n class RakeHelper\n VERSION = #{version.inspect}\n end\nend\n") }
|
13
|
+
puts `git add lib/zotplus-rakehelper/version.rb Gemfile.lock`
|
14
|
+
end
|
15
|
+
|
16
|
+
task :publish do
|
17
|
+
sh "git tag #{ZotPlus::RakeHelper::VERSION}"
|
18
|
+
Dir['pkg/*.gem'].each{|f| File.unlink(f)}
|
19
|
+
Rake::Task["build"].invoke
|
20
|
+
sh "gem push #{Dir['pkg/*.gem'].join(' ')}"
|
21
|
+
sh "git push"
|
22
|
+
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
require 'typhoeus'
|
2
|
+
require 'nokogiri'
|
3
|
+
require 'zip'
|
4
|
+
|
5
|
+
module ZotPlus
|
6
|
+
class RakeHelper
|
7
|
+
@id = Nokogiri::XML(File.open('install.rdf')).at('//em:id').inner_text
|
8
|
+
@extension = @id.gsub(/@.*/, '')
|
9
|
+
@release = Nokogiri::XML(File.open('install.rdf')).at('//em:version').inner_text
|
10
|
+
@update_rdf = "www/#{@extension}/update.rdf"
|
11
|
+
|
12
|
+
attr_reader :id, :extension, :release, :update_rdf, :sources
|
13
|
+
|
14
|
+
def initialize(extrasources=[])
|
15
|
+
@sources = %w{chrome test/import test/export resource defaults chrome.manifest install.rdf bootstrap.js}
|
16
|
+
.collect{|f| File.directory?(f) ? Dir["#{f}/**/*"] : f}.flatten
|
17
|
+
.select{|f| File.file?(f)}
|
18
|
+
.collect{|f| f.sub(/\.pegjs$/, '.js')}
|
19
|
+
.reject{|f| f =~ /[~]$/ || f =~ /\.swp$/} + extrasources
|
20
|
+
end
|
21
|
+
|
22
|
+
def xpi
|
23
|
+
"www/#{@extension}/zotero-#{@extension}-#{@release}#{@branch == 'master' ? '' : '-' + @branch}.xpi"
|
24
|
+
end
|
25
|
+
|
26
|
+
def geturl(url)
|
27
|
+
response = Typhoeus.get(url, {followlocation: true})
|
28
|
+
raise "Request failed" unless response.success?
|
29
|
+
return response.body
|
30
|
+
end
|
31
|
+
|
32
|
+
def download(url, file)
|
33
|
+
puts "Downloading #{url} to #{file}"
|
34
|
+
target = File.open(file, 'wb')
|
35
|
+
request = Typhoeus::Request.new(url, {followlocation: true})
|
36
|
+
request.on_headers do |response|
|
37
|
+
raise "Request failed: #{response.code.to_s}" unless response.code == 200 # response.success?
|
38
|
+
end
|
39
|
+
request.on_body do |chunk|
|
40
|
+
target.write(chunk)
|
41
|
+
end
|
42
|
+
request.on_complete do |response|
|
43
|
+
target.close
|
44
|
+
throw "download failed" unless response.success?
|
45
|
+
end
|
46
|
+
request.run
|
47
|
+
end
|
48
|
+
|
49
|
+
def make_readme
|
50
|
+
puts "Updating README.md"
|
51
|
+
|
52
|
+
md = open("www/#{@extension}/index.md").read
|
53
|
+
md.sub!(/^---(.|\n)+---\n/, '')
|
54
|
+
md.gsub!(/{% include ([^\s]+) %}/){ open("www/_includes/#{$1}").read }
|
55
|
+
md.gsub!(/\[([^!\]]+)\]\(([^\)]+)\)/) {
|
56
|
+
title = $1
|
57
|
+
url = $2
|
58
|
+
url = "/#{@extension}/#{url}" unless url =~ /^https?:/ || url =~ /^\//
|
59
|
+
url = "https://zotplus.github.io#{url}" unless url =~ /^https?:/
|
60
|
+
"[#{title}](#{url})"
|
61
|
+
}
|
62
|
+
open('README.md', 'w'){|f| f.write(md) }
|
63
|
+
end
|
64
|
+
|
65
|
+
def make_update_rdf
|
66
|
+
update_rdf = Nokogiri::XML(File.open(@update_rdf))
|
67
|
+
update_rdf.at('//em:version').content = @release
|
68
|
+
update_rdf.at('//RDF:Description')['about'] = "urn:mozilla:extension:#{@id}"
|
69
|
+
update_rdf.xpath('//em:updateLink').each{|link| link.content = "https://zotplus.github.io/#{@extension}/zotero-#{@extension}/#{@branch}/#{xpi}" }
|
70
|
+
update_rdf.xpath('//em:updateInfoURL').each{|link| link.content = "https://zotplus.github.io/#{@extension}" }
|
71
|
+
File.open(@update_rdf,'wb') {|f| update_rdf.write_xml_to f}
|
72
|
+
FileUtils.cp(@update_rdf, File.basename(@update_rdf))
|
73
|
+
end
|
74
|
+
|
75
|
+
def get_debugbridge
|
76
|
+
update = Nokogiri::XML(geturl('http://zotplus.github.io/debugbridge/update.rdf')).at('//em:updateLink').inner_text
|
77
|
+
debug_bridge = Dir['tmp/zotero-debug-bridge-*.xpi']
|
78
|
+
debug_bridge.each{|f| File.unlink(f)} if debug_bridge.size != 1 || update.sub(/.*\//, '') != File.basename(debug_bridge[0])
|
79
|
+
download(update, "tmp/#{update.sub(/.*\//, '')}") unless File.file?("tmp/#{update.sub(/.*\//, '')}")
|
80
|
+
end
|
81
|
+
|
82
|
+
def build(filelist)
|
83
|
+
Zip::File.open(t.name, 'w') do |zipfile|
|
84
|
+
filelist.each{|file|
|
85
|
+
if file.is_a?(Hash)
|
86
|
+
file.each_pair{|name, contents|
|
87
|
+
zipfile.get_output_stream(name){|f|
|
88
|
+
f.write(contents)
|
89
|
+
}
|
90
|
+
}
|
91
|
+
else
|
92
|
+
zipfile.add(file, file)
|
93
|
+
end
|
94
|
+
}
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def bump(what=:patch)
|
99
|
+
release = @release.split('.').collect{|n| Integer(n)}
|
100
|
+
release = case what
|
101
|
+
when :major then [release[0] + 1, 0, 0]
|
102
|
+
when :minor then [release[0], release[1] + 1, 0]
|
103
|
+
when :patch then [release[0], release[1], release[2] + 1]
|
104
|
+
else raise "Unexpected release increase #{what.inspect}"
|
105
|
+
end
|
106
|
+
release = release.collect{|n| n.to_s}.join('.')
|
107
|
+
|
108
|
+
open("www/_includes/#{@extension}-version.html", 'w'){|f| f.write(release) }
|
109
|
+
|
110
|
+
|
111
|
+
install_rdf = Nokogiri::XML(File.open('install.rdf'))
|
112
|
+
install_rdf.at('//em:version').content = release
|
113
|
+
install_rdf.at('//em:updateURL').content = "https://zotplus.github.io/#{@extension}/update.rdf"
|
114
|
+
File.open('install.rdf','wb') {|f| install_rdf.write_xml_to f}
|
115
|
+
puts `git add install.rdf`
|
116
|
+
system "/bin/sh -lc rake"
|
117
|
+
system "/bin/sh -lc rake README.md update.rdf"
|
118
|
+
puts "Release set to #{release}. Please publish."
|
119
|
+
end
|
120
|
+
|
121
|
+
def publish
|
122
|
+
system "git add #{xpi} *.rdf"
|
123
|
+
system "git commit -am #{@release}"
|
124
|
+
system "git tag #{@release}"
|
125
|
+
system "git push"
|
126
|
+
system "cd www; rake publish"
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'zotplus-rakehelper/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "zotplus-rakehelper"
|
8
|
+
spec.version = ZotPlus::RakeHelper::VERSION
|
9
|
+
spec.authors = ["Emiliano Heyns"]
|
10
|
+
spec.email = ["Emiliano.Heyns@iris-advies.com"]
|
11
|
+
spec.description = %q{ZotPlus rake helper}
|
12
|
+
spec.summary = %q{ZotPlus rake helper methods}
|
13
|
+
spec.homepage = "http://zotplus.github.io"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
spec.required_ruby_version = '>= 1.9'
|
21
|
+
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
23
|
+
|
24
|
+
spec.add_runtime_dependency 'rake', '>= 0', '>= 0'
|
25
|
+
spec.add_runtime_dependency 'typhoeus'
|
26
|
+
spec.add_runtime_dependency 'nokogiri'
|
27
|
+
spec.add_runtime_dependency 'rubyzip', '>= 1.0.0' # will load new rubyzip version
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: zotplus-rakehelper
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Emiliano Heyns
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-08-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: typhoeus
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: nokogiri
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubyzip
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.0.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.0.0
|
83
|
+
description: ZotPlus rake helper
|
84
|
+
email:
|
85
|
+
- Emiliano.Heyns@iris-advies.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- ".gitignore"
|
91
|
+
- Gemfile
|
92
|
+
- Gemfile.lock
|
93
|
+
- LICENSE.txt
|
94
|
+
- README.md
|
95
|
+
- Rakefile
|
96
|
+
- lib/zotplus-rakehelper.rb
|
97
|
+
- lib/zotplus-rakehelper/version.rb
|
98
|
+
- zotplus-rakehelper.gemspec
|
99
|
+
homepage: http://zotplus.github.io
|
100
|
+
licenses:
|
101
|
+
- MIT
|
102
|
+
metadata: {}
|
103
|
+
post_install_message:
|
104
|
+
rdoc_options: []
|
105
|
+
require_paths:
|
106
|
+
- lib
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '1.9'
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
requirements: []
|
118
|
+
rubyforge_project:
|
119
|
+
rubygems_version: 2.2.2
|
120
|
+
signing_key:
|
121
|
+
specification_version: 4
|
122
|
+
summary: ZotPlus rake helper methods
|
123
|
+
test_files: []
|