Update build system.

Add ability to use complex directory structure of Handlebars
templates in dialog styles.
This commit is contained in:
Dmitriy Simushev 2013-03-01 12:52:01 +00:00
parent 4b7614caec
commit 97ca21d295
2 changed files with 76 additions and 3 deletions

View File

@ -29,16 +29,39 @@
<!-- Compile Handlebars templates for dialogs styles --> <!-- Compile Handlebars templates for dialogs styles -->
<target name="styles_handlebars"> <target name="styles_handlebars">
<echo>Compile Handlebars templates for dialogs styles</echo> <echo>Flatten templates directory structure</echo>
<!-- Use system 'mkdir' instead of ant 'mkdir' task because it do not
work with dirsets -->
<apply executable="mkdir" addsourcefile="false">
<targetfile />
<dirset dir=".">
<include name="${dialogs_styles_path}/*/handlebars_templates" />
</dirset>
<mapper type="glob" from="*/handlebars_templates" to="*/handlebars_templates_tmp" />
</apply>
<!-- Flatten templates directory structure -->
<apply executable="build_scripts/flat_cp" force="true">
<srcfile />
<targetfile />
<arg value="handlebars_templates" />
<fileset dir=".">
<include name="${dialogs_styles_path}/*/handlebars_templates/**/*.handlebars" />
</fileset>
<mapper type="regexp" from="^(.*)/handlebars_templates/(.*)$$" to="\1/handlebars_templates_tmp" />
</apply>
<echo>Compile templates</echo>
<!-- Compile templates --> <!-- Compile templates -->
<apply executable="${handlebars}"> <apply executable="${handlebars}">
<arg value="-f"/> <arg value="-f"/>
<targetfile /> <targetfile />
<dirset dir="."> <dirset dir=".">
<include name="${dialogs_styles_path}/*/handlebars_templates" /> <include name="${dialogs_styles_path}/*/handlebars_templates_tmp" />
</dirset> </dirset>
<mapper type="glob" from="*/handlebars_templates" to="*/js/compiled/templates_tmp.js" /> <mapper type="glob" from="*/handlebars_templates_tmp" to="*/js/compiled/templates_tmp.js" />
</apply> </apply>
<!-- Use closule compiler instead of handlebars minifyer (-m flag) <!-- Use closule compiler instead of handlebars minifyer (-m flag)
@ -74,6 +97,17 @@
</move> </move>
<!-- Remove all temporary files --> <!-- Remove all temporary files -->
<!-- Use system 'rm' instead of ant
'delete' task because it do not work with dirsets -->
<echo>Remove temporary files</echo>
<apply executable="rm">
<arg value="-r" />
<arg value="-f" />
<dirset dir=".">
<include name="${dialogs_styles_path}/*/handlebars_templates_tmp" />
</dirset>
</apply>
<delete> <delete>
<fileset dir="."> <fileset dir=".">
<include name="${dialogs_styles_path}/*/js/compiled/templates_tmp.js" /> <include name="${dialogs_styles_path}/*/js/compiled/templates_tmp.js" />

View File

@ -0,0 +1,39 @@
#!/bin/sh
#
# Copy file and flatten its name by replace '/' by '_'. For more
# details see examples below.
#
# Usage:
#
# flat_cp [from] [to_dir] [cut_from]
# from - source file
# to_dir - target file
# cut_from - part of source file path. Only part after
# cut_from will be used for target file name.
#
# Examples:
# If execute the command:
#
# $ flat cp /home/user/application/templates/controls/radio \
# /home/user/application/compiled_templates "templates"
#
# the file from '/home/user/application/templates/controls/radio'
# will be copied to '/home/user/application/compiled_templates/controls_radio'
#
source_file=$1
cut_from=$(sed -r "s/\/+$//" <<< "$3")
if [ $cut_from ]
then
cut_from=$(sed -r "s/\//\\\\\//g" <<< "$cut_from")
target_file_name=$(sed -r "s/^(.*)$cut_from\/(.*)$/\2/" <<< "$source_file")
else
target_file_name=$source_file
fi
target_file_name=$(sed -r "s/\//_/g" <<< "$target_file_name")
target_file=$(sed -r "s/\/?$//" <<< "$2")"/"$target_file_name
cp $source_file $target_file