thepackager 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NGZmNTdmMDJhZmEyMzJiYTU1ZjExOTg3MjQ3MjQ4YmJlZmRjNDAzOA==
5
+ data.tar.gz: !binary |-
6
+ ODAwZjVjNTg2MDExOGQwOTI2NDQ3MTRjNTg3YWU5Mjg2ZDg0MWYzYw==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZDdjNWIxMmU1ZTUzZDczNTI2Yzk2MzVlMTFlMzllMGNjZDMyYTZlYzQ0ODNh
10
+ OWE3YzZjYTJjYjc1N2M5NGRlODRkNWNiN2NiNGY3M2QyNWM0ZTM4NzdkZGJm
11
+ YWM4MWQ3MGY2MDcyMjA2MDljM2Y5OTFmYzE0NDhmYzRjNDRiY2M=
12
+ data.tar.gz: !binary |-
13
+ ZjBmMzZjNTA5OGUxOGJiZTAyOTU4N2Q3NjM1Y2RiMDEyNGJmMDE1NDZkYjU4
14
+ ZDY1OTgzMWJjZjExOGY3ZTE3OTA3MDQ4YjMwYTJiZjcwYzAyMzFkNThjM2Yw
15
+ ZDJmZmYyOWE1MzJkNmExMTI2NWNjYzlmOTY5OThhYTZmOWFmNmI=
@@ -0,0 +1,3 @@
1
+ /Packagefile
2
+ /.vagrant
3
+ /thepackager*.gem
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ rvm: 2.2.1
3
+ deploy:
4
+ provider: rubygems
5
+ api_key:
6
+ secure: YfYvM1b2Fswr4/b09QtZZOdQXQ6Bnnw2NWqiXEhBcZyn6jq7bbRvbyKT8i4sjFs5MvbuIVm1T+bYvgs5SPfo0MwNdNjt5cxMlLmOuW9MBX9eZcVXqGomgi48CX+BEEUq7F+7naooHdDigGxdxEXAOlGmSoh3w+dSB8w4+yIyfXBk6w4IIHaQWk1MhYlalOyxEQzMuM4bzDXPTghb60yVgIT9ChLClMddqn3WXT1H1mx7xQpXs7Sxme8Q7PXDE8YBh5FnacB0nPsijGMYBo7nGTNAhOT9D2EVpgbtLsG+L5L6avuiVXSeI6+K2pp4hTyBOPjGnXGTjEuFOE5Nx4ozy8dxi+0by0fXzj6BXE9kL9iReiLAEdoHn+/JZ/6aGA78K+5SmXlxZAoPmFTDYlwmMZNHyHlJ6XUdUPN2Cd2GquaU/Af7VgN0PgoNutiVBI86wsITK1uUszsxDmPz5FxyOPrAOJC6zFrVhcE3/Dw/mebwgxUgXJwisd1NeC3q0u4FyaQyeka3h1XGnmfx/sMlxs6bMaZHvunubYsFuqMtAaqVTzvA6uHX8/dHap1l13W8B3NbP8tZh4Ch7366APEwZF9OjVeKSsRG5W1Oiw9X0dSGX4NGxMGAPNsxeP+2QbJydeZ5LA7p1BnRsj1vQkE1+y0eE9QezJO6NF2fwuebXNk=
7
+ gem: thepackager
8
+ on:
9
+ tags: true
10
+ repo: flant/thepackager
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
@@ -0,0 +1,87 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ thepackager (0.0.1)
5
+ net_status (>= 0.0.1, < 1.0)
6
+ thor (>= 0.19.1, < 1.0)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ addressable (2.4.0)
12
+ backports (3.6.8)
13
+ coderay (1.1.1)
14
+ diff-lcs (1.2.5)
15
+ ethon (0.8.1)
16
+ ffi (>= 1.3.0)
17
+ faraday (0.9.2)
18
+ multipart-post (>= 1.2, < 3)
19
+ faraday_middleware (0.10.0)
20
+ faraday (>= 0.7.4, < 0.10)
21
+ ffi (1.9.10)
22
+ gh (0.14.0)
23
+ addressable
24
+ backports
25
+ faraday (~> 0.8)
26
+ multi_json (~> 1.0)
27
+ net-http-persistent (>= 2.7)
28
+ net-http-pipeline
29
+ highline (1.7.8)
30
+ json (1.8.3)
31
+ launchy (2.4.3)
32
+ addressable (~> 2.3)
33
+ method_source (0.8.2)
34
+ multi_json (1.11.2)
35
+ multipart-post (2.0.0)
36
+ net-http-persistent (2.9.4)
37
+ net-http-pipeline (1.0.1)
38
+ net_status (0.0.2)
39
+ pry (0.10.3)
40
+ coderay (~> 1.1.0)
41
+ method_source (~> 0.8.1)
42
+ slop (~> 3.4)
43
+ pusher-client (0.6.2)
44
+ json
45
+ websocket (~> 1.0)
46
+ rake (10.5.0)
47
+ rspec (3.4.0)
48
+ rspec-core (~> 3.4.0)
49
+ rspec-expectations (~> 3.4.0)
50
+ rspec-mocks (~> 3.4.0)
51
+ rspec-core (3.4.3)
52
+ rspec-support (~> 3.4.0)
53
+ rspec-expectations (3.4.0)
54
+ diff-lcs (>= 1.2.0, < 2.0)
55
+ rspec-support (~> 3.4.0)
56
+ rspec-mocks (3.4.1)
57
+ diff-lcs (>= 1.2.0, < 2.0)
58
+ rspec-support (~> 3.4.0)
59
+ rspec-support (3.4.1)
60
+ slop (3.6.0)
61
+ thor (0.19.1)
62
+ travis (1.8.2)
63
+ backports
64
+ faraday (~> 0.9)
65
+ faraday_middleware (~> 0.9, >= 0.9.1)
66
+ gh (~> 0.13)
67
+ highline (~> 1.6)
68
+ launchy (~> 2.1)
69
+ pusher-client (~> 0.4)
70
+ typhoeus (~> 0.6, >= 0.6.8)
71
+ typhoeus (0.8.0)
72
+ ethon (>= 0.8.0)
73
+ websocket (1.2.2)
74
+
75
+ PLATFORMS
76
+ ruby
77
+
78
+ DEPENDENCIES
79
+ bundler (~> 1.7)
80
+ pry (>= 0.10.3, < 1.0)
81
+ rake (~> 10.0)
82
+ rspec (~> 3.4, >= 3.4.0)
83
+ thepackager!
84
+ travis (~> 1.8, >= 1.8.2)
85
+
86
+ BUNDLED WITH
87
+ 1.11.2
@@ -0,0 +1,44 @@
1
+ build_type: fpm
2
+ package_name: pam_docker
3
+
4
+ # package_version: $CI_BUILD_TAG || $TRAVIS_TAG || упасть
5
+
6
+ build_deps: git build-essential
7
+
8
+ before_prepare:
9
+ - curl http://flant.ru/key.gpg | apt-key -
10
+
11
+ after_prepare:
12
+ - curl http://flant.ru/key.gpg | apt-key -
13
+
14
+ fpm_script:
15
+ - when: after_remove
16
+ what:
17
+ - rm /usr/share/pam-configs/docker
18
+ - when: after_install, after_upgrade, after_remove
19
+ what:
20
+ - pam-auth-update --package # <cmd>
21
+
22
+ fpm_config_files:
23
+ config/security.conf: /etc/security/docker.conf
24
+
25
+ fpm_files:
26
+ config/docker: /usr/share/pam-configs/docker
27
+ pam_docker.so: /lib/security/pam_docker.so \
28
+
29
+ os:
30
+ ubuntu:
31
+ build_deps: libpam0g-dev
32
+ centos:
33
+ build_deps: libpam0g-devel
34
+
35
+ #after_patch:
36
+ # - rm debian/patches/lalala.patch
37
+
38
+ before_build:
39
+ - make
40
+ - mkdir -p $(pwd)/build
41
+ - PREFIX=$(pwd)/build make install
42
+
43
+ targets:
44
+ ubuntu-14.04-pam_docker: true
@@ -0,0 +1,28 @@
1
+ os:
2
+ ubuntu:
3
+ run:
4
+ - apt-get install -y git build-essential libpam0g-dev
5
+ - git clone https://github.com/flant/pam_docker.git /root/pam_docker
6
+
7
+ targets:
8
+ ubuntu-14.04-pam_docker:
9
+ run:
10
+ - cd /root/pam_docker
11
+ - make
12
+ - echo -e '#!/bin/bash\npam-auth-update --package' > after_install.sh
13
+ - cp after_install.sh after_upgrade.sh
14
+ - echo -e '#!/bin/bash\nrm /usr/share/pam-configs/docker\npam-auth-update --package' > after_remove.sh
15
+ - chmod +x pam_auth_update.sh
16
+ - chmod 644 pam_docker.so
17
+ - fpm -s dir -t deb -n pam_docker \
18
+ --deb-use-file-permissions \
19
+ --version 0.0.1-1 \
20
+ --after-install pam_auth_update.sh \
21
+ --after-upgrade pam_auth_update.sh \
22
+ --after-remove pam_config_remove.sh \
23
+ --after-remove pam_auth_update.sh \
24
+ --config-files /etc/security/docker.conf \
25
+ --config-files /usr/share/pam-configs/docker \
26
+ pam_docker.so=/lib/security/pam_docker.so \
27
+ config/security.conf=/etc/security/docker.conf \
28
+ config/docker=/usr/share/pam-configs/docker
@@ -0,0 +1 @@
1
+ # thepackager
@@ -0,0 +1,6 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,9 @@
1
+ # vi: set ft=ruby :
2
+ # vi: set sts=2 ts=2 sw=2 :
3
+
4
+ VAGRANTFILE_API_VERSION = "2"
5
+
6
+ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
7
+ config.vm.box = "ubuntu/trusty64"
8
+ config.vm.provision :shell, path: "bootstrap.sh"
9
+ end
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env ruby
2
+ # vi: set ft=ruby :
3
+ # vi: set sts=2 ts=2 sw=2 :
4
+
5
+ require 'thor'
6
+ require 'yaml'
7
+ require 'net_status'
8
+
9
+ module Thepackager
10
+ module Builder
11
+ class Base
12
+ attr_reader :context
13
+
14
+ def initialize(context)
15
+ @context = context
16
+ end
17
+
18
+ def prepare
19
+ puts "#{self.class}::prepare"
20
+ end
21
+
22
+ def build
23
+ puts "#{self.class}::build"
24
+ end
25
+ end
26
+
27
+ class Fpm < Base
28
+ end
29
+ end # Builder
30
+
31
+ class Error < NetStatus::Exception
32
+ end # Error
33
+
34
+ class Context
35
+ def packagefile
36
+ @packagefile ||= begin
37
+ YAML.load File.open(ENV['PACKAGEFILE'] || 'Packagefile', 'r').read
38
+ end
39
+ end
40
+
41
+ def builder
42
+ build_type = packagefile['build_type']
43
+ begin
44
+ builder = Builder.const_get(build_type.split('_').map(&:capitalize).join)
45
+ rescue
46
+ raise Error, error: :input_error, message: "unknown build type '#{build_type}'"
47
+ end
48
+ builder.new(self)
49
+ end
50
+ end # Context
51
+
52
+ class Cli < Thor
53
+ desc "init", "Initialize packager base settings"
54
+ def init
55
+ raise Error, message: ".travis.yml configuration exists" if File.exists?('.travis.yml')
56
+
57
+ travis = {
58
+ 'dist' => 'trusty',
59
+ 'cache' => 'apt',
60
+ 'language' => 'ruby',
61
+ 'rvm' => '2.2.1',
62
+ 'before_install' => 'gem install thepackager',
63
+ 'before-script' => 'thepackager prepare',
64
+ 'script' => 'thepackager build',
65
+ }
66
+
67
+ File.open('.travis.yml', 'w') {|f| f.write YAML.dump(travis)}
68
+ end
69
+
70
+ desc "prepare", "Prepare image or environment for build"
71
+ def prepare
72
+ Context.new.builder.prepare
73
+ end
74
+
75
+ desc "build", "Build the package"
76
+ def build
77
+ Context.new.builder.build
78
+ end
79
+ end # Cli
80
+ end # Thepackager
81
+
82
+ begin
83
+ Thepackager::Cli.start
84
+ rescue Thepackager::Error => e
85
+ $stderr.puts [e.net_status[:error], e.net_status[:message]].compact.join(': ')
86
+ exit 1
87
+ end
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env /bin/bash
2
+
3
+ apt-get update
4
+ apt-get install -y apt-transport-https ca-certificates
5
+ apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
6
+ echo 'deb https://apt.dockerproject.org/repo ubuntu-trusty main' > /etc/apt/sources.list.d/docker.list
7
+ apt-get update
8
+ apt-get install -y docker-engine
9
+
10
+ gpasswd -a vagrant docker
11
+ service docker restart
12
+
13
+ curl -sSL https://rvm.io/mpapis.asc | sudo gpg --import -
14
+ curl -sSL https://get.rvm.io | sudo bash -s stable
15
+ source /etc/profile.d/rvm.sh
16
+
17
+ rvm install 2.2.1 --quiet-curl
18
+ rvm --default use 2.2.1
19
+
20
+ cd /vagrant
21
+ gem build thepackager.gemspec
22
+ gem install ./thepackager-*.gem
File without changes
@@ -0,0 +1,3 @@
1
+ module Thepackager
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,27 @@
1
+ require File.expand_path("../lib/thepackager/version", __FILE__)
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "thepackager"
5
+ spec.version = Thepackager::VERSION
6
+ spec.authors = ["flant"]
7
+ spec.email = "256@flant.com"
8
+
9
+ spec.summary = "Packaging tool"
10
+ spec.description = "#{spec.summary}."
11
+ spec.license = "MIT"
12
+ spec.homepage = "https://github.com/flant/thepackager"
13
+
14
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
15
+ spec.executables = ["thepackager"]
16
+
17
+ spec.required_ruby_version = '>= 2.2.1'
18
+
19
+ spec.add_dependency "thor", ">= 0.19.1", "< 1.0"
20
+ spec.add_dependency "net_status", ">= 0.0.1", "< 1.0"
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.7"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency "rspec", "~> 3.4", ">= 3.4.0"
25
+ spec.add_development_dependency "pry", ">= 0.10.3", "< 1.0"
26
+ spec.add_development_dependency "travis", "~> 1.8", ">= 1.8.2"
27
+ end
metadata ADDED
@@ -0,0 +1,186 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: thepackager
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - flant
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-03-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.19.1
20
+ - - <
21
+ - !ruby/object:Gem::Version
22
+ version: '1.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.19.1
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: '1.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: net_status
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: 0.0.1
40
+ - - <
41
+ - !ruby/object:Gem::Version
42
+ version: '1.0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: 0.0.1
50
+ - - <
51
+ - !ruby/object:Gem::Version
52
+ version: '1.0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: bundler
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ version: '1.7'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: '1.7'
67
+ - !ruby/object:Gem::Dependency
68
+ name: rake
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ~>
72
+ - !ruby/object:Gem::Version
73
+ version: '10.0'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ~>
79
+ - !ruby/object:Gem::Version
80
+ version: '10.0'
81
+ - !ruby/object:Gem::Dependency
82
+ name: rspec
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: '3.4'
88
+ - - ! '>='
89
+ - !ruby/object:Gem::Version
90
+ version: 3.4.0
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ~>
96
+ - !ruby/object:Gem::Version
97
+ version: '3.4'
98
+ - - ! '>='
99
+ - !ruby/object:Gem::Version
100
+ version: 3.4.0
101
+ - !ruby/object:Gem::Dependency
102
+ name: pry
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: 0.10.3
108
+ - - <
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: 0.10.3
118
+ - - <
119
+ - !ruby/object:Gem::Version
120
+ version: '1.0'
121
+ - !ruby/object:Gem::Dependency
122
+ name: travis
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ~>
126
+ - !ruby/object:Gem::Version
127
+ version: '1.8'
128
+ - - ! '>='
129
+ - !ruby/object:Gem::Version
130
+ version: 1.8.2
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ~>
136
+ - !ruby/object:Gem::Version
137
+ version: '1.8'
138
+ - - ! '>='
139
+ - !ruby/object:Gem::Version
140
+ version: 1.8.2
141
+ description: Packaging tool.
142
+ email: 256@flant.com
143
+ executables:
144
+ - thepackager
145
+ extensions: []
146
+ extra_rdoc_files: []
147
+ files:
148
+ - .gitignore
149
+ - .travis.yml
150
+ - Gemfile
151
+ - Gemfile.lock
152
+ - Packagefile.example.1
153
+ - Packagefile.example.2
154
+ - README.md
155
+ - Rakefile
156
+ - Vagrantfile
157
+ - bin/thepackager
158
+ - bootstrap.sh
159
+ - lib/thepackager.rb
160
+ - lib/thepackager/version.rb
161
+ - thepackager.gemspec
162
+ homepage: https://github.com/flant/thepackager
163
+ licenses:
164
+ - MIT
165
+ metadata: {}
166
+ post_install_message:
167
+ rdoc_options: []
168
+ require_paths:
169
+ - lib
170
+ required_ruby_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: 2.2.1
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ! '>='
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ requirements: []
181
+ rubyforge_project:
182
+ rubygems_version: 2.4.5
183
+ signing_key:
184
+ specification_version: 4
185
+ summary: Packaging tool
186
+ test_files: []