thepackager 0.0.1

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.
@@ -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: []