Sha256: 7e4ab9b709c394efe3762fc02309f61aceac51280e6a3d7b67cf6bed5594c2fa
Contents?: true
Size: 1.72 KB
Versions: 1
Compression:
Stored size: 1.72 KB
Contents
# encoding: UTF-8 module Tetra # generates a package build script from bash_history module Scriptable # returns a build script for this package def _to_script(project) project.from_directory do script_lines = [ "#!/bin/bash", "set -xe", "PROJECT_PREFIX=`readlink -e .`", "cd #{project.latest_dry_run_directory}" ] + script_body(project) new_content = script_lines.join("\n") + "\n" result_dir = File.join(project.packages_dir, project.name) FileUtils.mkdir_p(result_dir) result_path = File.join(result_dir, "build.sh") conflict_count = project.merge_new_content(new_content, result_path, "Build script generated", "script") [result_path, conflict_count] end end # returns the script body by taking the last dry-run's # build script lines and adjusting mvn and ant's paths def script_body(project) lines = project.build_script_lines ant = if lines.any? { |e| e.match(/tetra +ant/) } path = Tetra::Kit.new(project).find_executable("ant") Tetra::Ant.new(project.full_path, path).ant(@options) end mvn = if lines.any? { |e| e.match(/tetra +mvn/) } mvn_path = Tetra::Kit.new(project).find_executable("mvn") mvn = Tetra::Mvn.new("$PROJECT_PREFIX", mvn_path) end lines.map do |line| if line =~ /tetra +mvn/ line.gsub(/tetra +mvn/, "#{mvn.get_mvn_commandline(['-o'])}") elsif line =~ /tetra +ant/ line.gsub(/tetra +ant/, "#{ant.get_ant_commandline([])}") else line end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tetra-0.52.0 | lib/tetra/packages/scriptable.rb |