hoe-packaging 1.2.5 → 1.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (8) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +106 -102
  3. data/CONTRIBUTING.md +21 -25
  4. data/LICENSE.md +635 -635
  5. data/MAINTENANCE.md +18 -18
  6. data/README.md +82 -78
  7. data/lib/hoe/packaging.rb +126 -126
  8. metadata +11 -13
@@ -1,19 +1,19 @@
1
- # MAINTENANCE POLICY:
2
-
3
- I'm following the Semantic Versioning for its releases: (Major).(Minor).(Patch).
4
-
5
- * Major version: Whenever there is something significant or any backwards
6
- incompatible changes.
7
- * Minor version: When new, backwards compatible functionality is introduced a
8
- minor feature is introduced, or when a set of smaller features is rolled out.
9
- * Patch number: When backwards compatible bug fixes are introduced that fix
10
- incorrect behavior.
11
- * The current stable release will receive security patches and bug fixes
12
- (eg. 5.0 -> 5.0.1).
13
- * Feature releases will mark the next supported stable release where the minor
14
- version is increased numerically by increments of one (eg. 5.0 -> 5.1).
15
-
16
- I encourage everyone to run the latest stable release to ensure that you can
17
- easily upgrade to the most secure and feature rich experience. In order to
18
- make sure you can easily run the most recent stable release, we are working
1
+ # MAINTENANCE POLICY:
2
+
3
+ I'm following the Semantic Versioning for its releases: (Major).(Minor).(Patch).
4
+
5
+ * Major version: Whenever there is something significant or any backwards
6
+ incompatible changes.
7
+ * Minor version: When new, backwards compatible functionality is introduced a
8
+ minor feature is introduced, or when a set of smaller features is rolled out.
9
+ * Patch number: When backwards compatible bug fixes are introduced that fix
10
+ incorrect behavior.
11
+ * The current stable release will receive security patches and bug fixes
12
+ (eg. 5.0 -> 5.0.1).
13
+ * Feature releases will mark the next supported stable release where the minor
14
+ version is increased numerically by increments of one (eg. 5.0 -> 5.1).
15
+
16
+ I encourage everyone to run the latest stable release to ensure that you can
17
+ easily upgrade to the most secure and feature rich experience. In order to
18
+ make sure you can easily run the most recent stable release, we are working
19
19
  hard to keep the update process simple and reliable.
