|
- require 'rake'
- require 'rake/clean'
- require 'pathname'
-
- build_dir = Pathname('_build')
- module_dest_dir = Pathname('../res')
- image_dest_dir = Pathname('../images')
-
- directory module_dest_dir
- directory image_dest_dir
-
- control_build_dir = build_dir / 'controls'
- control_build_files = "#{control_build_dir}/**/*.svg"
- control_build_file_to_dest_file = "%{^#{control_build_dir}/,#{module_dest_dir}/}p"
-
- image_build_dir = build_dir / 'images'
- image_build_files = "#{image_build_dir}/**/*.svg"
- image_build_file_to_dest_file = "%{^#{image_build_dir}/,#{image_dest_dir}/}p"
-
- panel_build_dir = build_dir / 'panels'
- panel_build_files = "#{panel_build_dir}/**/*.svg"
- panel_build_file_to_dest_file = "%{^#{panel_build_dir}/,#{module_dest_dir}/}X/panel.svg"
-
- module_source_dir = 'panels'
- module_source_files = FileList["#{module_source_dir}/**/*.svg"]
- module_source_file_to_dest_dir = "%{^#{module_source_dir}/,#{module_dest_dir}/}X"
- module_dest_dirs = module_source_files.pathmap(module_source_file_to_dest_dir)
- module_dest_dirs.each { |dir| directory dir }
-
- desc 'Compile the SVG images'
- task :compile do
- sh 'bundle exec jekyll b --trace'
- end
-
- task controls: [:compile] + module_dest_dirs do
- FileList[control_build_files].each do |build_file|
- dest_file = build_file.pathmap(control_build_file_to_dest_file)
- sh "xmllint --format #{build_file} > #{dest_file}"
- end
- end
-
- task panels: [:compile] + module_dest_dirs do
- FileList[panel_build_files].each do |build_file|
- dest_file = build_file.pathmap(panel_build_file_to_dest_file)
- convert_text_to_paths(build_file, dest_file)
- end
- end
-
- task images: [:compile, image_dest_dir] do
- FileList[image_build_files].each do |build_file|
- dest_file = build_file.pathmap(image_build_file_to_dest_file)
- convert_text_to_paths(build_file, dest_file)
- end
- end
-
- task all: [:controls, :panels, :images]
- task default: :all
-
- CLEAN.include build_dir
- CLOBBER.include module_dest_dir, image_dest_dir
-
- def convert_text_to_paths(source, dest)
- source = Pathname(source).expand_path.to_s
- dest = Pathname(dest).expand_path.to_s
- sh "/Applications/Inkscape.app/Contents/Resources/script --export-text-to-path --export-plain-svg=#{dest} #{source}"
- end
|