Sha256: 738fe49b7ef426be8f822e7e20ae5fb8e6c8f9edd53fb16d67c4c7a237a63413
Contents?: true
Size: 1.39 KB
Versions: 2
Compression:
Stored size: 1.39 KB
Contents
require 'fileutils' module PkgForge ## # Add metadata methods to Forge class Forge attr_writer :name, :org, :licenses Contract None => String def name @name || raise('No name provided') end Contract None => String def org @org || raise('No org provided') end Contract None => ArrayOf[String] def licenses @licenses ||= ['LICENSE'] end Contract None => String def version @version ||= `git describe --abbrev=0 --tags`.rstrip end Contract None => nil def add_license! return if licenses.empty? dest_dir = File.join(tmpdir(:release), 'usr', 'share', 'licenses', name) FileUtils.mkdir_p dest_dir licenses.each do |license| src_file = File.join(tmpdir(:build), license) dest_file = File.join(dest_dir, license) FileUtils.cp src_file, dest_file end nil end end module DSL ## # Add metadata methods to Forge DSL class Forge Contract String => nil def name(value) @forge.name = value nil end Contract String => nil def org(value) @forge.org = value nil end Contract Or[String, ArrayOf[String]] => nil def licenses(files) files = [files] unless files.is_a? Array @forge.licenses = files nil end alias license licenses end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pkgforge-0.29.1 | lib/pkgforge/components/metadata.rb |
pkgforge-0.29.0 | lib/pkgforge/components/metadata.rb |