]> code.delx.au - refind/blobdiff - mkrlconf.sh
Preliminary OS spoofing code for Macs.
[refind] / mkrlconf.sh
index c12ee8a5a32e1080b4074c52bc26aa394be1dbe1..478cd4487a67d732be3a95b349f7397b8727db5e 100755 (executable)
@@ -3,14 +3,14 @@
 # Script to create a refind_linux.conf file for the current Linux
 # installation.
 
-# copyright (c) 2012 by Roderick W. Smith
+# copyright (c) 2012-2015 by Roderick W. Smith
 #
 # This program is licensed under the terms of the GNU GPL, version 3,
 # a copy of which should be distributed with this program.
 
 # Usage:
 #
-# ./mkrlconf.sh [--overwrite]
+# ./mkrlconf.sh [--force]
 #
 # Options:
 #
@@ -18,6 +18,8 @@
 
 # Revision history:
 #
+#  0.9.0 -- Added check for OS type, to keep from running pointlessly on OS X
+#  0.7.7 -- Fixed bug that caused stray PARTUUID= and line breaks in generated file
 #  0.5.1 -- Initial release
 #
 # Note: mkrlconf.sh version numbers match those of the rEFInd package
 
 RLConfFile="/boot/refind_linux.conf"
 
+if [[ `uname -s` != "Linux" ]] ; then
+   echo "This script is intended to be run from Linux. Aborting!"
+   echo ""
+   exit 1
+fi
+
 if [[ ! -f $RLConfFile || $1 == "--force" ]] ; then
    if [[ -f /etc/default/grub ]] ; then
       # We want the default options used by the distribution, stored here....
@@ -34,15 +42,15 @@ if [[ ! -f $RLConfFile || $1 == "--force" ]] ; then
    StartOfDevname=`echo $RootFS | cut -b 1-7`
    if [[ $StartOfDevname == "/dev/sd" || $StartOfDevName == "/dev/hd" ]] ; then
       # Identify root filesystem by UUID rather than by device node, if possible
-      Uuid=`blkid -o export $RootFS 2> /dev/null | grep UUID=`
+      Uuid=`blkid -o export -s UUID $RootFS 2> /dev/null | grep UUID=`
       if [[ -n $Uuid ]] ; then
          RootFS=$Uuid
       fi
    fi
    DefaultOptions="$GRUB_CMDLINE_LINUX $GRUB_CMDLINE_LINUX_DEFAULT"
-   echo "\"Boot with standard options\" \"ro root=$RootFS $DefaultOptions \"" > $RLConfFile
-   echo "\"Boot to single-user mode\"   \"ro root=$RootFS $DefaultOptions single\"" >> $RLConfFile
-   echo "\"Boot with minimal options\"  \"ro root=$RootFS\"" >> $RLConfFile
+   echo "\"Boot with standard options\"        \"ro root=$RootFS $DefaultOptions \"" > $RLConfFile
+   echo "\"Boot to single-user mode\"          \"ro root=$RootFS $DefaultOptions single\"" >> $RLConfFile
+   echo "\"Boot with minimal options\"         \"ro root=$RootFS\"" >> $RLConfFile
 else
    echo "Existing $RLConfFile found! Not overwriting!"
    echo "To force overwriting, pass the --force option."