/[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 47 - (hide annotations)
Thu May 20 12:12:53 2010 UTC (11 years, 5 months ago) by sng
File size: 8873 byte(s)
adding release scripts

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

Properties

Name Value
svn:executable *

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26