pkgforge 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 82a20dd80b7950e7fd7aaadd1792f16bf8b9948a
4
+ data.tar.gz: 69d06b93a5a07c5b870b1df7cd246fcd742a5ba1
5
+ SHA512:
6
+ metadata.gz: 51ba6eaaf84f93ad7516b74039ced0b9a735f6674371a68df0698c5d578d8ac37a2ae7ece37a88b01edf947198f1cbf28d67b26166812fe01ac77a1ec60079b4
7
+ data.tar.gz: a6c43cb54472fb5e620ae85154a8879d4cb89fd8c5a25168e6f9e9a6bb927920dba47220bd892434c0fc40f3ef30c7fac1bad9ef8cee49c9e5a28ab8135d9d01
data/.circle-ruby ADDED
@@ -0,0 +1,3 @@
1
+ 2.3.1
2
+ 2.2.5
3
+ 2.1.10
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ pkg/*.gem
2
+ coverage/
3
+ .coveralls.yml
4
+ .bundle
5
+ Gemfile.lock
data/.prospectus ADDED
@@ -0,0 +1,11 @@
1
+ item do
2
+ expected do
3
+ static
4
+ set 'green'
5
+ end
6
+
7
+ actual do
8
+ gemnasium
9
+ slug 'akerl/archpackager'
10
+ end
11
+ end
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format Fuubar
2
+ --color
data/.rubocop.yml ADDED
@@ -0,0 +1,2 @@
1
+ Encoding:
2
+ Enabled: false
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Les Aker
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+
data/README.md ADDED
@@ -0,0 +1,22 @@
1
+ pkgforge
2
+ =========
3
+
4
+ [![Gem Version](https://img.shields.io/gem/v/pkgforge.svg)](https://rubygems.org/gems/pkgforge)
5
+ [![Dependency Status](https://img.shields.io/gemnasium/akerl/pkgforge.svg)](https://gemnasium.com/akerl/pkgforge)
6
+ [![Build Status](https://img.shields.io/circleci/project/akerl/pkgforge.svg)](https://circleci.com/gh/akerl/pkgforge)
7
+ [![Coverage Status](https://img.shields.io/codecov/c/github/akerl/pkgforge.svg)](https://codecov.io/github/akerl/pkgforge)
8
+ [![Code Quality](https://img.shields.io/codacy/fb7636f572b04067801ac9024ed71228.svg)](https://www.codacy.com/app/akerl/pkgforge)
9
+ [![MIT Licensed](https://img.shields.io/badge/license-MIT-green.svg)](https://tldrlegal.com/license/mit-license)
10
+
11
+ DSL engine for building Arch packages
12
+
13
+ ## Usage
14
+
15
+ ## Installation
16
+
17
+ gem install pkgforge
18
+
19
+ ## License
20
+
21
+ pkgforge is released under the MIT License. See the bundled LICENSE file for details.
22
+
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
4
+
5
+ desc 'Run tests'
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ desc 'Run Rubocop on the gem'
9
+ RuboCop::RakeTask.new(:rubocop) do |task|
10
+ task.patterns = ['lib/**/*.rb', 'spec/**/*.rb', 'bin/*']
11
+ task.fail_on_error = true
12
+ end
13
+
14
+ task default: [:spec, :rubocop, :build, :install]
data/bin/pkgforge ADDED
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'pkgforge'
4
+ require 'mercenary'
5
+
6
+ FILE_NAME = '.pkgforge'.freeze
7
+
8
+ Mercenary.program(:pkgforge) do |p|
9
+ p.version PkgForge::VERSION
10
+ p.description 'DSL engine for building Arch packages'
11
+ p.syntax 'pkgforge [options]'
12
+
13
+ # rubocop:disable Metrics/LineLength
14
+ p.option :directory, '-d DIR', '--directory DIR', 'Change to directory before loading'
15
+ # rubocop:enable Metrics/LineLength
16
+
17
+ p.action do |_, options|
18
+ options[:directory] ||= '.'
19
+ Dir.chdir(options[:directory]) do
20
+ raise("No #{FILE_NAME} file") unless File.exist? FILE_NAME
21
+ forge = PkgForge.load_from_file
22
+ forge.build!
23
+ forge.push!
24
+ end
25
+ end
26
+ end
data/circle.yml ADDED
@@ -0,0 +1,6 @@
1
+ dependencies:
2
+ override:
3
+ - 'for i in $(cat .circle-ruby) ; do rvm-exec $i bundle install || exit 1 ; done'
4
+ test:
5
+ override:
6
+ - 'for i in $(cat .circle-ruby) ; do rvm-exec $i bundle exec rake || exit 1 ; done'
data/lib/pkgforge.rb ADDED
@@ -0,0 +1,37 @@
1
+ require 'contracts'
2
+
3
+ require 'pkgforge/version'
4
+ require 'pkgforge/helpers'
5
+ require 'pkgforge/prepare'
6
+ require 'pkgforge/push'
7
+ require 'pkgforge/forge'
8
+ require 'pkgforge/forgedsl'
9
+ require 'pkgforge/builddsl'
10
+
11
+ ##
12
+ # DSL engine for compiling Arch packages
13
+ module PkgForge
14
+ include Contracts::Core
15
+ include Contracts::Builtin
16
+
17
+ DEFAULT_FILE = './.pkgforge'.freeze
18
+
19
+ class << self
20
+ ##
21
+ # Insert a helper .new() method for creating a Forge object
22
+ def new(*args)
23
+ self::Forge.new(*args)
24
+ end
25
+
26
+ ##
27
+ # Method for loading in DSL file
28
+ Contract Maybe[HashOf[Symbol => Any]] => PkgForge::Forge
29
+ def load_from_file(params = {})
30
+ file = params[:file] || DEFAULT_FILE
31
+ forge = Forge.new(params)
32
+ dsl = ForgeDSL.new(forge, params)
33
+ dsl.instance_eval(File.read(file), file)
34
+ forge
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,50 @@
1
+ require 'fileutils'
2
+
3
+ module PkgForge
4
+ ##
5
+ # Builder engine
6
+ class BuildDSL
7
+ include Contracts::Core
8
+ include Contracts::Builtin
9
+
10
+ Contract PkgForge::Forge => nil
11
+ def initialize(forge)
12
+ @forge = forge
13
+ nil
14
+ end
15
+
16
+ private
17
+
18
+ Contract Or[String, Array], Or[Hash[String => String], {}, nil] => nil
19
+ def run(*args)
20
+ @forge.run(*args)
21
+ end
22
+
23
+ Contract None => nil
24
+ def configure
25
+ flag_strings = @forge.flags.map { |k, v| "--#{k}=#{v}" }
26
+ env = {
27
+ 'CC' => 'musl-gcc'
28
+ }
29
+ run ['./configure'] + flag_strings, env
30
+ end
31
+
32
+ Contract None => nil
33
+ def make
34
+ run 'make'
35
+ end
36
+
37
+ Contract None => nil
38
+ def install
39
+ run "make DESTDIR=#{@forge.releasedir} install"
40
+ end
41
+
42
+ Contract Or[String, Array[String]] => nil
43
+ def rm(paths)
44
+ paths = [paths] if paths.is_a? String
45
+ paths.map { |x| File.join(@forge.releasedir, x) }
46
+ FileUtils.rm_r paths
47
+ nil
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,49 @@
1
+ require 'tmpdir'
2
+ require 'tempfile'
3
+ require 'fileutils'
4
+ require 'open-uri'
5
+
6
+ ##
7
+ # Declare actual Forge with package-building
8
+ module PkgForge
9
+ ##
10
+ # Real Forge object
11
+ class Forge
12
+ include Contracts::Core
13
+ include Contracts::Builtin
14
+ include PkgForge::Helpers
15
+ include PkgForge::Prepare
16
+ include PkgForge::Push
17
+
18
+ attr_accessor :name, :org, :deps, :flags, :version_block, :patches,
19
+ :build_block, :license
20
+
21
+ Contract Maybe[HashOf[Symbol => Any]] => nil
22
+ def initialize(params = {})
23
+ @options = params
24
+ @license = 'LICENSE'
25
+ @deps = {}
26
+ @flags = {}
27
+ @patches = []
28
+ nil
29
+ end
30
+
31
+ Contract None => nil
32
+ def build!
33
+ prepare_source!
34
+ patch_source!
35
+ prepare_deps!
36
+ builder = BuildDSL.new(self)
37
+ builder.instance_eval(&build_block)
38
+ add_license!
39
+ make_tarball!
40
+ end
41
+
42
+ Contract None => nil
43
+ def push!
44
+ bump_revision!
45
+ update_repo!
46
+ upload_artifact!
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,71 @@
1
+ ##
2
+ # Declare DSL for Forge objects
3
+ module PkgForge
4
+ ##
5
+ # DSL for generating a Forge
6
+ class ForgeDSL
7
+ include Contracts::Core
8
+ include Contracts::Builtin
9
+
10
+ Contract Forge, Maybe[Hash] => nil
11
+ def initialize(forge, params = {})
12
+ @forge = forge
13
+ @options = params
14
+ nil
15
+ end
16
+
17
+ Contract String => nil
18
+ def name(value)
19
+ @forge.name = value
20
+ nil
21
+ end
22
+
23
+ Contract String => nil
24
+ def org(value)
25
+ @forge.org = value
26
+ nil
27
+ end
28
+
29
+ Contract HashOf[Symbol => String] => nil
30
+ def deps(value)
31
+ @forge.deps = value
32
+ nil
33
+ end
34
+
35
+ Contract HashOf[Symbol => String] => nil
36
+ def flags(value)
37
+ @forge.flags = value
38
+ nil
39
+ end
40
+
41
+ Contract Func[None => String] => nil
42
+ def version(&block)
43
+ @forge.version_block = block
44
+ nil
45
+ end
46
+
47
+ Contract String => nil
48
+ def patch(file)
49
+ @forge.patches ||= []
50
+ @forge.patches << file
51
+ nil
52
+ end
53
+
54
+ Contract Func[None => nil] => nil
55
+ def build(&block)
56
+ @forge.build_block = block
57
+ nil
58
+ end
59
+
60
+ Contract String => nil
61
+ def license(file)
62
+ @forge.license = file
63
+ nil
64
+ end
65
+
66
+ Contract String => String
67
+ def dep(dep_name)
68
+ @forge.dep(dep_name)
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,64 @@
1
+ module PkgForge
2
+ ##
3
+ # Helper functions for building packages
4
+ module Helpers
5
+ include Contracts::Core
6
+ include Contracts::Builtin
7
+
8
+ Contract String => String
9
+ def dep(package)
10
+ tmpdir(package.to_sym)
11
+ end
12
+
13
+ Contract None => String
14
+ def releasedir
15
+ tmpdir(:release)
16
+ end
17
+
18
+ Contract Or[String, Array], Or[Hash[String => String], {}, nil] => nil
19
+ def run(cmd, env = {})
20
+ Dir.chdir(tmpdir(:build)) do
21
+ run_local(cmd, env)
22
+ end
23
+ nil
24
+ end
25
+
26
+ private
27
+
28
+ Contract Symbol => String
29
+ def tmpdir(id)
30
+ @tmpdirs ||= {}
31
+ @tmpdirs[id] ||= Dir.mktmpdir(id.to_s)
32
+ end
33
+
34
+ Contract Symbol => String
35
+ def tmpfile(id)
36
+ @tmpfiles ||= {}
37
+ @tmpfiles[id] ||= Tempfile.create(id.to_s).path
38
+ end
39
+
40
+ Contract Or[String, Array], Or[Hash[String => String], {}, nil] => nil
41
+ def run_local(cmd, env = {})
42
+ puts "Running command in #{Dir.pwd}: #{cmd}"
43
+ puts "Using env: #{env}" unless env.empty?
44
+ res = system env, *cmd
45
+ raise('Command failed!') unless res
46
+ nil
47
+ end
48
+
49
+ Contract None => String
50
+ def version
51
+ @version ||= Dir.chdir(tmpdir(:build)) { version_block.call }
52
+ end
53
+
54
+ Contract None => Num
55
+ def revision
56
+ File.read('version').to_i
57
+ end
58
+
59
+ Contract None => String
60
+ def full_version
61
+ "#{version}-#{revision}"
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,62 @@
1
+ module PkgForge
2
+ ##
3
+ # Preparation methods
4
+ module Prepare
5
+ include Contracts::Core
6
+ include Contracts::Builtin
7
+
8
+ private
9
+
10
+ Contract None => nil
11
+ def prepare_source!
12
+ dest = tmpdir(:build)
13
+ dest_git = File.join(dest, '.git')
14
+ dest_git_config = File.join(dest_git, 'config')
15
+ run_local 'git submodule update --init'
16
+ FileUtils.cp_r 'upstream/.', dest
17
+ FileUtils.rm_r dest_git
18
+ FileUtils.cp_r '.git/modules/upstream', dest_git
19
+ new_config = File.readlines(dest_git_config).grep_v(/worktree =/).join
20
+ File.open(dest_git_config, 'w') { |fh| fh << new_config }
21
+ nil
22
+ end
23
+
24
+ Contract None => nil
25
+ def patch_source!
26
+ patches.each do |patch|
27
+ run_local "patch -d #{tmpdir(:build)} -p1 < patches/#{patch}"
28
+ end
29
+ nil
30
+ end
31
+
32
+ Contract None => nil
33
+ def prepare_deps!
34
+ deps.each do |dep_name, dep_version|
35
+ url = "https://github.com/#{org}/#{dep_name}/releases/download/#{dep_version}/#{dep_name}.tar.gz" # rubocop:disable Metrics/LineLength
36
+ open(tmpfile(dep_name), 'wb') { |fh| fh << open(url, 'rb').read }
37
+ run_local "tar -x -C #{tmpdir(dep_name)} -f #{tmpfile(dep_name)}"
38
+ end
39
+ nil
40
+ end
41
+
42
+ Contract None => nil
43
+ def add_license!
44
+ src_file = File.join(tmpdir(:build), license)
45
+ dest_dir = File.join(
46
+ tmpdir(:release), 'usr', 'share', 'licenses', name
47
+ )
48
+ dest_file = File.join(dest_dir, 'LICENSE')
49
+ FileUtils.mkdir_p dest_dir
50
+ FileUtils.cp src_file, dest_file
51
+ nil
52
+ end
53
+
54
+ Contract None => nil
55
+ def make_tarball!
56
+ Dir.chdir(tmpdir(:release)) do
57
+ run_local "tar -czvf #{tmpfile(:tarball)} *"
58
+ end
59
+ nil
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,38 @@
1
+ module PkgForge
2
+ ##
3
+ # Helpers for pushing
4
+ module Push
5
+ include Contracts::Core
6
+ include Contracts::Builtin
7
+
8
+ private
9
+
10
+ Contract None => nil
11
+ def bump_revision!
12
+ new_revision = File.read('version').to_i + 1
13
+ File.open('version', 'w') { |fh| fh << "#{new_revision}\n" }
14
+ nil
15
+ end
16
+
17
+ Contract None => nil
18
+ def update_repo!
19
+ run_local "git commit -am '#{full_version}'"
20
+ run_local "git tag -f '#{full_version}'"
21
+ run_local 'git push --tags origin master'
22
+ sleep 2
23
+ nil
24
+ end
25
+
26
+ Contract None => nil
27
+ def upload_artifact!
28
+ run_local [
29
+ 'targit',
30
+ '--authfile', '.github',
31
+ '--create',
32
+ '--name', "#{name}.tar.gz",
33
+ "#{org}/#{name}", full_version, tmpfile(:tarball)
34
+ ]
35
+ nil
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,5 @@
1
+ ##
2
+ # Declare version number
3
+ module PkgForge
4
+ VERSION = '0.0.2'.freeze
5
+ end
data/pkgforge.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ $:.unshift File.expand_path('../lib/', __FILE__)
2
+ require 'pkgforge/version'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'pkgforge'
6
+ s.version = PkgForge::VERSION
7
+ s.date = Time.now.strftime('%Y-%m-%d')
8
+
9
+ s.summary = 'DSL engine for building Arch packages'
10
+ s.description = "DSL engine for building Arch packages"
11
+ s.authors = ['Les Aker']
12
+ s.email = 'me@lesaker.org'
13
+ s.homepage = 'https://github.com/akerl/pkgforge'
14
+ s.license = 'MIT'
15
+
16
+ s.files = `git ls-files`.split
17
+ s.test_files = `git ls-files spec/*`.split
18
+ s.executables = ['pkgforge']
19
+
20
+ s.add_dependency 'mercenary', '~> 0.3.4'
21
+ s.add_dependency 'contracts', '~> 0.14.0'
22
+
23
+ s.add_development_dependency 'rubocop', '~> 0.42.0'
24
+ s.add_development_dependency 'rake', '~> 11.2.0'
25
+ s.add_development_dependency 'codecov', '~> 0.1.1'
26
+ s.add_development_dependency 'rspec', '~> 3.5.0'
27
+ s.add_development_dependency 'fuubar', '~> 2.1.0'
28
+ end
@@ -0,0 +1 @@
1
+ require 'spec_helper'
@@ -0,0 +1,11 @@
1
+ if ENV['CI'] == 'true'
2
+ require 'simplecov'
3
+ require 'codecov'
4
+ SimpleCov.formatter = SimpleCov::Formatter::Codecov
5
+ SimpleCov.start do
6
+ add_filter '/spec/'
7
+ end
8
+ end
9
+
10
+ require 'rspec'
11
+ require 'pkgforge'
metadata ADDED
@@ -0,0 +1,166 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pkgforge
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Les Aker
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-08-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mercenary
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.3.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.3.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: contracts
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.14.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.14.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.42.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.42.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 11.2.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 11.2.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: codecov
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.1.1
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.1.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 3.5.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 3.5.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: fuubar
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 2.1.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 2.1.0
111
+ description: DSL engine for building Arch packages
112
+ email: me@lesaker.org
113
+ executables:
114
+ - pkgforge
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".circle-ruby"
119
+ - ".gitignore"
120
+ - ".prospectus"
121
+ - ".rspec"
122
+ - ".rubocop.yml"
123
+ - Gemfile
124
+ - LICENSE
125
+ - README.md
126
+ - Rakefile
127
+ - bin/pkgforge
128
+ - circle.yml
129
+ - lib/pkgforge.rb
130
+ - lib/pkgforge/builddsl.rb
131
+ - lib/pkgforge/forge.rb
132
+ - lib/pkgforge/forgedsl.rb
133
+ - lib/pkgforge/helpers.rb
134
+ - lib/pkgforge/prepare.rb
135
+ - lib/pkgforge/push.rb
136
+ - lib/pkgforge/version.rb
137
+ - pkgforge.gemspec
138
+ - spec/pkgforge_spec.rb
139
+ - spec/spec_helper.rb
140
+ homepage: https://github.com/akerl/pkgforge
141
+ licenses:
142
+ - MIT
143
+ metadata: {}
144
+ post_install_message:
145
+ rdoc_options: []
146
+ require_paths:
147
+ - lib
148
+ required_ruby_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ required_rubygems_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ requirements: []
159
+ rubyforge_project:
160
+ rubygems_version: 2.5.1
161
+ signing_key:
162
+ specification_version: 4
163
+ summary: DSL engine for building Arch packages
164
+ test_files:
165
+ - spec/pkgforge_spec.rb
166
+ - spec/spec_helper.rb