# HG changeset patch # User Pascal Bellard # Date 1416130950 -3600 # Node ID 4e701eef29cb2e9f7e03621b4e361e0fbfcd7704 # Parent 99ef615a944a7ea1a8aec76542ece151634aeb41 piboot: add savedefault diff -r 99ef615a944a -r 4e701eef29cb rpi/piboot --- a/rpi/piboot Sun Nov 16 00:36:16 2014 +0100 +++ b/rpi/piboot Sun Nov 16 10:42:30 2014 +0100 @@ -52,13 +52,16 @@ eval KERNEL="\$KERNEL_$1" eval INITRD="\$INITRD_$1" eval CMDLINE="\$CMDLINE_$1" + extra="--extra-button --extra-label ${msgsave:-Save}" + [ "$READONLY" ] && extra='' exec 3>&1 value=$($DIALOG --clear \ --title "${edittitle:-Edit menu}" \ - --ok-label "Edit" \ - --cancel-label "Done" \ + --ok-label "${msgedit:-Edit}" \ + --cancel-label "${msgdone:-Done}" \ --menu "" 20 72 14 \ + $extra \ Kernel "$KERNEL" \ Initramfs "$INITRD" \ Cmdline "$CMDLINE" 2>&1 1>&3 ) @@ -67,18 +70,26 @@ case $retval in 1|255) return ;; + 3) cp $mnt/$KEYWORD/config.txt /tmp/config.txt + sed -i '/^kernel/d;/^initrd/d;/^cmdline/d' /tmp/config.txt + echo "kernel=$KERNEL" >> /tmp/config.txt + [ "$INITRD" ] && echo "initrd $INITRD" >> /tmp/config.txt + [ "$CMDLINE" ] && echo "cmdline=$CMDLINE" >> /tmp/config.txt + mount -o remount,rw $mnt + cp /tmp/config.txt $mnt/$KEYWORD/config.txt + mount -o remount,ro $mnt ;; esac exec 3>&1 case $value in Kernel) - data=$($DIALOG --clear --title "Select the kernel" \ + data=$($DIALOG --clear --title "${msgselectkernel:-Select the kernel}" \ --fselect "$mnt/$KEYWORD/$KERNEL" 10 72 2>&1 1>&3) ;; Initramfs) - data=$($DIALOG --clear --title "Select the initramfs" \ + data=$($DIALOG --clear --title "${msgselectinitrd:-Select the initramfs}" \ --fselect "$mnt/$KEYWORD/$INITRD" 10 72 2>&1 1>&3) ;; Cmdline) - data=$($DIALOG --clear --title "Edit $value" \ + data=$($DIALOG --clear --title "${msgeditcmdline:-Edit cmdline}" \ --inputbox "Cmdline" 20 72 2>&1 "$CMDLINE" 1>&3) ;; esac retval=$? @@ -174,11 +185,28 @@ editbutton='--extra-button --extra-label "Edit"' grep -qs ^noedit i$mnt/menu.txt && editbutton= +READONLY= +grep -qs ^readonly i$mnt/menu.txt && READONLY=ON + +USING_WEBBOOT= +grep -qs ^nowebboot i$mnt/menu.txt && USING_WEBBOOT=1 + kmap=$(get kmap $mnt/menu.txt) [ "$kmap" ] && ! loadkeys $kmap && loadkmap < /usr/share/kmap/$kmap.kmap edittitle=$(get edittitle $mnt/menu.txt) +# Get locale + +msgsave=$(get msgsave $mnt/menu.txt) +msgedit=$(get msgedit $mnt/menu.txt) +msgdone=$(get msgdone $mnt/menu.txt) +msgboot=$(get msgboot $mnt/menu.txt) +msghalt=$(get msghalt $mnt/menu.txt) +msgselectkernel=$(get msgselectkernel $mnt/menu.txt) +msgselectinitrd=$(get msgselectinitrd $mnt/menu.txt) +msgeditcmdline=$(get msgeditcmdline $mnt/menu.txt) +msgkexec=$(get msgkexec $mnt/menu.txt) # Get OS variables @@ -189,6 +217,7 @@ eval KERNEL_$n="\$(get kernel \$i/config.txt)" eval INITRD_$n="\$(get initramfs \$i/config.txt)" eval CMDLINE_$n="\$(cat \$i/cmdline.txt)" + eval SAVEDEFAULT_$n="\$(get savedefault \$i/config.txt)" eval KEYWORD_$n="\$(basename \$i)" eval ENTRY_$n="\$(get entry \$i/menu.txt)" done @@ -203,12 +232,12 @@ $DIALOG --clear \ --title "${title:-Boot menu}" \ $editbutton \ - --ok-label "Boot" \ - --cancel-label "Halt" \ + --ok-label "${msgboot:-Boot}" \ + --cancel-label "${msghalt:-Halt}" \ --timeout $timeout \ --menu "${subtitle:-Default boot in $timeout seconds}" 20 72 14 \ $(list_entry) $(web_boot_entry) \ - Continue "Execute SliTaz boot sequence" + Continue "${msgkexec:-Execute SliTaz boot sequence}" EOT ) retval=$? @@ -256,6 +285,7 @@ eval KERNEL="\$KERNEL_$n" eval INITRD="\$INITRD_$n" eval CMDLINE="\$CMDLINE_$n" + eval SAVEDEFAULT="\$SAVEDEFAULT_$n" if [ "$webprefix" ]; then cd /root @@ -280,6 +310,14 @@ done cd /root fi + if [ -z "$READONLY" ] && [ "$SAVEDEFAULT" ] && + [ -s $mnt/$SAVEDEFAULT/config.txt ]; then + cp $mnt/menu.txt /tmp + sed -i '/^default/d' /tmp/menu.txt + echo "default=$SAVEDEFAULT" >> /tmp/menu.txt + mount -o remount,rw $mnt + cp /tmp/menu.txt $mnt/menu.txt + fi [ "$INITRD" ] && INITRD="--initrd rootfs.gz" [ "$CMDLINE" ] && CMDLINE="--command-line \"$CMDLINE\""