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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 44 - (hide 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 sng 39 #!/bin/bash
2 sng 42 ##############################################################################
3 sng 39 #
4 sng 42 # 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 sng 41 # Script to update the boot parameters sections of boor-params.html
27 sng 39 #
28 sng 42 # To be executed BEFORE 2site script
29 sng 39 #
30     # In order to execute this script, type the following command
31     #
32 sng 42 # ./update-boot-params
33 sng 39 #
34     #
35 sng 41 # ** NOTE **
36 sng 42 # In order to revert to the previous (svn) version, (in case something
37     # goes wrong with this script), execute the commands:
38 sng 39 # rm boot-params.html
39 sng 41 # svn up
40 sng 39 #
41    
42 sng 42 ##############################################################################
43 sng 39 # Configuration for SystemRescueCD documentation section
44     #
45     # This will:
46     # a. remove any text between the line starting with
47 sng 41 # <!--SysRescCD-Documentation--> ( = tokenStart[0] )
48     # and the first </div> TAG ( = tokenEnd[0] )
49 sng 39 # b. add the text from the original site after the line starting with
50 sng 41 # <!--SysRescCD-Documentation--> ( = tokenStart[0] )
51 sng 39 #
52 sng 42 # 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 sng 39 #
58 sng 42 # Use variables sectionPrepend[0],sectionAppend[0] to prepend,append any text
59     # snippet to the section.
60 sng 39 # Example:
61 sng 41 # Assumming the documentation section on the original page ends like this
62 sng 39 # <li>A line of text
63     # </li>
64     # </ul>
65     # </p>
66 sng 42 # We set startTAG[0]='<li>A line of text', but this way we also delete
67     # the closing TAGS
68 sng 41 # So we set sectionAppend[0]='</li>
69     # </ul>
70     # </p>'
71 sng 39 # and we get them back
72     #
73 sng 42 # Use name[0] to identify the section, and webPage[0] for the URL of the
74     # original documentation
75 sng 39 #
76 sng 41 # Finally, set sedScript[0] to any specific sed script
77 sng 39 #
78 sng 41 # ** NOTE **
79 sng 42 # 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 sng 39 #
83     #
84 sng 41 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 sng 44 s{<span[^>]*>{{
99     s{<.span>{{
100 sng 41 '
101 sng 39
102 sng 41 # 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 sng 44 sectionPrepend[1]=''
108     sectionAppend[1]='</li>'
109 sng 41 tokenStart[1]='<!--kernels-Documentation-->'
110     tokenEnd[1]='</ul>'
111     sedScript[1]='
112     s{^<ul>{{
113 sng 44 s{^</ul>{{
114 sng 39 '
115    
116 sng 41 # 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 sng 44 sectionPrepend[2]='<a name="live-initramfs"></a><div class="otherpage" style="overflow: auto;"><pre>'
122 sng 41 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 sng 39 }
137 sng 41 '
138 sng 39
139 sng 41 # 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 sng 39 s{<tr>{{g
151     s{<td[^>]*>{{g
152     s{<small>{{g
153     s{<.tr>{{g
154     s{<.td[^>]*>{{g
155 sng 41 s{You can refer to this <a [^>]*>\([^>]*\)</a>{You can refer to this <a href="#live-initramfs">\1</a>{
156 sng 39 1s{^{<div class="otherpage">{
157 sng 41 '
158 sng 39
159    
160    
161 sng 42 ##############################################################################
162 sng 41 # funtion to make all happen
163 sng 39 #
164 sng 41 function updateContent(){
165     echo "Updating ${name[$1]} documentation"
166 sng 44 # Fix varaibles for sed (sed syntax)
167 sng 41 tokenEndReplace=`echo "${tokenEnd[$1]}" | sed 's|/|\\/|'`
168     tokenEnd=`echo "${tokenEnd[$1]}" | sed 's|/|\.|'`
169 sng 44
170     # Download original web page/file
171 sng 41 if [ -n "${webPage[$1]}" ];then
172     downloadFile $1
173     else
174     if [ ! -e /tmp/webPage.$$ ];then
175     downloadFile $1
176     fi
177     fi
178 sng 39
179 sng 41 echo -n " Adding web content to file... "
180 sng 44 # Extract and format content from original page
181     # if startTAG[$1] is empty, just copy the page
182     # new content file: /tmp/tmp.$$
183 sng 41 if [ -n "${startTAG[$1]}" ];then
184 sng 44 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 sng 41 else
192     cp /tmp/webPage.$$ /tmp/tmp.$$
193 sng 39 fi
194 sng 41
195 sng 44 # Apply page specific sed script to new content
196 sng 41 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 sng 44 # Apply prepend text to new content
203 sng 41 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 sng 44
209     # Applly append text to new content
210 sng 41 if [ -n "${sectionAppend[$1]}" ];then
211     echo "${sectionAppend[$1]}" >> /tmp/tmp.$$
212     fi
213 sng 44
214    
215     # remove old content form current page
216 sng 41 sed "/${tokenStart[$1]}/!b
217 sng 39 :a
218 sng 41 /"${tokenEnd}"/!{
219 sng 39 N
220     ba
221     }
222 sng 41 s[${tokenStart[$1]}.*${tokenEnd}[${tokenStart[$1]}\n${tokenEndReplace}[" boot-params.html > /tmp/page.$$
223 sng 44
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 sng 41 rm /tmp/page.$$ /tmp/tmp.$$ /tmp/tmp-new.$$ 2>/dev/null
233 sng 39 echo 'done'
234 sng 41 }
235 sng 39
236    
237 sng 42 ##############################################################################
238 sng 41 # funtion to download the original web page
239     #
240     function downloadFile(){
241     echo -n " Downloading web page... "
242 sng 44 rm /tmp/webPage.$$ 2>/dev/null
243 sng 41 wget -q "${webPage[$1]}" -O /tmp/webPage.$$ && echo 'done' || {
244     echo "
245     Error downloading original web page"
246 sng 42 exit 1
247 sng 41 }
248 sng 39 }
249    
250 sng 42 ##############################################################################
251 sng 41 # funtion clean up things when exiting
252     #
253     function cleanUp(){
254     rm /tmp/webPage.$$
255     }
256 sng 39
257    
258 sng 41
259 sng 42 ##############################################################################
260 sng 39 #
261 sng 42 # Script starts here
262 sng 39 #
263 sng 42 ##############################################################################
264     cd ..
265 sng 41 updateContent 0 || {
266 sng 42 cleanUp;exit 1
267 sng 41 }
268     updateContent 1 || {
269 sng 42 cleanUp;exit 2
270 sng 41 }
271 sng 44
272 sng 41 updateContent 2 || {
273 sng 42 cleanUp;exit 3
274 sng 41 }
275     updateContent 3 || {
276 sng 42 cleanUp;exit 4
277 sng 41 }
278 sng 39
279 sng 41 cleanUp

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26