Man-in-the-middle script to manipulate the xorriso run of grub-mkrescue
This commit is contained in:
parent
febce317a6
commit
41611e5cf6
@ -263,6 +263,7 @@ EXTRA_DIST = \
|
||||
frontend/xorriso-tcltk \
|
||||
frontend/sh_on_named_pipes.sh \
|
||||
frontend/xorriso_broker.sh \
|
||||
frontend/grub-mkrescue-sed.sh \
|
||||
README \
|
||||
AUTHORS \
|
||||
CONTRIBUTORS \
|
||||
|
86
frontend/grub-mkrescue-sed.sh
Executable file
86
frontend/grub-mkrescue-sed.sh
Executable file
@ -0,0 +1,86 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2015
|
||||
# Thomas Schmitt <scdbackup@gmx.net>, libburnia-project.org
|
||||
# Provided under BSD license: Use, modify, and distribute as you like.
|
||||
|
||||
echo >&2
|
||||
echo "frontend/grub-mkrescue-sed.sh manipulating xorriso arguments" >&2
|
||||
echo >&2
|
||||
|
||||
# This script may be handed by its absolute path to grub-mkrescue
|
||||
# via option --xorriso= . E.g.
|
||||
#
|
||||
# mkdir minimal
|
||||
# touch minimal/empty-file.txt
|
||||
# grub-mkrescue -o output.iso minimal \
|
||||
# --xorriso=/home/thomas/xorriso-1.4.3./frontend/grub-mkrescue-sed.sh
|
||||
#
|
||||
# It will manipulate the xorriso arguments before
|
||||
# they get executed by the neighboring ../../xorriso/xorriso program.
|
||||
#
|
||||
# In its current form it implements an experiment which should be
|
||||
# accompanied by a xorriso from
|
||||
# export CPPFLAGS="-DLibisofs_mjg_boot_for_grub2"
|
||||
# ./configure && make clean && make
|
||||
|
||||
# Variation settings:
|
||||
|
||||
# First argument of -append_partition
|
||||
partno=1
|
||||
|
||||
# Replacement for option --protective-msdos-label
|
||||
protective="--protective-msdos-label"
|
||||
|
||||
# "yes" make the script very verbous
|
||||
debug=no
|
||||
|
||||
if test "$debug" = yes
|
||||
then
|
||||
# Show arguments
|
||||
echo "$0" >&2
|
||||
for i in "$@"
|
||||
do
|
||||
echo "|""$i""|" >&2
|
||||
done
|
||||
fi
|
||||
|
||||
# Look for the name of the /tmp directory with the GRUB2 files.
|
||||
# It is the next argument after -r.
|
||||
next_is_dir=0
|
||||
dir="."
|
||||
for i in "$@"
|
||||
do
|
||||
if test x"$i" = x"-r"
|
||||
then
|
||||
next_is_dir=1
|
||||
elif test $next_is_dir = 1
|
||||
then
|
||||
next_is_dir=0
|
||||
dir="$i"
|
||||
fi
|
||||
done
|
||||
|
||||
if test "$debug" = yes
|
||||
then
|
||||
# Show files on disk
|
||||
find "$dir"
|
||||
fi
|
||||
|
||||
# Exchange arguments for the experimental GRUB2 mjg layout
|
||||
x=$(echo " $*" | sed \
|
||||
-e "s/-efi-boot-part --efi-boot-image/-no-pad -append_partition $partno 0xef \/tmp\/$(basename "$dir")\/efi.img/" \
|
||||
-e "s/--efi-boot efi\.img/-eltorito-alt-boot -e efi.img -no-emul-boot -isohybrid-gpt-basdat/" \
|
||||
-e "s/--protective-msdos-label/$protective/" \
|
||||
)
|
||||
|
||||
if test "$debug" = yes
|
||||
then
|
||||
echo "+ converted xorriso arguments:" >&2
|
||||
echo " $x" >&2
|
||||
fi
|
||||
|
||||
# Run neighboring xorriso binary with the altered arguments
|
||||
self_dir=$(dirname $(dirname "$0") )
|
||||
"$self_dir"/xorriso/xorriso $x
|
||||
|
@ -12,19 +12,25 @@
|
||||
# libisofs jte libburn libisoburn
|
||||
# obtained according to instructions on http://libburnia-project.org.
|
||||
#
|
||||
# Produce a necessary binary
|
||||
# (cd libisoburn-develop/xorriso && \
|
||||
# cc -g -Wall -o unite_html_b_line unite_html_b_line.c )
|
||||
#
|
||||
# It creates a new directory tree
|
||||
# xorriso-standalone
|
||||
# for building GNU xorriso.
|
||||
# The ./bootstrap script gets applied and a source tarball is made.
|
||||
#
|
||||
# The ./bootstrap script gets applied and a source tarball
|
||||
# is made.
|
||||
# Before running this script one needs to apply autotools to libisoburn
|
||||
# ./libisoburn-develop/bootstrap
|
||||
#
|
||||
# From that tree can be build a binary xorriso/xorriso which at runtime
|
||||
# does not depend on installed libburnia libraries.
|
||||
# and to produce a necessary binary
|
||||
# (cd libisoburn-develop/xorriso && \
|
||||
# cc -g -Wall -o unite_html_b_line unite_html_b_line.c )
|
||||
#
|
||||
# Then run
|
||||
#
|
||||
# ./libisoburn-develop/xorriso/make_xorriso_standalone.sh
|
||||
#
|
||||
# From the emerging xorriso-standalone tree can be build a binary
|
||||
# xorriso/xorriso
|
||||
# which at runtime does not depend on installed libburnia libraries.
|
||||
# Execute in xorriso-standalone :
|
||||
#
|
||||
# ./configure && make
|
||||
@ -246,6 +252,7 @@ copy_files \
|
||||
frontend/xorriso-tcltk \
|
||||
frontend/sh_on_named_pipes.sh \
|
||||
frontend/xorriso_broker.sh \
|
||||
frontend/grub-mkrescue-sed.sh \
|
||||
"$lone_dir"/frontend
|
||||
|
||||
|
||||
|
@ -343,6 +343,7 @@ EXTRA_DIST = \
|
||||
frontend/xorriso-tcltk \
|
||||
frontend/sh_on_named_pipes.sh \
|
||||
frontend/xorriso_broker.sh \
|
||||
frontend/grub-mkrescue-sed.sh \
|
||||
libisofs/aaip-os-dummy.c \
|
||||
libisofs/aaip-os-linux.c \
|
||||
libisofs/aaip-os-freebsd.c \
|
||||
|
Loading…
Reference in New Issue
Block a user