/[clonezilla-sysresccd]/trunk/create-clonezilla-sysresccd/files/cust-menu
ViewVC logotype

Annotation of /trunk/create-clonezilla-sysresccd/files/cust-menu

Parent Directory Parent Directory | Revision Log Revision Log


Revision 93 - (hide annotations)
Fri Aug 13 08:30:37 2010 UTC (10 years, 8 months ago) by sng
File size: 9972 byte(s)
updating stuff for latest Clonezilla release

1 sng 47 #!/bin/bash
2     ##############################################################################
3     # #
4     # cust-menu, (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 #
9     # modify it under the terms of the GNU General Public License as published #
10     # by 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 along #
19     # with Clonezilla-SysRescCD. If not, see <http://www.gnu.org/licenses/>. #
20     # #
21     ##############################################################################
22    
23 sng 93 function findCFGfile(){
24 sng 47 if [ -e isolinux-restore-cd.cfg ];then
25 sng 93 templateCFG="./isolinux-restore-cd.cfg"
26 sng 47 elif [ -r /live/image/restorecd/isolinux-restore-cd.cfg ];then
27 sng 93 templateCFG="/live/image/restorecd/isolinux-restore-cd.cfg"
28 sng 47 elif [ -r /tmp/restorecd/isolinux-restore-cd.cfg ];then
29 sng 93 templateCFG="/tmp/restorecd/isolinux-restore-cd.cfg"
30     elif [ -r /restorecd/isolinux-restore-cd.cfg ];then
31     templateCFG="/restorecd/isolinux-restore-cd.cfg"
32 sng 47 else
33     whiptail --backtitle Clonezilla-SysRescCD --title " Execution Error " --msgbox "This is not a stand-alone script and should not be executed by the command line
34    
35     This script will terminate now" 0 0
36     exit 1
37     fi
38     }
39    
40 sng 93 function find2RamCFGfile(){
41 sng 47 if [ -e isolinux-restore-cd-ram.cfg ];then
42 sng 93 templateCFG="./isolinux-restore-cd-ram.cfg"
43 sng 47 elif [ -r /live/image/restorecd/isolinux-restore-cd-ram.cfg ];then
44 sng 93 templateCFG="/live/image/restorecd/isolinux-restore-cd-ram.cfg"
45 sng 47 elif [ -r /tmp/restorecd/isolinux-restore-cd-ram.cfg ];then
46 sng 93 templateCFG="/tmp/restorecd/isolinux-restore-cd-ram.cfg"
47     elif [ -r /restorecd/isolinux-restore-cd-ram.cfg ];then
48     templateCFG="/restorecd/isolinux-restore-cd-ram.cfg"
49 sng 47 else
50     whiptail --backtitle Clonezilla-SysRescCD --title " Execution Error " --msgbox "This is not a stand-alone script and should not be executed by the command line
51    
52     This script will terminate now" 0 0
53     exit 1
54     fi
55     }
56    
57 sng 93 function import_parameters_to_cfg(){
58     # -> $1 - template cfg file
59     # <- $2 - final cfg file
60     local outCFG="$2".tmp
61     # read parameters inserted by the user
62     # they are found in the isolinux.cfg file
63     # created by Clonezilla Live
64     local paramLine=`grep 'append' $2 | sed '2,$d'`
65     local ocs_live_extra_param="$(echo "$paramLine" | sed 's|.*ocs_live_extra_param="\([^"]*\)".*|\1|')"
66     local ocs_live_keymap="$(echo "$paramLine" | sed 's|.*ocs_live_keymap="\([^"]*\)".*|\1|')"
67     local ocs_lang="$(echo "$paramLine" | sed 's|.*ocs_lang="\([^"]*\)".*|\1|')"
68 sng 47
69 sng 93 # replace with current values
70     sed "s|ocs_live_extra_param=\"[^\"]*\"|ocs_live_extra_param=\"$ocs_live_extra_param\"|
71     s|ocs_live_keymap=\"[^\"]*\"|ocs_live_keymap=\"$ocs_live_keymap\"|
72     s|ocs_lang=\"[^\"]*\"|ocs_lang=\"$ocs_lang\"|
73     " $1 > $outCFG && mv $outCFG $2
74     }
75    
76     function copy_PNG_SYSLINUX(){
77     SYSLINUX_FILE=`echo $finalCFG | sed 's{isolinux{syslinux{g'`
78     SYS=`dirname $finalCFG`
79     sed 's{noprompt {{g' $finalCFG > $SYSLINUX_FILE
80     cp /restorecd/ocswp.png $SYS
81     cp /restorecd/ocswp.png `echo $SYS | sed 's{isolinux{syslinux{g'`
82     }
83    
84    
85     type=ISO
86    
87 sng 47 # Parse command-line options
88     while [ $# -gt 0 ]; do
89     case "$1" in
90     -publisher)
91     shift
92     if [ -z "$(echo $1 |grep ^-.)" ]; then
93     # skip the -xx option, in case
94     isoPublisher="$1"
95     shift
96     fi
97     # [ -z "$target_iso_prefix" ] && USAGE && exit 1
98     ;;
99     -V)
100     shift
101     if [ -z "$(echo $1 |grep ^-.)" ]; then
102     # skip the -xx option, in case
103     isoLabel="$1"
104     shift
105     fi
106     # [ -z "$target_iso_prefix" ] && USAGE && exit 1
107     ;;
108 sng 93 -z)
109     type=ZIP
110     shift
111     ;;
112     -o)
113     ORIGINAL_INSERT_MODE=y
114     shift
115     ;;
116 sng 47 *)
117     break;
118     ;;
119     esac
120     done
121    
122    
123    
124    
125    
126     # # #
127     # # #
128     # # # the CFG file can be found as
129 sng 93 # # # /tmp/ocs_isosys*/isolinux/isolinux.cfg
130 sng 47 # # # or
131 sng 93 # # # /home/partimag/ocs_isosys*/isolinux/isolinux.cfg
132 sng 47 # # #
133     # # #
134 sng 84
135 sng 93 if [ "$type" = ISO ];then
136 sng 47 type=ISO
137 sng 93 finalCFG=/tmp/ocs_isosys*/isolinux/isolinux.cfg
138     finalCFG=`find /tmp -name isolinux.cfg`
139 sng 47 else
140     type=ZIP
141 sng 93 finalCFG=/home/partimag/ocs_isosys*/isolinux/isolinux.cfg
142     finalCFG=`find /home/partimag -name isolinux.cfg`
143 sng 47 fi
144    
145 sng 93 if [ ! -e $finalCFG ];then
146     dialog --backtitle Clonezilla-SysRescCD --title " File not found " --msgbox " The original cfg file ($finalCFG) does not exit!!!
147    
148     This script will terminate now" 0 0
149 sng 47
150 sng 93 exit 1
151     fi
152    
153     # Check if -s has been used (only iso)
154     if [ -n "$ORIGINAL_INSERT_MODE" ];then
155     findCFGfile
156     import_parameters_to_cfg $templateCFG $finalCFG
157     copy_PNG_SYSLINUX
158     exit
159     fi
160    
161    
162 sng 47 whiptail --backtitle Clonezilla-SysRescCD --title ' Customization section ' --yesno "Do you want to further customize the $type file?
163    
164     You will have the chance to change the Title and Text of the Boot Screen, and set the Default menu item and Boot Delay" 11 60
165    
166     if [ $? -eq 1 ];then
167 sng 93 CUSTOMIZE=no
168 sng 47 fi
169    
170    
171     if [ "$1" = "prog_only" ];then
172 sng 93 find2RamCFGfile
173 sng 47 else
174 sng 93 findCFGfile
175 sng 47 fi
176 sng 93
177    
178     import_parameters_to_cfg $templateCFG $finalCFG
179    
180    
181     ##############################################################################
182     #
183     # Menu Customization
184     #
185     ##############################################################################
186    
187     if [ -z "$CUSTOMIZE" ];then
188    
189 sng 47 # DVD Title
190 sng 93 whiptail --backtitle Clonezilla-SysRescCD --title ' Menu Title ' --inputbox 'Insert the Title for the menu' 8 60 "$(grep 'MENU TITLE' $finalCFG | sed 's|^ *MENU TITLE *||' | sed 's| *||g')" 2>/tmp/answer
191 sng 47 menuTitle=`cat /tmp/answer`
192    
193     rm /tmp/answer 2>/dev/null
194    
195    
196    
197     # Item caption
198     whiptail --backtitle Clonezilla-SysRescCD --title ' Menu Items Caption ' --inputbox 'Insert the Caption for each manu item' 8 60 'Clonezilla Live' 2>/tmp/answer
199     itemCaption=`cat /tmp/answer`
200    
201     rm /tmp/answer 2>/dev/null
202    
203    
204     #
205     whiptail --backtitle Clonezilla-SysRescCD --title ' Boot delay ' --inputbox 'Insert the boot delay in seconds' 8 60 30 2>/tmp/answer
206     bootDelay=`cat /tmp/answer`
207     if [ "$bootDelay" = "30" ];then
208     bootDelay=''
209     fi
210     rm /tmp/answer 2>/dev/null
211    
212    
213    
214    
215     #
216     # Default boot item
217     #
218    
219    
220    
221     echo "whiptail --backtitle Clonezilla-SysRescCD --title ' Default Boot Item ' --menu 'Select
222     Item 6 - Boot from the first hard disk
223     to maintain current setting
224     ' 0 60 0 \\" > /tmp/q.$$
225    
226 sng 93 grep 'MENU LABEL' "$templateCFG" | sed '/---/d' | sed 's|^.*MENU LABEL *||' | sed "s|^|'|" | sed "s|$|'|" | awk '{print NR " " ""$0"" " "}' | tr -d '\n$' > /tmp/qq.$$
227 sng 47
228     oldCaption=`sed 's|^1 *.||' /tmp/qq.$$ | sed "s| *-.*||"`
229    
230     if [ -n "$itemCaption" ];then
231     sed "s/$oldCaption/$itemCaption/g" /tmp/qq.$$ >> /tmp/q.$$
232     else
233     cat /tmp/qq.$$ >> /tmp/q.$$
234     fi
235    
236     echo "2>/tmp/answer" >> /tmp/q.$$
237     rm /tmp/qq.$$
238     . /tmp/q.$$
239     rm /tmp/q.$$
240    
241     defItem=`cat /tmp/answer`
242     if [ $defItem -gt 6 ];then ((defItem++));fi
243 sng 93 ((defItem++))
244     #if [ $defItem -eq 6 ];then defItem='';fi
245     if [ $defItem -eq 7 ];then defItem='';fi
246 sng 47 rm /tmp/answer 2>/dev/null
247    
248    
249     # Boot Screen Image
250     whiptail --backtitle Clonezilla-SysRescCD --title ' Boot Screen Image ' --inputbox 'Insert the Image to be displayed on the Boot Screen
251    
252     The file must be a 640x480 32-bit png image' 0 60 ocswp.png 2>/tmp/answer
253     bootImage=`cat /tmp/answer`
254     if [ "$bootImage" = "ocswp.png" ];then
255     bootImage=''
256     fi
257     rm /tmp/answer 2>/dev/null
258    
259    
260    
261    
262     if [ "$type" = "ISO" ];then
263     # ISO Label
264     whiptail --backtitle Clonezilla-SysRescCD --title ' ISO Label ' --inputbox 'Insert the Volume Label of the ISO file' 0 60 "$isoLabel" 2>/tmp/answer
265     isoLabelTMP=`cat /tmp/answer`
266     if [ -z "$isoLabelTMP" ];then
267     isoLabelTMP="$isoLabel"
268     fi
269     rm /tmp/answer 2>/dev/null
270    
271    
272    
273     # Publisher ID
274     whiptail --backtitle Clonezilla-SysRescCD --title ' Publisher ID ' --inputbox 'Insert the Publisher ID of the ISO file' 0 60 "$isoPublisher" 2>/tmp/answer
275     isoPublisherTMP=`cat /tmp/answer`
276     if [ -z "$isoPublisherTMP" ];then
277     isoPublisherTMP="$isoPublisher"
278     fi
279     rm /tmp/answer 2>/dev/null
280    
281     echo "$isoLabelTMP" > /tmp/isodata
282     echo "$isoPublisherTMP" >> /tmp/isodata
283     fi
284    
285    
286    
287    
288    
289 sng 93 ############################################################################
290     #
291     # Insert user data to file
292     #
293     ############################################################################
294 sng 47
295    
296    
297     if [ -n "$menuTitle" ];then
298 sng 93 sed "s|^ *MENU TITLE .*|MENU TITLE $menuTitle|" $finalCFG > $finalCFG.$$ && mv $finalCFG.$$ $finalCFG
299 sng 47 fi
300    
301     if [ -n "$itemCaption" ];then
302 sng 93 sed "s|MENU LABEL *$oldCaption *-|MENU LABEL $itemCaption -|" $finalCFG > $finalCFG.$$ && mv $finalCFG.$$ $finalCFG
303 sng 47 fi
304    
305     if [ -n "$bootDelay" ];then
306 sng 93 sed "s|[tT][iI][mM][eE][oO][uU][tT] .*| timeout "$bootDelay"0|" $finalCFG > $finalCFG.$$ && mv $finalCFG.$$ $finalCFG
307 sng 47 fi
308    
309     if [ -n "$defItem" ];then
310 sng 93 sed 's|^ *MENU DEFAULT| # MENU DEFAULT|' $finalCFG > $finalCFG.$$ && mv $finalCFG.$$ $finalCFG
311     addIt=`grep -n 'MENU DEFAULT' $finalCFG | sed 's|:.*||' | sed -n ""$defItem"p"`
312     sed ""$addIt"s|# *MENU *DEFAULT|MENU DEFAULT|" $finalCFG > $finalCFG.$$ && mv $finalCFG.$$ $finalCFG
313 sng 47 fi
314    
315    
316     if [ -n "$bootImage" ] && [ -e "$bootImage" ] ;then
317     bootImg="$bootImage"
318     fi
319    
320    
321 sng 93 fi
322 sng 47
323 sng 93 copy_PNG_SYSLINUX
324 sng 47

Properties

Name Value
svn:executable *

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26