annotate build.sh @ 11:9dca7035ab93

Generate index page for slides
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Fri, 31 Jan 2014 23:26:36 +0900
parents 455db4624bce
children daf59131cdb8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
5ceacb9a06c7 Add build script
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #/bin/sh
5ceacb9a06c7 Add build script
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
6
f6d65d2a806f Split const definitions into config/definition.sh
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
3 # source definitions
f6d65d2a806f Split const definitions into config/definition.sh
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
4 . `dirname $0`/config/definition.sh
2
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
5
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
6 # functions
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
7
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
8 command_check() {
6
f6d65d2a806f Split const definitions into config/definition.sh
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
9 if !(which ${build_command} >& /dev/null;) then
f6d65d2a806f Split const definitions into config/definition.sh
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
10 echo ${build_command} not found
2
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
11 exit
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
12 fi
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
13 }
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
14
10
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
15 slide_name_from_full_path() {
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
16 echo $1 | sed -e 's/.[^.]*$/.html/'
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
17 }
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
18
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
19
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
20 need_build() {
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
21 slide_name=`slide_name_from_full_path $1`
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
22
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
23 if [ "${slide_name}" -ot "$1" ]; then
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
24 return 0 # if exist slide and newer than src, not needed.
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
25 fi
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
26
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
27 return 1
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
28 }
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
29
2
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
30 build() {
6
f6d65d2a806f Split const definitions into config/definition.sh
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
31 ${build_command} build $1 -o `dirname $1` ${build_template_option}
4
ab0287707334 Support exec build scirpt in any working directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
32 }
2
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
33
11
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
34 find_sources() {
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
35 find "$(dirname $0)/${slide_root_dirname}" -name "${build_target_filename}"
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
36 }
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
37
4
ab0287707334 Support exec build scirpt in any working directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
38 build_slides() {
11
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
39 target_list=`find_sources`
4
ab0287707334 Support exec build scirpt in any working directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
40 for target in ${target_list}; do
10
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
41 if need_build $target; then
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
42 build $target
455db4624bce Check update on build
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
43 fi
4
ab0287707334 Support exec build scirpt in any working directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
44 done
2
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
45 }
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
46
11
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
47 build_index() {
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
48 rm -f ${index_source_name}
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
49 touch ${index_source_name}
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
50
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
51 slide_list=`find_sources`
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
52 for slide in ${slide_list}; do
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
53 title=`head -5 $slide | grep "title[ ]*:" | sed -e 's/^title[ ]*:[ ]*//'`
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
54 date=`basename $(dirname $slide)`
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
55 echo "* ${date} : [$title]($(slide_name_from_full_path $slide))" >> ${index_source_name}
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
56 done
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
57
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
58 kramdown ${index_source_name} --template "$(dirname $0)/${index_template_file}" > ${index_file_name}
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
59 }
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
60
2
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
61
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
62 # main
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
63
635d8af3f795 Fix build script, check command
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
64 command_check
4
ab0287707334 Support exec build scirpt in any working directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
65 build_slides
11
9dca7035ab93 Generate index page for slides
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
66 build_index