Removing exporting of variables for reviewed options in the cmdline function, not...
[live-boot-grml.git] / scripts / boot / cmdline.sh
1 #!/bin/sh
2
3 #set -e
4
5 Cmdline ()
6 {
7         for _PARAMETER in ${_CMDLINE}
8         do
9                 case "${_PARAMETER}" in
10                         live-boot.read-only|read-only)
11                                 LIVE_READ_ONLY="true"
12                                 ;;
13
14                         live-boot.swapon)
15                                 LIVE_SWAPON="true"
16                                 ;;
17
18                         live-boot.verify-checksums|verify-checksums)
19                                 LIVE_VERIFY_CHECKSUMS="true"
20                                 ;;
21
22                         # Special options
23                         live-boot.debug|debug)
24                                 LIVE_DEBUG="true"
25                                 ;;
26
27
28                         # parameters below need review (FIXME)
29                         skipconfig)
30                                 NOFASTBOOT="true"
31                                 NOFSTAB="true"
32                                 NONETWORKING="true"
33
34                                 export NOFASTBOOT NOFSTAB NONETWORKING
35                                 ;;
36
37                         BOOTIF=*)
38                                 BOOTIF="${x#BOOTIF=}"
39                                 ;;
40
41                         dhcp)
42                                 # Force dhcp even while netbooting
43                                 # Use for debugging in case somebody works on fixing dhclient
44                                 DHCP="true";
45                                 export DHCP
46                                 ;;
47
48                         nodhcp)
49                                 DHCP=""
50                                 export DHCP
51                                 ;;
52
53                         ethdevice=*)
54                                 DEVICE="${ARGUMENT#ethdevice=}"
55                                 ETHDEVICE="${DEVICE}"
56                                 export DEVICE ETHDEVICE
57                                 ;;
58
59                         ethdevice-timeout=*)
60                                 ETHDEV_TIMEOUT="${ARGUMENT#ethdevice-timeout=}"
61                                 export ETHDEV_TIMEOUT
62                                 ;;
63
64                         fetch=*)
65                                 FETCH="${ARGUMENT#fetch=}"
66                                 export FETCH
67                                 ;;
68
69                         findiso=*)
70                                 FINDISO="${ARGUMENT#findiso=}"
71                                 export FINDISO
72                                 ;;
73
74                         ftpfs=*)
75                                 FTPFS="${ARGUMENT#ftpfs=}"
76                                 export FTPFS
77                                 ;;
78
79                         httpfs=*)
80                                 HTTPFS="${ARGUMENT#httpfs=}"
81                                 export HTTPFS
82                                 ;;
83
84                         iscsi=*)
85                                 ISCSI="${ARGUMENT#iscsi=}"
86                                 #ip:port - separated by ;
87                                 ISCSI_PORTAL="${ISCSI%;*}"
88                                 if echo "${ISCSI_PORTAL}" | grep -q , ; then
89                                         ISCSI_SERVER="${ISCSI_PORTAL%,*}"
90                                         ISCSI_PORT="${ISCSI_PORTAL#*,}"
91                                 fi
92                                 #target name
93                                 ISCSI_TARGET="${ISCSI#*;}"
94                                 export ISCSI ISCSI_PORTAL ISCSI_TARGET ISCSI_SERVER ISCSI_PORT
95                                 ;;
96
97                         isofrom=*|fromiso=*)
98                                 FROMISO="${ARGUMENT#*=}"
99                                 export FROMISO
100                                 ;;
101
102                         ignore_uuid)
103                                 IGNORE_UUID="true"
104                                 export IGNORE_UUID
105                                 ;;
106
107                         ip=*)
108                                 STATICIP="${ARGUMENT#ip=}"
109
110                                 if [ -z "${STATICIP}" ]
111                                 then
112                                         STATICIP="frommedia"
113                                 fi
114
115                                 export STATICIP
116                                 ;;
117
118                         live-media=*|bootfrom=*)
119                                 LIVE_MEDIA="${ARGUMENT#*=}"
120                                 export LIVE_MEDIA
121                                 ;;
122
123                         live-media-encryption=*|encryption=*)
124                                 LIVE_MEDIA_ENCRYPTION="${ARGUMENT#*=}"
125                                 export LIVE_MEDIA_ENCRYPTION
126                                 ;;
127
128                         live-media-offset=*)
129                                 LIVE_MEDIA_OFFSET="${ARGUMENT#live-media-offset=}"
130                                 export LIVE_MEDIA_OFFSET
131                                 ;;
132
133                         live-media-path=*)
134                                 LIVE_MEDIA_PATH="${ARGUMENT#live-media-path=}"
135                                 export LIVE_MEDIA_PATH
136                                 ;;
137
138                         live-media-timeout=*)
139                                 LIVE_MEDIA_TIMEOUT="${ARGUMENT#live-media-timeout=}"
140                                 export LIVE_MEDIA_TIMEOUT
141                                 ;;
142
143                         module=*)
144                                 MODULE="${ARGUMENT#module=}"
145                                 export MODULE
146                                 ;;
147
148                         netboot=*)
149                                 NETBOOT="${ARGUMENT#netboot=}"
150                                 export NETBOOT
151                                 ;;
152
153                         nfsopts=*)
154                                 NFSOPTS="${ARGUMENT#nfsopts=}"
155                                 export NFSOPTS
156                                 ;;
157
158                         nfsoverlay=*)
159                                 NFS_COW="${ARGUMENT#nfsoverlay=}"
160                                 export NFS_COW
161                                 ;;
162
163                         nofastboot)
164                                 NOFASTBOOT="true"
165                                 export NOFASTBOOT
166                                 ;;
167
168                         nofstab)
169                                 NOFSTAB="true"
170                                 export NOFSTAB
171                                 ;;
172
173                         nonetworking)
174                                 NONETWORKING="true"
175                                 export NONETWORKING
176                                 ;;
177
178                         ramdisk-size=*)
179                                 ramdisk_size="${ARGUMENT#ramdisk-size=}"
180                                 ;;
181
182                         persistence)
183                                 PERSISTENCE="true"
184                                 export PERSISTENCE
185                                 ;;
186
187                         persistence-encryption=*)
188                                 PERSISTENCE_ENCRYPTION="${ARGUMENT#*=}"
189                                 export PERSISTENCE_ENCRYPTION
190                                 ;;
191
192                         persistence-media=*)
193                                 PERSISTENCE_MEDIA="${ARGUMENT#*=}"
194                                 export PERSISTENCE_MEDIA
195                                 ;;
196                         persistence-method=*)
197                                 PERSISTENCE_METHOD="${ARGUMENT#*=}"
198                                 export PERSISTENCE_METHOD
199                                 ;;
200
201                         persistence-path=*)
202                                 PERSISTENCE_PATH="${ARGUMENT#persistence-path=}"
203                                 export PERSISTENCE_PATH
204                                 ;;
205                         persistence-read-only)
206                                 PERSISTENCE_READONLY="true"
207                                 export PERSISTENCE_READONLY
208                                 ;;
209
210                         persistence-storage=*)
211                                 PERSISTENCE_STORAGE="${ARGUMENT#persistence-storage=}"
212                                 export PERSISTENCE_STORAGE
213                                 ;;
214
215                         persistence-subtext=*)
216                                 old_root_overlay_label="${old_root_overlay_label}-${ARGUMENT#persistence-subtext=}"
217                                 old_home_overlay_label="${old_home_overlay_label}-${ARGUMENT#persistence-subtext=}"
218                                 custom_overlay_label="${custom_overlay_label}-${ARGUMENT#persistence-subtext=}"
219                                 root_snapshot_label="${root_snapshot_label}-${ARGUMENT#persistence-subtext=}"
220                                 old_root_snapshot_label="${root_snapshot_label}-${ARGUMENT#persistence-subtext=}"
221                                 home_snapshot_label="${home_snapshot_label}-${ARGUMENT#persistence-subtext=}"
222                                 ;;
223
224                         nopersistence)
225                                 NOPERSISTENCE="true"
226                                 export NOPERSISTENCE
227                                 ;;
228
229                         noprompt)
230                                 NOPROMPT="true"
231                                 export NOPROMPT
232                                 ;;
233
234                         noprompt=*)
235                                 NOPROMPT="${ARGUMENT#noprompt=}"
236                                 export NOPROMPT
237                                 ;;
238
239                         quickusbmodules)
240                                 QUICKUSBMODULES="true"
241                                 export QUICKUSBMODULES
242                                 ;;
243
244                         showmounts)
245                                 SHOWMOUNTS="true"
246                                 export SHOWMOUNTS
247                                 ;;
248
249                         silent)
250                                 SILENT="true"
251                                 export SILENT
252                                 ;;
253
254                         todisk=*)
255                                 TODISK="${ARGUMENT#todisk=}"
256                                 export TODISK
257                                 ;;
258
259                         toram)
260                                 TORAM="true"
261                                 export TORAM
262                                 ;;
263
264                         toram=*)
265                                 TORAM="true"
266                                 MODULETORAM="${ARGUMENT#toram=}"
267                                 export TORAM MODULETORAM
268                                 ;;
269
270                         exposedroot)
271                                 EXPOSED_ROOT="true"
272                                 export EXPOSED_ROOT
273                                 ;;
274
275                         plainroot)
276                                 PLAIN_ROOT="true"
277                                 export PLAIN_ROOT
278                                 ;;
279
280                         skipunion)
281                                 SKIP_UNION_MOUNTS="true"
282                                 export SKIP_UNION_MOUNTS
283                                 ;;
284
285                         root=*)
286                                 ROOT="${ARGUMENT#root=}"
287                                 export ROOT
288                                 ;;
289
290                         union=*)
291                                 UNIONTYPE="${ARGUMENT#union=}"
292                                 export UNIONTYPE
293                                 ;;
294                 esac
295         done
296
297         # sort of compatibility with netboot.h from linux docs
298         if [ -z "${NETBOOT}" ]
299         then
300                 if [ "${ROOT}" = "/dev/nfs" ]
301                 then
302                         NETBOOT="nfs"
303                         export NETBOOT
304                 elif [ "${ROOT}" = "/dev/cifs" ]
305                 then
306                         NETBOOT="cifs"
307                         export NETBOOT
308                 fi
309         fi
310
311         if [ -z "${MODULE}" ]
312         then
313                 MODULE="filesystem"
314                 export MODULE
315         fi
316
317         if [ -z "${UNIONTYPE}" ]
318         then
319                 UNIONTYPE="aufs"
320                 export UNIONTYPE
321         fi
322
323         if [ -z "${PERSISTENCE_ENCRYPTION}" ]
324         then
325                 PERSISTENCE_ENCRYPTION="none"
326                 export PERSISTENCE_ENCRYPTION
327         elif is_in_comma_sep_list luks ${PERSISTENCE_ENCRYPTION}
328         then
329                 if ! modprobe dm-crypt
330                 then
331                         log_warning_msg "Unable to load module dm-crypt"
332                         PERSISTENCE_ENCRYPTION=$(echo ${PERSISTENCE_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
333                         export PERSISTENCE_ENCRYPTION
334                 fi
335
336                 if [ ! -x /lib/cryptsetup/askpass ] || [ ! -x /sbin/cryptsetup ]
337                 then
338                         log_warning_msg "cryptsetup in unavailable"
339                         PERSISTENCE_ENCRYPTION=$(echo ${PERSISTENCE_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
340                         export PERSISTENCE_ENCRYPTION
341                 fi
342         fi
343
344         if [ -z "${PERSISTENCE_METHOD}" ]
345         then
346                 PERSISTENCE_METHOD="snapshot,overlay"
347                 export PERSISTENCE_METHOD
348         fi
349
350         if [ -z "${PERSISTENCE_STORAGE}" ]
351         then
352                 PERSISTENCE_STORAGE="filesystem,file"
353                 export PERSISTENCE_STORAGE
354         fi
355 }