Sha256: 2795cc10ac3e6fd9c5d53d7e4d696a48a4ba307b585c0f5d4540bbb5781e31c3

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 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}"
        ] + aliases(project) + project.build_script_lines

        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

    # setup aliases for adjusted versions of the packaging tools
    def aliases(project)
      kit = Tetra::Kit.new(project)

      aliases = []
      ant_path = kit.find_executable("ant")
      ant_commandline = Tetra::Ant.commandline("$PROJECT_PREFIX", ant_path)
      aliases << "alias ant='#{ant_commandline}'"

      mvn_path = kit.find_executable("mvn")
      mvn_commandline = Tetra::Mvn.commandline("$PROJECT_PREFIX", mvn_path)
      aliases << "alias mvn='#{mvn_commandline} -o'"

      aliases
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tetra-2.0.5 lib/tetra/packages/scriptable.rb