diff --git a/Rakefile b/Rakefile new file mode 100644 index 000000000..ff35c4c00 --- /dev/null +++ b/Rakefile @@ -0,0 +1,140 @@ +require 'rubygems' + + +desc "Default Task - Build Library" +task :default => [:required] do + Rake::Task['build'].execute +end + + +task :required do + puts "Executind task: required" +end + + +desc "Copy Files to ProcessMaker" +task :build => [:required] do + mode = "production" + #argv1 = ARGV.last + publicDir = Dir.pwd + "/workflow/public_html" + + # validate + unless File.exists?(publicDir) + puts "Seems it is not a ProcessMaker installation" + exit(1) + end + + ## + # Build PMUI Library + # + if mode == "production" + targetDir = publicDir + "/lib" + pmUIFontsDir = targetDir + "/css/fonts" + else + targetDir = publicDir + "/lib-dev" + pmUIFontsDir = pmUIDir + "/fonts" + end + + jsTargetDir = targetDir + "/js" + cssTargetDir = targetDir + "/css" + cssImagesTargetDir = cssTargetDir + "/images" + imgTargetDir = targetDir + "/img" + + pmUIDir = targetDir + "/pmUI" + + prepareDirs([pmUIDir, jsTargetDir, cssTargetDir, cssImagesTargetDir, imgTargetDir, pmUIFontsDir]) + + buildPmUi(targetDir, mode) + + #task argv1.to_sym do ; end +end + +def buildPmUi(targetDir, mode) + + # Defining target directories + homeDir = Dir.pwd + "/vendor/colosa/pmUI" + pmUIDir = targetDir + "/pmUI" + pmUIFontsDir = targetDir + "/fonts" + jsTargetDir = targetDir + "/js" + cssTargetDir = targetDir + "/css" + imgTargetDir = targetDir + "/img" + version = getVersion(homeDir) + # + + puts "Generating Theme files" + executeInto(homeDir, ["compileTheme[mafe]", "js"]) + + puts "\nCopying lib files into: #{pmUIDir}" + + puts "*Copy build/js/min/pmui-#{version}.min.js -> pmui.min.js" + system "cp #{homeDir}/build/js/pmui-#{version}.js #{pmUIDir}/pmui.min.js" + + puts "*Copy themes/mafe/build/pmui-mafe.css -> pmui.min.css" + system "cp #{homeDir}/themes/mafe/build/pmui-mafe.css #{pmUIDir}/pmui.min.css" + + puts "*Copy themes/mafe/build/images/*.png -> css/images/" + system "cp -Rf #{homeDir}/themes/mafe/build/images/*.png #{targetDir}/css/images/" + + puts "*Copy img/* to #{imgTargetDir}" + system "cp -Rf #{homeDir}/img/* #{imgTargetDir}" + + + jsLibFiles = { + homeDir + "/libraries/restclient/restclient-min.js" => "restclient.min.js" + } + + puts "" + puts "Copying lib files into: #{jsTargetDir}" + + jsLibFiles.each do |src, target| + puts "*Copy #{src} -> #{target}" + system "cp #{src} #{jsTargetDir}/#{target}" + end + + puts "" + puts "Copying font files into: #{pmUIFontsDir}" + #targetConfFiles = [ + # homeDir + "/config/fonts.json" + #] + + theme ="mafe" + + puts "Copying fonts" + puts "*Copy themes/#{theme}/fonts/* -> #{targetDir}" + system "cp -R #{homeDir}/themes/#{theme}/fonts/* #{targetDir}" + +end + +def prepareDirs(dirs) + homeDir = Dir.pwd + + puts "Preparing Directories..." + + dirs.each do |dir| + if File.directory?(dir) + puts "Removing #{dir}" + system "rm -rf #{dir}" + end + Dir.mkdir(dir) + end +end + + +def getVersion(path) + if File.exists? path + '/VERSION.txt' + version = File.read path + '/VERSION.txt' + else + version = "(unknown)" + end + + return version.strip +end + + +def executeInto(path, tasks) + Dir.chdir(path) do + tasks.each do |task| + system "rake #{task}" + end + end +end