hoe-packaging 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc ADDED
@@ -0,0 +1,103 @@
1
+ = hoe-packaging
2
+
3
+ home :: http://saigkill.github.io
4
+ code :: http://gitlab.com/saigkill/hoe-packaging
5
+ docs :: https://gitlab.com/saigkill/hoe-packaging/wikis/home
6
+ apidoc :: http://www.rubydoc.info/gems/hoe-packaging
7
+ bugs :: https://gitlab.com/saigkill/hoe-packaging/issues
8
+ license :: {<img src="http://img.shields.io/:license-mit-blue.svg" />}[https://gitlab.com/saigkill/hoe-packaging/blob/master/LICENSE.rdoc]
9
+ last public version :: {<img src="https://badge.fury.io/rb/hoe-packaging.png" alt="Last Version" />}[http://rubygems.org/gems/hoe-packaging]
10
+ last rpm :: {<img src="https://img.shields.io/bintray/v/saigkill/rpm/hoe-packaging.svg" />}[https://bintray.com/saigkill/rpm/hoe-packaging]
11
+ last deb :: {<img src="https://img.shields.io/bintray/v/saigkill/deb/hoe-packaging.svg" />}[https://bintray.com/saigkill/deb/hoe-packaging]
12
+ downloads latest :: {<img src="https://img.shields.io/gem/dtv/hoe-packaging.svg" alt="Downloads latest version" />}[http://rubygems.org/gems/hoe-packaging]
13
+ downloads all :: {<img src="https://img.shields.io/gem/dt/hoe-packaging.svg" alt="Downloads all versions" />}[http://rubygems.org/gems/hoe-packaging]
14
+ continuous integration :: {<img src="https://scrutinizer-ci.com/gp/hoe-packaging/badges/build.png?b=master&s=4560c0b82c76d781188a5fa5cceaf85622afb274" />}[https://scrutinizer-ci.com/gp/hoe-packaging]
15
+ code quality :: {<img src="https://scrutinizer-ci.com/gp/hoe-packaging/badges/quality-score.png?b=master&s=e1381e9a2a22728c9933ec4558a61ed2b8bfacb7" />}[https://scrutinizer-ci.com/gp/hoe-packaging]
16
+ code quality :: {<img src="https://d3s6mut3hikguw.cloudfront.net/github/saigkill/hoe-packaging/badges/gpa.svg" alt="Code Quality" />}[https://codeclimate.com/github/saigkill/hoe-packaging]
17
+ code quality :: {<img src="https://api.codacy.com/project/badge/0c40f3ac6de747ffa794474fa7f2d840" />}[https://www.codacy.com/app/saigkill/hoe-packaging]
18
+ dependency check :: {<img src="https://gemnasium.com/000013fdff020ec3ee53268f59f7e202.svg" alt="Build Status" />}[https://gemnasium.com/000013fdff020ec3ee53268f59f7e202]
19
+ still maintained? :: {<img src="http://stillmaintained.com/saigkill/hoe-packaging.png" alt="Still maintained?" />}[http://stillmaintained.com/saigkill/hoe-packaging]
20
+ documentation quality :: {<img src="http://inch-ci.org/github/saigkill/hoe-packaging.svg?branch=master" alt="Documentation Quality" />}[http://inch-ci.org/github/saigkill/hoe-packaging]
21
+ donations :: {<img src="https://pledgie.com/campaigns/30335.png?skin_name=chrome" alt="Donations" />}[https://pledgie.com/campaigns/30335]
22
+ donations :: {<img src="http://img.shields.io/gratipay/saigkill.svg" alt="Donations" />}[https://gratipay.com/~saigkill/]
23
+ donations :: {<img src="http://tsv-neuss.de/cms/upload/News-Bilder/amazon1.png" alt="Donations" />}[http://www.amazon.de/registry/wishlist/D75HOEQ00BDD]
24
+
25
+
26
+ == DESCRIPTION:
27
+
28
+ hoe-packaging is a plugin for the hoe ruby projecthelper (https://github.com/seattlerb/hoe). It provides creation of rpm and deb packages,
29
+ also a deployment to bintray.
30
+
31
+ == FEATURES/PROBLEMS:
32
+
33
+ * creating of deb & rpm packages
34
+ * deploying to bintray.
35
+
36
+ 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.
37
+
38
+ For a detailed information please visit: https://gitlab.com/saigkill/hoe-packaging/wikis/home
39
+
40
+ If you like this little program so don't forget to give this GitLab repository a star :-)
41
+
42
+ == SYNOPSIS:
43
+
44
+ Use in your Rakefile:
45
+
46
+ Hoe.plugin :packaging
47
+
48
+ Hoe.spec 'yourproject' do
49
+ ...
50
+ end
51
+
52
+ Also add hoe-packaging to your requirements and recreate your Gemfile.
53
+
54
+ == REQUIREMENTS:
55
+
56
+ * setup
57
+ * fpm
58
+ * fpm-cookery
59
+
60
+ == INSTALL:
61
+
62
+ gem install hoe-packaging
63
+ cd /path/to/gem (In case of using RVM anything like ~/.rvm/gems/ruby-2.2.3/gems/hoe-packaging)
64
+ rake setup
65
+
66
+ == DEVELOPERS:
67
+
68
+ After checking out the source, run:
69
+
70
+ $ rake newb
71
+
72
+ This task will install any missing dependencies, run the tests/specs,
73
+ and generate the RDoc.
74
+
75
+ Merge Requests are welcome :-)
76
+
77
+ Read https://gitlab.com/saigkill/hoe-packaging/blob/master/CONTRIBUTING.md
78
+ Maintenance infos: https://gitlab.com/saigkill/hoe-packaging/blob/master/MAINTENANCE.md
79
+
80
+ == LICENSE:
81
+
82
+ (The MIT License)
83
+
84
+ Copyright (c) 2015 Sascha Manns <samannsml@directbox.com>
85
+
86
+ Permission is hereby granted, free of charge, to any person obtaining
87
+ a copy of this software and associated documentation files (the
88
+ 'Software'), to deal in the Software without restriction, including
89
+ without limitation the rights to use, copy, modify, merge, publish,
90
+ distribute, sublicense, and/or sell copies of the Software, and to
91
+ permit persons to whom the Software is furnished to do so, subject to
92
+ the following conditions:
93
+
94
+ The above copyright notice and this permission notice shall be
95
+ included in all copies or substantial portions of the Software.
96
+
97
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
98
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
99
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
100
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
101
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
102
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
103
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,101 @@
1
+ # -*- ruby -*-
2
+ # Release:
3
+ # * update *.wiki markdown documentation for GitLab
4
+ # * enable :git
5
+ # * rake run_before_release
6
+ # * disable :git
7
+ # * Checkin
8
+ # * rake release
9
+ # * rake run_after_release
10
+
11
+ require 'rubygems'
12
+ require 'hoe'
13
+
14
+ Hoe.plugin :bundler
15
+ # Hoe.plugin :deveiate
16
+ Hoe.plugin :doofus
17
+ Hoe.plugin :email
18
+ Hoe.plugin :gemspec
19
+ #Hoe.plugin :gem_prelude_sucks
20
+ Hoe.plugins.delete :git
21
+ #Hoe.plugin :git
22
+ Hoe.plugin :history
23
+ Hoe.plugin :highline
24
+ #Hoe.plugin :inline
25
+ Hoe.plugin :manns
26
+ Hoe.plugin :packaging
27
+ # Hoe.plugin :mercurial
28
+ # Hoe.plugin :perforce
29
+ # Hoe.plugin :racc
30
+ # Hoe.plugin :rcov
31
+ Hoe.plugin :reek
32
+ Hoe.plugin :rdoc
33
+ Hoe.plugin :rubocop
34
+ Hoe.plugin :rubygems
35
+ # Hoe.plugin :seattlerb
36
+ Hoe.plugin :travis
37
+ Hoe.plugin :version
38
+ Hoe.plugin :website
39
+ Hoe.plugin :yard
40
+
41
+ ###########################################DEVELOPING ZONE##############################################################
42
+ # rubocop:disable Metrics/LineLength
43
+ Hoe.spec 'hoe-packaging' do
44
+ developer('Sascha Manns', 'samannsml@directbox.com')
45
+ license 'MIT' # this should match the license in the README
46
+ require_ruby_version '>= 2.2.0'
47
+
48
+ email_to << 'ruby-talk@ruby-lang.org'
49
+
50
+ self.history_file = 'History.rdoc'
51
+ self.readme_file = 'README.rdoc'
52
+ self.extra_rdoc_files = FileList['*.rdoc'].to_a
53
+ self.post_install_message = '*** Run rake setup to finish the installation *** Please file bugreports and feature requests on: https://gitlab.com/saigkill/hoe-packaging/issues'
54
+
55
+ dependency 'bundler', '~> 1.10'
56
+ dependency 'setup', '~> 5.2'
57
+ dependency 'fpm', '~> 1.4'
58
+ dependency 'fpm-cookery', '~> 0.30.1'
59
+
60
+ extra_dev_deps << ['coveralls', '~> 0.8']
61
+ extra_dev_deps << ['gem-release', '~> 0.7']
62
+ extra_dev_deps << ['hoe-bundler', '~> 1.2']
63
+ extra_dev_deps << ['hoe-deveiate', '~> 0.7']
64
+ extra_dev_deps << ['hoe-doofus', '~> 1.0']
65
+ extra_dev_deps << ['hoe-gemspec', '~> 1.0']
66
+ extra_dev_deps << ['hoe-git', '~> 1.6']
67
+ extra_dev_deps << ['hoe-highline', '~> 0.2']
68
+ extra_dev_deps << ['hoe-manns', '~> 1.0']
69
+ extra_dev_deps << ['hoe-packaging', '~> 1.0']
70
+ extra_dev_deps << ['hoe-reek', '~> 1.0']
71
+ extra_dev_deps << ['hoe-rubocop', '~> 0.1']
72
+ extra_dev_deps << ['hoe-rubygems', '~> 1.0']
73
+ extra_dev_deps << ['hoe-seattlerb', '~> 1.3']
74
+ extra_dev_deps << ['hoe-travis', '~> 1.2']
75
+ extra_dev_deps << ['hoe-version', '~> 1.2']
76
+ extra_dev_deps << ['hoe-yard', '~> 0.1']
77
+ extra_dev_deps << ['indexer', '~> 0.3']
78
+ extra_dev_deps << ['minitest', '~> 5.8.1']
79
+ extra_dev_deps << ['rake', '~> 10.0']
80
+ extra_dev_deps << ['reek', '~> 3.3']
81
+ extra_dev_deps << ['rspec', '~> 3.3']
82
+ extra_dev_deps << ['rubocop', '~> 0.34']
83
+ extra_dev_deps << ['simplecov', '~> 0.10']
84
+ extra_dev_deps << ['test', '~> 1.0.0']
85
+ extra_dev_deps << ['test-unit', '~> 3.1.4']
86
+ extra_dev_deps << ['ZenTest', '~> 4.11']
87
+ extra_dev_deps << ['bundler-audit', '~> 0.4.0']
88
+ extra_dev_deps << ['manns_shared', '~> 1.0.0']
89
+ extra_dev_deps << ['bundler-audit', '~> 0.4.0']
90
+ end
91
+
92
+ ##################################################SETUP ZONE############################################################
93
+
94
+ require 'setup'
95
+ task :setup do
96
+ system('setup.rb uninstall --force')
97
+ system('setup.rb config --sysconfdir=$HOME/.hoe-packaging')
98
+ system('setup.rb install')
99
+ end
100
+
101
+ # vim: syntax=ruby
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
data/config.reek ADDED
@@ -0,0 +1,111 @@
1
+ ---
2
+ Attribute:
3
+ enabled: false
4
+ exclude: []
5
+ BooleanParameter:
6
+ enabled: true
7
+ exclude: []
8
+ ClassVariable:
9
+ enabled: true
10
+ exclude: []
11
+ ControlParameter:
12
+ enabled: true
13
+ exclude: []
14
+ DataClump:
15
+ enabled: true
16
+ exclude: []
17
+ max_copies: 2
18
+ min_clump_size: 2
19
+ DuplicateMethodCall:
20
+ enabled: true
21
+ exclude: []
22
+ max_calls: 3
23
+ allow_calls: []
24
+ FeatureEnvy:
25
+ enabled: true
26
+ exclude: []
27
+ IrresponsibleModule:
28
+ enabled: true
29
+ exclude: []
30
+ LongParameterList:
31
+ enabled: true
32
+ exclude: []
33
+ max_params: 3
34
+ overrides:
35
+ initialize:
36
+ max_params: 5
37
+ LongYieldList:
38
+ enabled: true
39
+ exclude: []
40
+ max_params: 3
41
+ ModuleInitialize:
42
+ enabled: true
43
+ exclude: []
44
+ NestedIterators:
45
+ enabled: true
46
+ exclude: []
47
+ max_allowed_nesting: 1
48
+ ignore_iterators: []
49
+ NilCheck:
50
+ enabled: true
51
+ exclude: []
52
+ PrimaDonnaMethod:
53
+ enabled: true
54
+ exclude: []
55
+ RepeatedConditional:
56
+ enabled: true
57
+ exclude: []
58
+ max_ifs: 2
59
+ TooManyInstanceVariables:
60
+ enabled: true
61
+ exclude: []
62
+ max_instance_variables: 9
63
+ TooManyMethods:
64
+ enabled: true
65
+ exclude: []
66
+ max_methods: 25
67
+ TooManyStatements:
68
+ enabled: true
69
+ exclude:
70
+ - initialize
71
+ max_statements: 15
72
+ UncommunicativeMethodName:
73
+ enabled: true
74
+ exclude: []
75
+ reject:
76
+ - !ruby/regexp /^[a-z]$/
77
+ - !ruby/regexp /[0-9]$/
78
+ - !ruby/regexp /[A-Z]/
79
+ accept: []
80
+ UncommunicativeModuleName:
81
+ enabled: true
82
+ exclude: []
83
+ reject:
84
+ - !ruby/regexp /^.$/
85
+ - !ruby/regexp /[0-9]$/
86
+ accept:
87
+ - Inline::C
88
+ UncommunicativeParameterName:
89
+ enabled: true
90
+ exclude: []
91
+ reject:
92
+ - !ruby/regexp /^.$/
93
+ - !ruby/regexp /[0-9]$/
94
+ - !ruby/regexp /[A-Z]/
95
+ - !ruby/regexp /^_/
96
+ accept: []
97
+ UncommunicativeVariableName:
98
+ enabled: true
99
+ exclude: []
100
+ reject:
101
+ - !ruby/regexp /^.$/
102
+ - !ruby/regexp /[0-9]$/
103
+ - !ruby/regexp /[A-Z]/
104
+ accept:
105
+ - _
106
+ UnusedParameters:
107
+ enabled: true
108
+ exclude: []
109
+ UtilityFunction:
110
+ enabled: true
111
+ exclude: []
@@ -0,0 +1,2 @@
1
+ bintray_user = "anyone"
2
+ bintray_api_key = "1234567890"
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env ruby
2
+ # @encoding: utf-8
3
+ # @author: Sascha Manns
4
+ # @abstract: hoe-packaging
5
+ #
6
+ # Copyright (c) 2015 Sascha Manns <samannsml@directbox.com>
7
+ # License: MIT
8
+
9
+ # Dependencies
10
+
11
+
12
+ # Main module for hoe-packaging
13
+ class Hoe; end
14
+
15
+ # main
16
+ module Hoe::Packaging
17
+ VERSION = '1.0.0'
18
+ attr_accessor :create_packages
19
+ attr_accessor :deploy_packages
20
+
21
+ # Initialize plugin
22
+ def initialize_packaging
23
+ require 'fileutils'
24
+ require 'parseconfig'
25
+ require 'rainbow/ext/string'
26
+ require 'fpm'
27
+ end
28
+
29
+ def define_packaging_tasks
30
+ # Rake Task for building packages
31
+ desc 'Creating deb and rpm files'
32
+ task :create_packages do
33
+ create_packages_method
34
+ end
35
+
36
+ # Rake task for deploying packages
37
+ desc 'Deploying packages to bintray'
38
+ task :deploy_packages do
39
+ deploy_bintray_method
40
+ end
41
+ end
42
+
43
+ # Method for creating deb and rpm packages
44
+ def create_packages_method
45
+ FileUtils.cd('recipes') do
46
+ puts 'Creating the deb package'.colour(:yellow)
47
+ system('fpm-cook -t deb')
48
+ puts 'deb creating done'.colour(:green)
49
+ puts 'Creating the rpm package'.colour(:yellow)
50
+ system('fpm-cook -t rpm')
51
+ puts 'rpm creating done'.colour(:green)
52
+ end
53
+ end
54
+
55
+ # Method for deploying to bintray
56
+ def deploy_bintray_method
57
+ project = get_projectname
58
+ config = ParseConfig.new(File.join("#{Dir.home}/.hoe-packaging/hoe-packaging.cfg"))
59
+ user = config['bintray_user'].to_s
60
+ apikey = config['bintray_api_key'].to_s
61
+ version = File.open(*Dir.glob('VERSION')) { |f| f.readline }
62
+ puts 'Deploying packages to bintray'.colour(:yellow)
63
+ puts project
64
+ FileUtils.cd('recipes/pkg') do
65
+ filerpm = Dir.glob('*.rpm')
66
+ filedeb = Dir.glob('*.deb')
67
+ rpm = filerpm.first.to_s
68
+ deb = filedeb.first.to_s
69
+ puts deb
70
+ puts rpm
71
+ system("curl -T #{rpm} -u#{user}:#{apikey} https://api.bintray.com/content/#{user}/rpm/#{project}/v#{version}/pool/main/r/;publish=1")
72
+ system("curl -T #{deb} -u#{user}:#{apikey} 'https://api.bintray.com/content/#{user}/deb/#{project}/v#{version}/pool/main/r/#{deb};deb_distribution=ubuntu;deb_component=main;deb_architecture=i386,amd64'")
73
+ end
74
+ puts 'Deploying succeeded'.colour(:green)
75
+ end
76
+
77
+ # Method for getting the project name
78
+ def get_projectname
79
+ pnameraw = File.open(*Dir.glob('README.*')) { |f| f.readline }
80
+ project = pnameraw.gsub(/[^0-9A-Za-z_-]/, '')
81
+ return project
82
+ end
83
+ end
data/post-commit ADDED
@@ -0,0 +1 @@
1
+ curl -X POST https://readthedocs.org/build/hoe-manns
data/recipes/recipe.rb ADDED
@@ -0,0 +1,6 @@
1
+ # Recipe class
2
+ class HoePackagingRubyGem < FPM::Cookery::RubyGemRecipe
3
+ name 'hoe-packaging'
4
+ version '1.1.0'
5
+ maintainer 'Sascha Manns <samannsml@directbox.com>'
6
+ end
@@ -0,0 +1,9 @@
1
+ require 'test/unit'
2
+ require 'hoe'
3
+ require 'hoe/packaging'
4
+
5
+ module TestHoe; end
6
+
7
+ class TestHoe::TestPackaging < Test::Unit::TestCase
8
+ end
9
+
data.tar.gz.sig ADDED
Binary file