pkgforge 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.circle-ruby +3 -0
- data/.gitignore +5 -0
- data/.prospectus +11 -0
- data/.rspec +2 -0
- data/.rubocop.yml +2 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +22 -0
- data/Rakefile +14 -0
- data/bin/pkgforge +26 -0
- data/circle.yml +6 -0
- data/lib/pkgforge.rb +37 -0
- data/lib/pkgforge/builddsl.rb +50 -0
- data/lib/pkgforge/forge.rb +49 -0
- data/lib/pkgforge/forgedsl.rb +71 -0
- data/lib/pkgforge/helpers.rb +64 -0
- data/lib/pkgforge/prepare.rb +62 -0
- data/lib/pkgforge/push.rb +38 -0
- data/lib/pkgforge/version.rb +5 -0
- data/pkgforge.gemspec +28 -0
- data/spec/pkgforge_spec.rb +1 -0
- data/spec/spec_helper.rb +11 -0
- metadata +166 -0
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
data/.gitignore
ADDED
data/.prospectus
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
data/Gemfile
ADDED
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
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
|
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'
|
data/spec/spec_helper.rb
ADDED
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
|