Sha256: 9907fbe012442f09c1b34639e7e842387b9cd4759c6d54fc7cfa83595e5b0518

Contents?: true

Size: 1.4 KB

Versions: 3

Compression:

Stored size: 1.4 KB

Contents

# Author::    Nicolas Pouillard  <ertai@lrde.epita.fr>.
# Copyright:: Copyright (c) 2004, 2005 Uttk team. All rights reserved.
# License::   LGPL
# $Id: /w/fey/uttk/trunk/lib/uttk/strategies/Bootstrap.rb 22117 2006-02-22T08:56:22.146625Z pouillar  $


module Uttk

  module Strategies

    # Run the bootstrap(.sh)? script or a classic autoreconf. This strategy is
    # used by the _Package_ strategy in case of the tested package does use
    # the _autotools_ or not.
    class Bootstrap < Proxy
      include Concrete

      BOOTSTRAP = /bootstrap(\.sh)?/
      AUTORECONF = 'autoreconf -fvi'

      def prologue
        super

        cmd = self.class.have_bootstrap? @dir
        if cmd.nil? and Configure.have_configure_input? @dir
          cmd = AUTORECONF
        end
        unless cmd.nil? or Configure.have_configure?(@dir)
          create(Cmd) do |test|
            test.name = 'internal command'
            test.exit = 0
            test.dir = @dir
            test.command = cmd
            test.reject :strategy
          end
        end
      end


      def dir= ( dir )
        @dir = Pathname.new(dir)
      end


      def self.have_bootstrap? ( dir=Pathname.new('.') )
        res = dir.entries.find { |ent| ent.to_s =~ BOOTSTRAP }
        (res.nil?) ? nil : dir + res
      end

      attribute :dir, 'bootstrap directory', :mandatory

    end # class Bootstrap

  end # module Strategies

end # module Uttk

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
uttk-0.3.6.1 lib/uttk/strategies/Bootstrap.rb
uttk-0.3.1.2 lib/uttk/strategies/Bootstrap.rb
uttk-0.3.5.0 lib/uttk/strategies/Bootstrap.rb