data/README.md CHANGED
@@ -1,79 +1,83 @@
1
- # hoe-packaging
2
-
3
- |What | Where |
4
- |-----|--------|
5
- | code | https://github.com/saigkill/hoe-packaging |
6
- | docs | https://github.com/saigkill/hoe-packaging/wiki |
7
- | apidoc | http://www.rubydoc.info/gems/hoe-packaging |
8
- | bugs & feature requests | https://github.com/saigkill/hoe-packaging/issues |
9
- | openhub statistics | https://www.openhub.net/p/hoe-packaging |
10
- | mailing list | https://groups.google.com/forum/#!forum/saigkills-hoe-plugins |
11
- | authors blog | https://saschamanns.de |
12
- | min. rubyver | 2.3.0 |
13
-
14
- | What | Status |
15
- |-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
16
- |last public version | [![Last Version](https://badge.fury.io/rb/hoe-packaging.png)](http://rubygems.org/gems/hoe-packaging) |
17
- |downloads latest | [![Downloads latest](https://img.shields.io/gem/dtv/hoe-packaging.svg)](http://rubygems.org/gems/hoe-packaging) |
18
- |downloads all | [![Downloads all](https://img.shields.io/gem/dt/hoe-packaging.svg)](http://rubygems.org/gems/hoe-packaging) |
19
- |code quality | [![Maintainability](https://api.codeclimate.com/v1/badges/5491c830409827e04868/maintainability)](https://codeclimate.com/github/saigkill/hoe-packaging/maintainability) |
20
- |dependencies|[![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=saigkill/hoe-packaging)](https://dependabot.com) |
21
- |security | [![Security](https://hakiri.io/github/saigkill/hoe-packaging/master.svg)](https://hakiri.io/github/saigkill/hoe-packaging/master/shield) |
22
- |vulnerabilities|[![Known Vulnerabilities](https://snyk.io/test/github/saigkill/hoe-packaging/badge.svg?targetFile=Gemfile.lock)](https://snyk.io/test/github/saigkill/hoe-packaging?targetFile=Gemfile.lock) |
23
- |documentation quality | [![Documentation Quality](https://inch-ci.org/github/saigkill/hoe-packaging.svg?branch=master)](https://inch-ci.org/github/saigkill/hoe-packaging) |
24
-
25
- ## DESCRIPTION:
26
-
27
- hoe-packaging is a plugin for the hoe ruby projecthelper (https://github.com/seattlerb/hoe). It provides creation of rpm and deb packages,
28
- also a deployment to bintray.
29
-
30
- The CHANGELOG.md contains a detailed description on what has changed.
31
-
32
- hoe-packaging is released under the GPL3 License, see the file 'LICENSE.md' for more information.
33
-
34
- The official web site is:
35
-
36
- https://github.com/saigkill/hoe-packaging
37
-
38
- ## FEATURES:
39
-
40
- * creating of deb & rpm packages
41
- * deploying to bintray.
42
-
43
- This Gem was programmed and tested for Linux systems. If anyone would like to make the methods also fit for other OS, i'm happy about Pull requests.
44
-
45
- See the {Tracker}[https://github.com/saigkill/hoe-packaging/issues] for checking known issues.
46
-
47
- ## SYNOPSIS:
48
-
49
- Use in your Rakefile:
50
-
51
- Hoe.plugin :packaging
52
-
53
- Hoe.spec 'yourproject' do
54
- ...
55
- end
56
-
57
- Also add hoe-packaging to your requirements and recreate your Gemfile.
58
-
59
- Read the documentation at: https://github.com/saigkill/hoe-packaging/wiki
60
-
61
- ## REQUIREMENTS:
62
-
63
- * fpm
64
- * fpm-cookery
65
-
66
- ## INSTALL:
67
-
68
- The installation is very easy.
69
-
70
- gem install hoe-packaging
71
-
72
- ## DEVELOPERS:
73
-
74
- After checking out the source, run:
75
-
76
- $ rake newb
77
-
78
- This task will install any missing dependencies, run the tests/specs,
1
+ # hoe-packaging
2
+
3
+ |What | Where |
4
+ |-----|--------|
5
+ | code | https://github.com/saigkill/hoe-packaging |
6
+ | docs | https://github.com/saigkill/hoe-packaging/wiki |
7
+ | apidoc | http://www.rubydoc.info/gems/hoe-packaging |
8
+ | bugs & feature requests | https://github.com/saigkill/hoe-packaging/issues |
9
+ | openhub statistics | https://www.openhub.net/p/hoe-packaging |
10
+ | authors blog | https://saschamanns.de |
11
+ | min. rubyver | 2.3.0 |
12
+
13
+ | What | Status |
14
+ |-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
15
+ |last public version | [![Last Version](https://badge.fury.io/rb/hoe-packaging.png)](http://rubygems.org/gems/hoe-packaging) |
16
+ |downloads latest | [![Downloads latest](https://img.shields.io/gem/dtv/hoe-packaging.svg)](http://rubygems.org/gems/hoe-packaging) |
17
+ |downloads all | [![Downloads all](https://img.shields.io/gem/dt/hoe-packaging.svg)](http://rubygems.org/gems/hoe-packaging) |
18
+ |code quality | [![Maintainability](https://api.codeclimate.com/v1/badges/5491c830409827e04868/maintainability)](https://codeclimate.com/github/saigkill/hoe-packaging/maintainability) |
19
+ |continuous integration | ![CI](https://github.com/saigkill/hoe-packaging/workflows/CI/badge.svg?branch=master&event=push) |
20
+ |dependencies|[![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=saigkill/hoe-packaging)](https://dependabot.com) |
21
+ |security | [![Security](https://hakiri.io/github/saigkill/hoe-packaging/master.svg)](https://hakiri.io/github/saigkill/hoe-packaging/master/shield) |
22
+ |vulnerabilities|[![Known Vulnerabilities](https://snyk.io/test/github/saigkill/hoe-packaging/badge.svg?targetFile=Gemfile.lock)](https://snyk.io/test/github/saigkill/hoe-packaging?targetFile=Gemfile.lock) |
23
+ |documentation quality | [![Documentation Quality](https://inch-ci.org/github/saigkill/hoe-packaging.svg?branch=master)](https://inch-ci.org/github/saigkill/hoe-packaging) |
24
+
25
+ ## SCREENSHOT
26
+
27
+ [![Screenshot](https://saschamanns.de/img/screenshots/hoe-manns-screenshots.png)](https://github.com/saigkill/hoe-manns)
28
+
29
+ ## DESCRIPTION:
30
+
31
+ hoe-packaging is a plugin for the hoe ruby projecthelper (https://github.com/seattlerb/hoe). It provides creation of rpm and deb packages,
32
+ also a deployment to bintray.
33
+
34
+ The CHANGELOG.md contains a detailed description on what has changed.
35
+
36
+ hoe-packaging is released under the GPL3 License, see the file 'LICENSE.md' for more information.
37
+
38
+ The official web site is:
39
+
40
+ https://github.com/saigkill/hoe-packaging
41
+
42
+ ## FEATURES:
43
+
44
+ * creating of deb & rpm packages
45
+ * deploying to bintray.
46
+
47
+ This Gem was programmed and tested for Linux systems. If anyone would like to make the methods also fit for other OS, i'm happy about Pull requests.
48
+
49
+ See the {Tracker}[https://github.com/saigkill/hoe-packaging/issues] for checking known issues.
50
+
51
+ ## SYNOPSIS:
52
+
53
+ Use in your Rakefile:
54
+
55
+ Hoe.plugin :packaging
56
+
57
+ Hoe.spec 'yourproject' do
58
+ ...
59
+ end
60
+
61
+ Also add hoe-packaging to your requirements and recreate your Gemfile.
62
+
63
+ Read the documentation at: https://github.com/saigkill/hoe-packaging/wiki
64
+
65
+ ## REQUIREMENTS:
66
+
67
+ * fpm
68
+ * fpm-cookery
69
+
70
+ ## INSTALL:
71
+
72
+ The installation is very easy.
73
+
74
+ gem install hoe-packaging
75
+
76
+ ## DEVELOPERS:
77
+
78
+ After checking out the source, run:
79
+
80
+ $ rake newb
81
+
82
+ This task will install any missing dependencies, run the tests/specs,
79
83
  and generate the RDoc.
@@ -1,126 +1,126 @@
1
- # Copyright (C) 2013-2019 Sascha Manns <Sascha.Manns@outlook.de>
2
- #
3
- # This program is free software: you can redistribute it and/or modify
4
- # it under the terms of the GNU General Public License as published by
5
- # the Free Software Foundation, either version 3 of the License, or
6
- # (at your option) any later version.
7
- #
8
- # This program is distributed in the hope that it will be useful,
9
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- # GNU General Public License for more details.
12
- #
13
- # You should have received a copy of the GNU General Public License
14
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
-
16
- # Dependencies
17
-
18
- require 'hoe'
19
-
20
- # Main module for hoe-packaging
21
- # TODO: Try to fix this in future
22
- # rubocop:disable Style/ClassAndModuleChildren
23
- module Hoe::Packaging
24
- # Versionizing
25
- VERSION = '1.2.5'.freeze
26
- attr_accessor :create_packages
27
- attr_accessor :deploy_packages
28
-
29
- # Initialize plugin
30
- def initialize_packaging
31
- require 'fileutils'
32
- require 'parseconfig'
33
- require 'rainbow/ext/string'
34
- require 'fpm'
35
- require 'yaml'
36
- end
37
-
38
- def define_packaging_tasks
39
- # Rake Task for building packages
40
- desc 'Creating deb and rpm files'
41
- task :create_packages do
42
- create_packages_method
43
- end
44
-
45
- # Rake task for deploying packages
46
- desc 'Deploying packages to bintray'
47
- task :deploy_packages do
48
- deploy_bintray_method
49
- end
50
- end
51
-
52
- # Method for creating deb and rpm packages
53
- # @return [String] true or false
54
- def create_packages_method
55
- FileUtils.cd('recipes') do
56
- puts 'Creating the deb package'.color(:yellow)
57
- system('fpm-cook -t deb')
58
- puts 'deb creating done'.color(:green)
59
- puts 'Creating the rpm package'.color(:yellow)
60
- system('fpm-cook -t rpm')
61
- puts 'rpm creating done'.color(:green)
62
- end
63
- end
64
-
65
- # Method for deploying to bintray
66
- # TODO: Try to pacify rubocop and reek in future
67
- # rubocop:disable Metrics/AbcSize
68
- # rubocop:disable Metrics/LineLength
69
- # rubocop:disable Metrics/MethodLength
70
- # This method smells of :reek:TooManyStatements
71
- # @return [String] true or false
72
- def deploy_bintray_method
73
- project = projectname
74
- user, apikey = bintray_config
75
- version = version
76
- path = 'pool/main/r'
77
- debadd = ';deb_distribution=ubuntu;deb_component=main;deb_architecture=i386,amd64'
78
- publish = ';publish=1'
79
- puts 'Deploying packages to bintray'.color(:yellow)
80
-
81
- FileUtils.cd('recipes/pkg') do
82
- filerpm = Dir.glob('*.rpm')
83
- filedeb = Dir.glob('*.deb')
84
- rpm = filerpm.first.to_s
85
- deb = filedeb.first.to_s
86
-
87
- rpmup = system("curl -T #{rpm} -u#{user}:#{apikey} https://api.bintray.com/content/#{user}/rpm/#{project}/v#{version}/#{path}/#{publish}")
88
- begin
89
- rpmup['message'] == 'success'
90
- rescue NoMethodError
91
- false
92
- end
93
- debup = system("curl -T #{deb} -u#{user}:#{apikey} 'https://api.bintray.com/content/#{user}/deb/#{project}/v#{version}/#{path}/#{deb}#{debadd}#{publish}'")
94
- begin
95
- debup['message'] == 'success'
96
- rescue NoMethodError
97
- false
98
- end
99
- end
100
- puts 'Deploying succeeded'.color(:green)
101
- end
102
-
103
- # Method for getting the project name
104
- # @return [String] project Returns project name
105
- def projectname
106
- pnameraw = File.open(*Dir.glob('README.*'), &:readline)
107
- project = pnameraw.gsub(/[^0-9A-Za-z_-]/, '')
108
- return project
109
- end
110
-
111
- # Method for getting the bintray config
112
- # @return [Array] user apikey
113
- def bintray_config
114
- config = YAML.safe_load(File.read("#{Dir.home}/.hoerc"))
115
- user = config['deploy']['username'].to_s
116
- apikey = config['deploy']['apikey'].to_s
117
- [user, apikey]
118
- end
119
-
120
- # Method for getting version
121
- # @return [String] version
122
- def version
123
- version = File.open(*Dir.glob('VERSION'), &:readline)
124
- version.chomp.to_s
125
- end
126
- end
1
+ # Copyright (C) 2013-2020 Sascha Manns <Sascha.Manns@outlook.de>
2
+ #
3
+ # This program is free software: you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation, either version 3 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
15
+
16
+ # Dependencies
17
+
18
+ require 'hoe'
19
+
20
+ # Main module for hoe-packaging
21
+ # TODO: Try to fix this in future
22
+ # rubocop:disable Style/ClassAndModuleChildren
23
+ module Hoe::Packaging
24
+ # Versionizing
25
+ VERSION = '1.2.6'.freeze
26
+ attr_accessor :create_packages
27
+ attr_accessor :deploy_packages
28
+
29
+ # Initialize plugin
30
+ def initialize_packaging
31
+ require 'fileutils'
32
+ require 'parseconfig'
33
+ require 'rainbow/ext/string'
34
+ require 'fpm'
35
+ require 'yaml'
36
+ end
37
+
38
+ def define_packaging_tasks
39
+ # Rake Task for building packages
40
+ desc 'Creating deb and rpm files'
41
+ task :create_packages do
42
+ create_packages_method
43
+ end
44
+
45
+ # Rake task for deploying packages
46
+ desc 'Deploying packages to bintray'
47
+ task :deploy_packages do
48
+ deploy_bintray_method
49
+ end
50
+ end
51
+
52
+ # Method for creating deb and rpm packages
53
+ # @return [String] true or false
54
+ def create_packages_method
55
+ FileUtils.cd('recipes') do
56
+ puts 'Creating the deb package'.color(:yellow)
57
+ system('fpm-cook -t deb')
58
+ puts 'deb creating done'.color(:green)
59
+ puts 'Creating the rpm package'.color(:yellow)
60
+ system('fpm-cook -t rpm')
61
+ puts 'rpm creating done'.color(:green)
62
+ end
63
+ end
64
+
65
+ # Method for deploying to bintray
66
+ # TODO: Try to pacify rubocop and reek in future
67
+ # rubocop:disable Metrics/AbcSize
68
+ # rubocop:disable Metrics/LineLength
69
+ # rubocop:disable Metrics/MethodLength
70
+ # This method smells of :reek:TooManyStatements
71
+ # @return [String] true or false
72
+ def deploy_bintray_method
73
+ project = projectname
74
+ user, apikey = bintray_config
75
+ version = version
76
+ path = 'pool/main/r'
77
+ debadd = ';deb_distribution=ubuntu;deb_component=main;deb_architecture=i386,amd64'
78
+ publish = ';publish=1'
79
+ puts 'Deploying packages to bintray'.color(:yellow)
80
+
81
+ FileUtils.cd('recipes/pkg') do
82
+ filerpm = Dir.glob('*.rpm')
83
+ filedeb = Dir.glob('*.deb')
84
+ rpm = filerpm.first.to_s
85
+ deb = filedeb.first.to_s
86
+
87
+ rpmup = system("curl -T #{rpm} -u#{user}:#{apikey} https://api.bintray.com/content/#{user}/rpm/#{project}/v#{version}/#{path}/#{publish}")
88
+ begin
89
+ rpmup['message'] == 'success'
90
+ rescue NoMethodError
91
+ false
92
+ end
93
+ debup = system("curl -T #{deb} -u#{user}:#{apikey} 'https://api.bintray.com/content/#{user}/deb/#{project}/v#{version}/#{path}/#{deb}#{debadd}#{publish}'")
94
+ begin
95
+ debup['message'] == 'success'
96
+ rescue NoMethodError
97
+ false
98
+ end
99
+ end
100
+ puts 'Deploying succeeded'.color(:green)
101
+ end
102
+
103
+ # Method for getting the project name
104
+ # @return [String] project Returns project name
105
+ def projectname
106
+ pnameraw = File.open(*Dir.glob('README.*'), &:readline)
107
+ project = pnameraw.gsub(/[^0-9A-Za-z_-]/, '')
108
+ return project
109
+ end
110
+
111
+ # Method for getting the bintray config
112
+ # @return [Array] user apikey
113
+ def bintray_config
114
+ config = YAML.safe_load(File.read("#{Dir.home}/.hoerc"))
115
+ user = config['deploy']['username'].to_s
116
+ apikey = config['deploy']['apikey'].to_s
117
+ [user, apikey]
118
+ end
119
+
120
+ # Method for getting version
121
+ # @return [String] version
122
+ def version
123
+ version = File.open(*Dir.glob('VERSION'), &:readline)
124
+ version.chomp.to_s
125
+ end
126
+ end