class MakePackage
This is MakePackage
, our automatic package building tool.
Public Class Methods
new(spec)
click to toggle source
This gets some information from the user we need.
# File bin/scribe, line 26 def initialize(spec) @file = open(spec, 'r') @spec = YAML::load(@file) puts("Package: #{@spec['name']}") puts("Version: #{@spec['version']}") puts("Description: #{@spec['description']}") print("Are you SURE you want to continue? [y/n] ") if gets.include?("y") mkdir_p("#{@spec['name']}-build/data") cp("packageData", "#{@spec['name']}-build/data/.packageData") cp("install", "#{@spec['name']}-build/data/.install") cp("remove", "#{@spec['name']}-build/data/.remove") @pwd = pwd() cd("#{@spec['name']}-build") get() compile() buildpkg() else puts("#{@spec['name']} not built.") end end
Public Instance Methods
buildpkg()
click to toggle source
Makes the package.
# File bin/scribe, line 80 def buildpkg() puts("Making Package...") packageName = "#{@spec['name']}-#{@spec['version']}-#{RbConfig::CONFIG["build_cpu"]}.pst" system("tar cf #{packageName} * .packageData .install .remove") system("xz #{packageName}") cp(packageName + ".xz", "#{@pwd}/#{packageName}") rm("#{packageName}.xz") end
compile()
click to toggle source
Compiles the package.
# File bin/scribe, line 67 def compile() puts("Building Software...") build = File.read("../build") eval(build) cd("#{@pwd}/#{@spec['name']}-build/data") packageFiles = Dir["**/*"].reject {|file| File.directory?(file) } for file in packageFiles if file.include?("/bin/") or file.include?("/lib/") system("strip #{file}") end end end
get()
click to toggle source
Downloads source code.
# File bin/scribe, line 48 def get() puts("Getting Source Code...") for source in @spec['source'] if source.include?("http://") or source.include?("ftp://") action = system("wget -c #{source}") if action == false puts("Could not download #{source}.") exit(1) end elsif source.include?("git://") action = system("git clone #{source}") if action == false puts("Could not download #{source}.") exit(1) end end end end