Sha256: 50dbc6816513695e465ccb2d21627309776e91033e80e7331d8a03800375afaa

Contents?: true

Size: 1.41 KB

Versions: 1

Compression:

Stored size: 1.41 KB

Contents

require 'kde-build/configuration'
require 'kde-build/subprocess'

require 'singleton'
require 'yaml'

module BuildTool

    class CTagsConfiguration

        include MJ::Configuration::Configurable

        include Singleton

        option( "executable", "Full path for to the executable" )
        option( "options", "" )
        option( "output", "" )

        def initialize
            @executable = "ctags"
        end

    end


    class CTags

        include MJ::Tools::SubProcess

        def self.run( dir, file )
            file = file.tr( "/", "-" )
            conf = CTagsConfiguration::instance
            if !conf.output
                $log.error("No ctags configuration section found!")
                return
            else
                FileUtils.mkdir_p( Pathname.new( conf.output ).expand_path )
            end
            ctags "#{conf.options ? conf.options : ""} -f #{Pathname.new( conf.output ).join( file )}  -R #{dir}"
        end

        def self.ctags( cmd )
            conf = CTagsConfiguration::instance
            execute( "#{conf.executable ? conf.executable : "ctags"} #{cmd}" )
        end

    end

    YAML.add_domain_type(
        "michael-jansen.biz,2009", "CTagsConfiguration" ) {
            |type, val|
            cc = CTagsConfiguration.instance
            MJ::Configuration::flatten_values val do
                |k, v|
                cc.set( k, v )
            end
        }

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
build-tool-0.0.3 lib/kde-build/tools/ctags.rb