/[clonezilla-sysresccd]/trunk/www/working/scripts/update-boot-params
ViewVC logotype

Contents of /trunk/www/working/scripts/update-boot-params

Parent Directory Parent Directory | Revision Log Revision Log


Revision 44 - (show annotations)
Wed May 19 11:49:25 2010 UTC (13 years, 10 months ago) by sng
File size: 8200 byte(s)
Fixing scripts and 'template' html page

1 #!/bin/bash
2 ##############################################################################
3 #
4 # update-boot-params, (C) 2007-2010 S. Georgaras <sng@hellug.gr>
5 #
6 # This file is part of Clonezilla-SysRescCD.
7 #
8 # Clonezilla-SysRescCD is free software: you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation, either version 2 of the License, or
11 # (at your option) any later version.
12 #
13 # Clonezilla-SysRescCD is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with Clonezilla-SysRescCD. If not, see <http://www.gnu.org/licenses/>.
20 #
21 ##############################################################################
22
23
24 ##############################################################################
25 #
26 # Script to update the boot parameters sections of boor-params.html
27 #
28 # To be executed BEFORE 2site script
29 #
30 # In order to execute this script, type the following command
31 #
32 # ./update-boot-params
33 #
34 #
35 # ** NOTE **
36 # In order to revert to the previous (svn) version, (in case something
37 # goes wrong with this script), execute the commands:
38 # rm boot-params.html
39 # svn up
40 #
41
42 ##############################################################################
43 # Configuration for SystemRescueCD documentation section
44 #
45 # This will:
46 # a. remove any text between the line starting with
47 # <!--SysRescCD-Documentation--> ( = tokenStart[0] )
48 # and the first </div> TAG ( = tokenEnd[0] )
49 # b. add the text from the original site after the line starting with
50 # <!--SysRescCD-Documentation--> ( = tokenStart[0] )
51 #
52 # In order for this to work, inspect the HTML code on page
53 # http://www.sysresccd.org/Sysresccd-manual-en_Booting_the_CD-ROM
54 # select the starting and ending line of code you want to include in
55 # boot-params.html and initialize the variables startTAG[0] and endTAG[0]
56 # accordingly.
57 #
58 # Use variables sectionPrepend[0],sectionAppend[0] to prepend,append any text
59 # snippet to the section.
60 # Example:
61 # Assumming the documentation section on the original page ends like this
62 # <li>A line of text
63 # </li>
64 # </ul>
65 # </p>
66 # We set startTAG[0]='<li>A line of text', but this way we also delete
67 # the closing TAGS
68 # So we set sectionAppend[0]='</li>
69 # </ul>
70 # </p>'
71 # and we get them back
72 #
73 # Use name[0] to identify the section, and webPage[0] for the URL of the
74 # original documentation
75 #
76 # Finally, set sedScript[0] to any specific sed script
77 #
78 # ** NOTE **
79 # The above scheme can be used for any other documentation section, i.e.
80 # kernels (profile 1), initramfs manual (profile 2), Clonezilla (profile
81 # 3), etc.
82 #
83 #
84 name[0]=SystemRescueCD
85 webPage[0]='http://www.sysresccd.org/Sysresccd-manual-en_Booting_the_CD-ROM'
86 startTAG[0]='<a name="General_boot_options"'
87 endTAG[0]='<.li><li><b>ar_nowait<.b>: do not wait for a keypress after the autorun script have been executed.'
88 sectionPrepend[0]=''
89 sectionAppend[0]='</li></ul>
90 </p>'
91 tokenStart[0]='<!--SysRescCD-Documentation-->'
92 tokenEnd[0]='</div>'
93 sedScript[0]='
94 s{<h[23]>{<p><b><br>{g
95 s{<\/h[23]>{</b></p>{g
96 1s{<p><b><br>{<p><b>{
97 s{href="/{href="http://www.sysresccd.org/{g
98 s{<span[^>]*>{{
99 s{<.span>{{
100 '
101
102 # Configuration for kernels documentation section
103 name[1]=kernels
104 webPage[1]=''
105 startTAG[1]='Default for 32bit systems,'
106 endTAG[1]='an alternative kernel for 64bit systems.'
107 sectionPrepend[1]=''
108 sectionAppend[1]='</li>'
109 tokenStart[1]='<!--kernels-Documentation-->'
110 tokenEnd[1]='</ul>'
111 sedScript[1]='
112 s{^<ul>{{
113 s{^</ul>{{
114 '
115
116 # Configuration for initramfs documentation section
117 name[2]=initramfs
118 webPage[2]='http://clonezilla.org/clonezilla-live/live-initramfs.en.7.txt'
119 startTAG[2]=''
120 endTAG[2]=''
121 sectionPrepend[2]='<a name="live-initramfs"></a><div class="otherpage" style="overflow: auto;"><pre>'
122 sectionAppend[2]=''
123 tokenStart[2]='<!--initramfs-Documentation-->'
124 tokenEnd[2]='</pre>'
125 sedScript[2]='
126 s{<{\&lt;{g
127 s{>{\&gt;{g
128 s{&{\&amp;{g
129 s{\[HOSTNAME\]:\[DEVICE\]:{\[HOSTNAME\]:\n \[DEVICE\]:{g
130 s!\*\*LAYOUT\*\*, \(.\)kvariant!\*\*LAYOUT\*\*,\n \1kvariant!
131 s{modelcode}=\*\*CODE\*\*{modelcode}=\n \*\*CODE\*\*{
132 /link:/{
133 s{\[{+{g
134 s{\]{_{g
135 s{link:\([^+]*\)+\([^_]*\)_{<a href="\1" target="_blank">\2</a>{g
136 }
137 '
138
139 # Configuration for Clonezilla documentation section
140 name[3]=Clonezilla
141 webPage[3]='http://clonezilla.org/clonezilla-live/doc/fine-print.php?path=./99_Misc/00_live-initramfs-manual.doc'
142 startTAG[3]='Clonezilla live is based on'
143 endTAG[3]='root file system filesystem.squashfs.'
144 sectionPrepend[3]=''
145 sectionAppend[3]='</ul>
146 </ol>'
147 tokenStart[3]='<!--Clonezilla-Documentation-->'
148 tokenEnd[3]='<hr>'
149 sedScript[3]='
150 s{<tr>{{g
151 s{<td[^>]*>{{g
152 s{<small>{{g
153 s{<.tr>{{g
154 s{<.td[^>]*>{{g
155 s{You can refer to this <a [^>]*>\([^>]*\)</a>{You can refer to this <a href="#live-initramfs">\1</a>{
156 1s{^{<div class="otherpage">{
157 '
158
159
160
161 ##############################################################################
162 # funtion to make all happen
163 #
164 function updateContent(){
165 echo "Updating ${name[$1]} documentation"
166 # Fix varaibles for sed (sed syntax)
167 tokenEndReplace=`echo "${tokenEnd[$1]}" | sed 's|/|\\/|'`
168 tokenEnd=`echo "${tokenEnd[$1]}" | sed 's|/|\.|'`
169
170 # Download original web page/file
171 if [ -n "${webPage[$1]}" ];then
172 downloadFile $1
173 else
174 if [ ! -e /tmp/webPage.$$ ];then
175 downloadFile $1
176 fi
177 fi
178
179 echo -n " Adding web content to file... "
180 # Extract and format content from original page
181 # if startTAG[$1] is empty, just copy the page
182 # new content file: /tmp/tmp.$$
183 if [ -n "${startTAG[$1]}" ];then
184 sed -n "/${startTAG[$1]}/ , /${endTAG[$1]}/ p" /tmp/webPage.$$ | sed '
185 s{/[tT][aA][rR][gG][eE][tT]="[^"]"{{g
186 s{[aA] [hH][rR][eE][fF]={a target="_blank" href={g
187 s{/[tT][aA][rR][gG][eE][tT]="[^"]"{{g
188 s{target=_blank{{g
189 s{[aA] [hH][rR][eE][fF]={a target="_blank" href={g
190 ' > /tmp/tmp.$$
191 else
192 cp /tmp/webPage.$$ /tmp/tmp.$$
193 fi
194
195 # Apply page specific sed script to new content
196 if [ -n "${sedScript[$1]}" ];then
197 echo "${sedScript[$1]}" > /tmp/sedScript.$$
198 sed -f /tmp/sedScript.$$ /tmp/tmp.$$ > /tmp/tmp-new.$$ && mv /tmp/tmp-new.$$ /tmp/tmp.$$
199 rm /tmp/sedScript.$$
200 fi
201
202 # Apply prepend text to new content
203 if [ -n "${sectionPrepend[$1]}" ];then
204 echo "${sectionPrepend[$1]}" > /tmp/tmp-new.$$
205 cat /tmp/tmp.$$ >> /tmp/tmp-new.$$
206 mv /tmp/tmp-new.$$ /tmp/tmp.$$
207 fi
208
209 # Applly append text to new content
210 if [ -n "${sectionAppend[$1]}" ];then
211 echo "${sectionAppend[$1]}" >> /tmp/tmp.$$
212 fi
213
214
215 # remove old content form current page
216 sed "/${tokenStart[$1]}/!b
217 :a
218 /"${tokenEnd}"/!{
219 N
220 ba
221 }
222 s[${tokenStart[$1]}.*${tokenEnd}[${tokenStart[$1]}\n${tokenEndReplace}[" boot-params.html > /tmp/page.$$
223
224 # insert new content to current page
225 if [ -n "$createTamplatePage" ];then
226 cp /tmp/page.$$ boot-params.html
227 else
228 sed "/${tokenStart[$1]}/r /tmp/tmp.$$" < /tmp/page.$$ > boot-params.html
229 fi
230
231 # clean up
232 rm /tmp/page.$$ /tmp/tmp.$$ /tmp/tmp-new.$$ 2>/dev/null
233 echo 'done'
234 }
235
236
237 ##############################################################################
238 # funtion to download the original web page
239 #
240 function downloadFile(){
241 echo -n " Downloading web page... "
242 rm /tmp/webPage.$$ 2>/dev/null
243 wget -q "${webPage[$1]}" -O /tmp/webPage.$$ && echo 'done' || {
244 echo "
245 Error downloading original web page"
246 exit 1
247 }
248 }
249
250 ##############################################################################
251 # funtion clean up things when exiting
252 #
253 function cleanUp(){
254 rm /tmp/webPage.$$
255 }
256
257
258
259 ##############################################################################
260 #
261 # Script starts here
262 #
263 ##############################################################################
264 cd ..
265 updateContent 0 || {
266 cleanUp;exit 1
267 }
268 updateContent 1 || {
269 cleanUp;exit 2
270 }
271
272 updateContent 2 || {
273 cleanUp;exit 3
274 }
275 updateContent 3 || {
276 cleanUp;exit 4
277 }
278
279 cleanUp

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26