-# live-boot helper functions, used by live-boot on boot and by live-snapshot
-
-if [ ! -x "/bin/fstype" ]
-then
- # klibc not in path -> not in initramfs
- export PATH="${PATH}:/usr/lib/klibc/bin"
-fi
-
-# handle upgrade path from old udev (using udevinfo) to
-# recent versions of udev (using udevadm info)
-if [ -x /sbin/udevadm ]
-then
- udevinfo='/sbin/udevadm info'
-else
- udevinfo='udevinfo'
-fi
-
-old_root_overlay_label="live-rw"
-old_home_overlay_label="home-rw"
-custom_overlay_label="custom-ov"
-root_snapshot_label="live-sn"
-old_root_snapshot_label="live-sn"
-home_snapshot_label="home-sn"
-persistence_list="live-persistence.conf"
-
-Arguments ()
-{
- PRESEEDS=""
- LOCATIONS=""
+#!/bin/sh
- for ARGUMENT in $(cat /proc/cmdline)
- do
- case "${ARGUMENT}" in
- skipconfig)
- NOACCESSIBILITY="Yes"
- NOFASTBOOT="Yes"
- NOFSTAB="Yes"
- NONETWORKING="Yes"
-
- export NOACCESSIBILITY NOFASTBOOT NOFSTAB NONETWORKING
- ;;
-
- access=*)
- ACCESS="${ARGUMENT#access=}"
- export ACCESS
- ;;
-
- console=*)
- DEFCONSOLE="${ARGUMENT#*=}"
- export DEFCONSOLE
- ;;
-
- BOOTIF=*)
- BOOTIF="${x#BOOTIF=}"
- ;;
-
- debug)
- DEBUG="Yes"
- export DEBUG
-
- set -x
- ;;
-
- dhcp)
- # Force dhcp even while netbooting
- # Use for debugging in case somebody works on fixing dhclient
- DHCP="Force";
- export DHCP
- ;;
-
- nodhcp)
- unset DHCP
- ;;
-
- ethdevice=*)
- DEVICE="${ARGUMENT#ethdevice=}"
- ETHDEVICE="${DEVICE}"
- export DEVICE ETHDEVICE
- ;;
-
- ethdevice-timeout=*)
- ETHDEV_TIMEOUT="${ARGUMENT#ethdevice-timeout=}"
- export ETHDEV_TIMEOUT
- ;;
-
- fetch=*)
- FETCH="${ARGUMENT#fetch=}"
- export FETCH
- ;;
-
- findiso=*)
- FINDISO="${ARGUMENT#findiso=}"
- export FINDISO
- ;;
-
- forcepersistencefsck)
- FORCEPERSISTENCEFSCK="Yes"
- export FORCEPERSISTENCEFSCK
- ;;
-
- ftpfs=*)
- FTPFS="${ARGUMENT#ftpfs=}"
- export FTPFS
- ;;
-
- httpfs=*)
- HTTPFS="${ARGUMENT#httpfs=}"
- export HTTPFS
- ;;
-
- iscsi=*)
- ISCSI="${ARGUMENT#iscsi=}"
- #ip:port - separated by ;
- ISCSI_PORTAL="${ISCSI%;*}"
- if echo "${ISCSI_PORTAL}" | grep -q , ; then
- ISCSI_SERVER="${ISCSI_PORTAL%,*}"
- ISCSI_PORT="${ISCSI_PORTAL#*,}"
- fi
- #target name
- ISCSI_TARGET="${ISCSI#*;}"
- export ISCSI ISCSI_PORTAL ISCSI_TARGET ISCSI_SERVER ISCSI_PORT
- ;;
-
- isofrom=*|fromiso=*)
- FROMISO="${ARGUMENT#*=}"
- export FROMISO
- ;;
-
- ignore_uuid)
- IGNORE_UUID="Yes"
- export IGNORE_UUID
- ;;
-
- integrity-check)
- INTEGRITY_CHECK="Yes"
- export INTEGRITY_CHECK
- ;;
-
- ip=*)
- STATICIP="${ARGUMENT#ip=}"
-
- if [ -z "${STATICIP}" ]
- then
- STATICIP="frommedia"
- fi
+#set -e
- export STATICIP
- ;;
-
- live-getty)
- LIVE_GETTY="1"
- export LIVE_GETTY
- ;;
-
- live-media=*|bootfrom=*)
- LIVE_MEDIA="${ARGUMENT#*=}"
- export LIVE_MEDIA
- ;;
-
- live-media-encryption=*|encryption=*)
- LIVE_MEDIA_ENCRYPTION="${ARGUMENT#*=}"
- export LIVE_MEDIA_ENCRYPTION
- ;;
-
- live-media-offset=*)
- LIVE_MEDIA_OFFSET="${ARGUMENT#live-media-offset=}"
- export LIVE_MEDIA_OFFSET
- ;;
-
- live-media-path=*)
- LIVE_MEDIA_PATH="${ARGUMENT#live-media-path=}"
- export LIVE_MEDIA_PATH
- ;;
-
- live-media-timeout=*)
- LIVE_MEDIA_TIMEOUT="${ARGUMENT#live-media-timeout=}"
- export LIVE_MEDIA_TIMEOUT
- ;;
-
- module=*)
- MODULE="${ARGUMENT#module=}"
- export MODULE
- ;;
-
- netboot=*)
- NETBOOT="${ARGUMENT#netboot=}"
- export NETBOOT
- ;;
-
- nfsopts=*)
- NFSOPTS="${ARGUMENT#nfsopts=}"
- export NFSOPTS
- ;;
-
- nfsoverlay=*)
- NFS_COW="${ARGUMENT#nfsoverlay=}"
- export NFS_COW
- ;;
-
- noaccessibility)
- NOACCESSIBILITY="Yes"
- export NOACCESSIBILITY
- ;;
-
- nofastboot)
- NOFASTBOOT="Yes"
- export NOFASTBOOT
- ;;
-
- nofstab)
- NOFSTAB="Yes"
- export NOFSTAB
- ;;
-
- nonetworking)
- NONETWORKING="Yes"
- export NONETWORKING
- ;;
-
- ramdisk-size=*)
- ramdisk_size="${ARGUMENT#ramdisk-size=}"
- ;;
-
- swapon)
- SWAPON="Yes"
- export SWAPON
- ;;
-
- persistence)
- PERSISTENCE="Yes"
- export PERSISTENCE
- ;;
-
- persistence-encryption=*)
- PERSISTENCE_ENCRYPTION="${ARGUMENT#*=}"
- export PERSISTENCE_ENCRYPTION
- ;;
-
- persistence-media=*)
- PERSISTENCE_MEDIA="${ARGUMENT#*=}"
- export PERSISTENCE_MEDIA
- ;;
- persistence-method=*)
- PERSISTENCE_METHOD="${ARGUMENT#*=}"
- export PERSISTENCE_METHOD
- ;;
-
- persistence-path=*)
- PERSISTENCE_PATH="${ARGUMENT#persistence-path=}"
- export PERSISTENCE_PATH
- ;;
- persistence-read-only)
- PERSISTENCE_READONLY="Yes"
- export PERSISTENCE_READONLY
- ;;
-
- persistence-storage=*)
- PERSISTENCE_STORAGE="${ARGUMENT#persistence-storage=}"
- export PERSISTENCE_STORAGE
- ;;
-
- persistence-subtext=*)
- old_root_overlay_label="${old_root_overlay_label}-${ARGUMENT#persistence-subtext=}"
- old_home_overlay_label="${old_home_overlay_label}-${ARGUMENT#persistence-subtext=}"
- custom_overlay_label="${custom_overlay_label}-${ARGUMENT#persistence-subtext=}"
- root_snapshot_label="${root_snapshot_label}-${ARGUMENT#persistence-subtext=}"
- old_root_snapshot_label="${root_snapshot_label}-${ARGUMENT#persistence-subtext=}"
- home_snapshot_label="${home_snapshot_label}-${ARGUMENT#persistence-subtext=}"
- ;;
-
- nopersistence)
- NOPERSISTENCE="Yes"
- export NOPERSISTENCE
- ;;
-
- noprompt)
- NOPROMPT="Yes"
- export NOPROMPT
- ;;
-
- noprompt=*)
- NOPROMPT="${ARGUMENT#noprompt=}"
- export NOPROMPT
- ;;
-
- quickusbmodules)
- QUICKUSBMODULES="Yes"
- export QUICKUSBMODULES
- ;;
-
- preseed/file=*|file=*)
- LOCATIONS="${ARGUMENT#*=} ${LOCATIONS}"
- export LOCATIONS
- ;;
-
- nopreseed)
- NOPRESEED="Yes"
- export NOPRESEED
- ;;
-
- */*=*)
- question="${ARGUMENT%%=*}"
- value="${ARGUMENT#*=}"
- PRESEEDS="${PRESEEDS}\"${question}=${value}\" "
- export PRESEEDS
- ;;
-
- showmounts)
- SHOWMOUNTS="Yes"
- export SHOWMOUNTS
- ;;
-
- silent)
- SILENT="Yes"
- export SILENT
- ;;
-
- todisk=*)
- TODISK="${ARGUMENT#todisk=}"
- export TODISK
- ;;
-
- toram)
- TORAM="Yes"
- export TORAM
- ;;
-
- toram=*)
- TORAM="Yes"
- MODULETORAM="${ARGUMENT#toram=}"
- export TORAM MODULETORAM
- ;;
-
- exposedroot)
- EXPOSED_ROOT="Yes"
- export EXPOSED_ROOT
- ;;
-
- plainroot)
- PLAIN_ROOT="Yes"
- export PLAIN_ROOT
- ;;
-
- skipunion)
- SKIP_UNION_MOUNTS="Yes"
- export SKIP_UNION_MOUNTS
- ;;
-
- root=*)
- ROOT="${ARGUMENT#root=}"
- export ROOT
- ;;
-
- union=*)
- UNIONTYPE="${ARGUMENT#union=}"
- export UNIONTYPE
- ;;
- esac
- done
-
- # sort of compatibility with netboot.h from linux docs
- if [ -z "${NETBOOT}" ]
- then
- if [ "${ROOT}" = "/dev/nfs" ]
- then
- NETBOOT="nfs"
- export NETBOOT
- elif [ "${ROOT}" = "/dev/cifs" ]
- then
- NETBOOT="cifs"
- export NETBOOT
- fi
- fi
-
- if [ -z "${MODULE}" ]
- then
- MODULE="filesystem"
- export MODULE
- fi
+really_export ()
+{
+ STRING="${1}"
+ VALUE="$(eval echo -n \${$STRING})"
- if [ -z "${UNIONTYPE}" ]
+ if [ -f /live.vars ] && grep -sq "export ${STRING}" /live.vars
then
- UNIONTYPE="aufs"
- export UNIONTYPE
+ sed -i -e 's/\('${STRING}'=\).*$/\1'${VALUE}'/' /live.vars
+ else
+ echo "export ${STRING}=\"${VALUE}\"" >> /live.vars
fi
- if [ -z "${PERSISTENCE_ENCRYPTION}" ]
- then
- PERSISTENCE_ENCRYPTION="none"
- export PERSISTENCE_ENCRYPTION
- elif is_in_comma_sep_list luks ${PERSISTENCE_ENCRYPTION}
- then
- if ! modprobe dm-crypt
- then
- log_warning_msg "Unable to load module dm-crypt"
- PERSISTENCE_ENCRYPTION=$(echo ${PERSISTENCE_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
- export PERSISTENCE_ENCRYPTION
- fi
+ eval export "${STRING}"="${VALUE}"
+}
- if [ ! -x /lib/cryptsetup/askpass ] || [ ! -x /sbin/cryptsetup ]
- then
- log_warning_msg "cryptsetup in unavailable"
- PERSISTENCE_ENCRYPTION=$(echo ${PERSISTENCE_ENCRYPTION} | sed -e 's/\<luks,\|,\?luks$//g')
- export PERSISTENCE_ENCRYPTION
+lang2locale() {
+ langpart="${1%%_*}"
+ if [ "$1" != "C" ]; then
+ # Match the language code with 3rd field in languagelist
+ line=$(grep -v "^#" /usr/share/live-boot/languagelist | cut -f1,3,6 -d\; | grep -v ';C$' | grep "^$langpart;")
+ if [ -n "$line" ]; then
+ if [ "$(echo "$line" | grep -c '')" -gt 1 ]; then
+ # More than one match; try matching the
+ # country as well.
+ countrypart="${1#*_}"
+ if [ "$countrypart" = "$1" ]; then
+ countryline="$(echo "$line" | head -n1)"
+ echo "${countryline##*;}"
+ return
+ fi
+ countrypart="${countrypart%%[@.]*}"
+ countryline="$(echo "$line" | grep ";$countrypart;" | head -n1 || true)"
+ if [ "$countryline" ]; then
+ echo "${countryline##*;}"
+ return
+ fi
+ fi
+ echo "${line##*;}"
fi
- fi
-
- if [ -z "${PERSISTENCE_METHOD}" ]
- then
- PERSISTENCE_METHOD="snapshot,overlay"
- export PERSISTENCE_METHOD
- fi
-
- if [ -z "${PERSISTENCE_STORAGE}" ]
- then
- PERSISTENCE_STORAGE="filesystem,file"
- export PERSISTENCE_STORAGE
+ else
+ echo "C"
fi
}