Fix gen-special when an entity is commented out:
[automated_linux_from_scratch.git] / branches / 2.3 / blfs-tool
blob71fd4d90c18c9be4b71a993855fe2f0b3f12763a
1 #!/bin/bash
2 # $Id$
4 set -e
6 # From common/common-functions
7 # VT100 colors
8 declare -r BLACK=$'\e[1;30m'
9 declare -r DK_GRAY=$'\e[0;30m'
11 declare -r RED=$'\e[31m'
12 declare -r GREEN=$'\e[32m'
13 declare -r YELLOW=$'\e[33m'
14 declare -r BLUE=$'\e[34m'
15 declare -r MAGENTA=$'\e[35m'
16 declare -r CYAN=$'\e[36m'
17 declare -r WHITE=$'\e[37m'
19 declare -r OFF=$'\e[0m'
20 declare -r BOLD=$'\e[1m'
21 declare -r REVERSE=$'\e[7m'
22 declare -r HIDDEN=$'\e[8m'
24 declare -r tab_=$'\t'
25 declare -r nl_=$'\n'
27 declare -r DD_BORDER="${BOLD}==============================================================================${OFF}"
28 declare -r SD_BORDER="${BOLD}------------------------------------------------------------------------------${OFF}"
29 declare -r STAR_BORDER="${BOLD}******************************************************************************${OFF}"
31 # bold yellow > < pair
32 declare -r R_arrow=$'\e[1;33m>\e[0m'
33 declare -r L_arrow=$'\e[1;33m<\e[0m'
36 #>>>>>>>>>>>>>>>ERROR TRAPPING >>>>>>>>>>>>>>>>>>>>
37 #-----------------------#
38 simple_error() { # Basic error trap.... JUST DIE
39 #-----------------------#
40 # If +e then disable text output
41 if [[ "$-" =~ e ]]; then
42 echo -e "\n${RED}ERROR:${GREEN} basic error trapped!${OFF}\n" >&2
46 see_ya() {
47 echo -e "\n${L_arrow}${BOLD}jhalfs-trunk${R_arrow} exit${OFF}\n"
49 ##### Simple error TRAPS
50 # ctrl-c SIGINT
51 # ctrl-y
52 # ctrl-z SIGTSTP
53 # SIGHUP 1 HANGUP
54 # SIGINT 2 INTRERRUPT FROM KEYBOARD Ctrl-C
55 # SIGQUIT 3
56 # SIGKILL 9 KILL
57 # SIGTERM 15 TERMINATION
58 # SIGSTOP 17,18,23 STOP THE PROCESS
59 #####
60 set -e
61 trap see_ya 0
62 trap simple_error ERR
63 trap 'echo -e "\n\n${RED}INTERRUPT${OFF} trapped\n" && exit 2' 1 2 3 15 17 18 23
64 #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
66 # envars not sourced from configuration file
67 COMMON_DIR="common"
68 VERBOSITY=1
70 [[ $VERBOSITY > 0 ]] && echo -n "Loading config params from <configuration>..."
71 source configuration
72 [[ $? > 0 ]] && echo "file:configuration did not load.." && exit 1
73 [[ $VERBOSITY > 0 ]] && echo "OK"
75 [[ $VERBOSITY > 0 ]] && echo -n "Loading function <func_check_version.sh>..."
76 source $COMMON_DIR/libs/func_check_version.sh
77 [[ $? > 0 ]] && echo " function module did not load.." && exit 2
78 [[ $VERBOSITY > 0 ]] && echo "OK"
80 [[ $VERBOSITY > 0 ]] && echo -n "Loading function <func_validate_configs.sh>..."
81 source $COMMON_DIR/libs/func_validate_configs.sh
82 [[ $? > 0 ]] && echo " function module did not load.." && exit 2
83 [[ $VERBOSITY > 0 ]] && echo "OK"
84 [[ $VERBOSITY > 0 ]] && echo "${SD_BORDER}${nl_}"
86 # Be sure that we have a configuration file
87 [[ -z $BOOK_BLFS ]] && echo -e "\nNo BLFS configuration found. Please configure it." && exit 1
89 # Set default book version
90 BRANCH_ID=${BRANCH_ID:=development}
92 # Set the SVN tree
93 case $BRANCH_ID in
94 development ) TREE=trunk/BOOK ;;
95 *EDIT* ) echo " You forgot to set the branch or stable book version."
96 echo " Please rerun make and fix the configuration."
97 exit 2 ;;
98 branch-* ) TREE=branches/${BRANCH_ID#branch-}/BOOK ;;
99 * ) TREE=tags/${BRANCH_ID} ;;
100 esac
102 # Check for minimun dependencies versions
103 xsltprocVer=`xsltproc -V | head -n1 `
104 libxmlVer=$(echo $xsltprocVer | cut -d " " -f3)
105 libxsltVer=$(echo $xsltprocVer | cut -d " " -f5)
106 tidyVer=`tidy -V | cut -d " " -f9`
108 # Version numbers are packed strings not xx.yy.zz format.
109 check_version "2.06.20" "${libxmlVer:0:1}.${libxmlVer:1:2}.${libxmlVer:3:2}" "LIBXML2"
110 check_version "1.01.14" "${libxsltVer:0:1}.${libxsltVer:1:2}.${libxsltVer:3:2}" "LIBXSLT"
111 check_version "2004" "${tidyVer}" "TIDY"
113 XML_FILE="<?xml version='1.0' encoding='ISO-8859-1'?>
114 <?xml-stylesheet type='text/xsl' href='http://docbook.sourceforge.net/release/xsl/1.69.1/xhtml/docbook.xsl'?>
115 <!DOCTYPE article PUBLIC '-//OASIS//DTD DocBook XML V4.5//EN'
116 'http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd'>
117 <article>
118 <title>Test file</title>
119 <sect1>
120 <title>Some title</title>
121 <para>Some text</para>
122 </sect1>
123 </article>"
125 if `echo $XML_FILE | xmllint -noout -postvalid - 2>/dev/null` ; then
126 check_version "4.5" "4.5" "DocBook XML DTD"
127 else
128 echo "Warning: not found a working DocBook XML DTD 4.5 installation"
129 exit 2
132 # if `echo $XML_FILE | xsltproc --noout - 2>/dev/null` ; then
133 # check_version "1.69.1" "1.69.1" "DocBook XSL"
134 # else
135 # echo "Warning: not found a working DocBook XSL 1.69.1 installation"
136 # exit 2
137 # fi
139 echo "${SD_BORDER}${nl_}"
141 # For consistency with other books
142 validate_config
143 echo "${SD_BORDER}${nl_}"
144 echo -n "Are you happy with these settings? yes/no (no): "
145 read ANSWER
146 if [ x$ANSWER != "xyes" ] ; then
147 echo "${nl_}Rerun make to fix the configuration options.${nl_}"
148 exit 1
150 echo "${nl_}${SD_BORDER}${nl_}"
152 # Install the files
153 [[ ! -d $BLFS_ROOT ]] && mkdir -p $BLFS_ROOT
155 cp -r BLFS/* $BLFS_ROOT
156 cp -r menu $BLFS_ROOT
157 cp $COMMON_DIR/progress_bar.sh $BLFS_ROOT
158 cp README.BLFS $BLFS_ROOT
160 # Start the work
161 cd $BLFS_ROOT
163 # Clean-up
164 rm -rf libs/.svn
165 rm -rf menu/.svn
166 rm -rf menu/lxdialog/.svn
169 # Set some harcoded envars to their proper values
170 sed -i 's,blfs-xml,'$BLFS_XML',' update_book.sh libs/book.xsl
171 sed -i 's,tracking-dir,'$TRACKING_DIR',' update_book.sh gen-makefile.sh
173 # Fetch book sources and create packages and meta-packages dependencies files
174 if [[ -d $BLFS_XML ]] ; then
175 ./update_book.sh
176 else
177 ./update_book.sh get $BLFS_XML $TREE
180 # Run the menuconfig interface
181 make -B