Sha256: 3c39ee1247b7c72ee5ba076f18b3d46dd950ff85a453fa4b4a5a5501a09e1485

Contents?: true

Size: 1.69 KB

Versions: 1

Compression:

Stored size: 1.69 KB

Contents

module Grump
  module Plugin
    module Java

      def java_plugin_setup
        java_source('./src/main/java')
        java_dist('./dist')
        java_output('.grump/out')
        java_libs('.grump/libs')
      end

      def java_source(path)
        @java_source = File.expand_path(path, self.path)
      end

      def java_dist(path)
        @java_dist = File.expand_path(path, self.path)
      end

      def java_output(path)
        @java_output = File.expand_path(path, self.path)
      end

      def java_libs(path)
        @java_libs = File.expand_path(path, self.path)
      end

      def java_main(clazz)
        @java_main = clazz
      end

      def java_build
        FileUtils.mkdir_p(@java_output)
        cmd = "javac -d #{@java_output} -cp #{Dir.glob("#{@java_libs}/*.jar").join(':')} #{Dir.glob("#{@java_source}/**/*.java").join(' ')}"
        `#{cmd}`
      end

      def java_run
        libs = (Dir.glob("#{@java_libs}/*.jar") << @java_output).join(':')
        Dir.chdir(var(:pwd))

        cmd = "java -cp #{libs} #{@java_main}"

        IO.popen (cmd) do |f|
          begin
            while (line = f.gets)
              puts line
            end
          rescue => e
            puts e.message
          end
        end
      end

      def java_jar
        d = Dir.pwd
        Dir.chdir(@java_output)
        puts `jar cvf dist.jar #{Dir.glob('*').join(' ')}`
        Dir.chdir(d)
      end

      def java_package
        libs = File.join(@java_dist, 'libs')
        FileUtils.mkdir_p(libs)
        FileUtils.cp(Dir.glob(File.join(@java_libs, '*.jar')), libs)
        FileUtils.mv(File.join(@java_output, 'dist.jar'), libs)
      end

    end
  end

  Plugin.register(:java, Plugin::Java)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
grump-0.0.1 lib/grump-java.rb