tech-ingolf-wagner-de/Rakefile

162 lines
2.7 KiB
Ruby

#
# configuration
#
@viewer = "feh" # just comment out if you don't want the viewr task
#
# default task
#
desc "create all files"
task :all
task :default => :all
#
# tasks I need for all files
#
def rest_tasks(name, file, png_file, svg_file)
desc "generate all files for ./#{file}"
task name => png_file
task name => svg_file
if @viewer
show_name = "view_#{name}"
desc "#{@viewer} ./#{png_file}"
task show_name => png_file do
sh "#{@viewer} #{png_file}"
end
end
# append tasks to default task
task :all => png_file
task :all => svg_file
end
#
# tasks for blockdiag files
#
Dir['src/images/**/*.diag'].each do |diag_file|
name = diag_file[0..-6]
svg_file = "#{name}.svg"
png_file = "#{name}.png"
task svg_file do
sh "blockdiag -Tsvg -o #{name}.svg #{diag_file}"
end
task png_file do
sh "blockdiag --no-transparency -Tpng -o #{name}.png #{diag_file}"
end
rest_tasks(name, diag_file, png_file, svg_file)
end
#
# tasks for nwdiag files
#
Dir['src/images/**/*.nwdiag'].each do |diag_file|
name = diag_file[0..-8]
svg_file = "#{name}.svg"
png_file = "#{name}.png"
task svg_file do
sh "nwdiag -Tsvg -o #{name}.svg #{diag_file}"
end
task png_file do
sh "nwdiag --no-transparency -Tpng -o #{name}.png #{diag_file}"
end
rest_tasks(name, diag_file, png_file, svg_file)
end
#
# tasks for seqdiag files
#
Dir['src/images/**/*.seqdiag'].each do |diag_file|
name = diag_file[0..-9]
svg_file = "#{name}.svg"
png_file = "#{name}.png"
task svg_file do
sh "seqdiag -Tsvg -o #{name}.svg #{diag_file}"
end
task png_file do
sh "seqdiag --no-transparency -Tpng -o #{name}.png #{diag_file}"
end
rest_tasks(name, diag_file, png_file, svg_file)
end
#
# tasks for actdiag files
#
Dir['src/images/**/*.actdiag'].each do |diag_file|
name = diag_file[0..-9]
svg_file = "#{name}.svg"
png_file = "#{name}.png"
task svg_file do
sh "actdiag -Tsvg -o #{name}.svg #{diag_file}"
end
task png_file do
sh "actdiag --no-transparency -Tpng -o #{name}.png #{diag_file}"
end
rest_tasks(name, diag_file, png_file, svg_file)
end
#
# hugo server
#
desc "start the hugo server"
task :run_server => [:build_css] do
sh "hugo serve"
end
#
# publish
#
desc "publish"
task :publish => [:all] do
sh "./publish.ion"
end
desc "preview"
task :preview => [:all] do
sh "./preview.ion"
end
desc "build css"
task :build_css do
sh "lessc src/lessc/page/main.less static/css/main.css"
sh "lessc src/lessc/remark/main-light.less static/css/remark-light.css"
sh "lessc src/lessc/remark/main-dark.less static/css/remark-dark.css"
end
task :all => :build_css