https://github.com/scummvm/scummvm
Tip revision: 53790e749725f92d43f1a09b342203eb5022c2fc authored by Eugene Sandulenko on 26 September 2016, 18:57:54 UTC
RELEASE: This is 1.10.0git
RELEASE: This is 1.10.0git
Tip revision: 53790e7
opk_make.sh
#!/bin/bash
#
# opk_make.sh
#
# This script is meant to ease generation of a opk file. Please consult the output
# when running --help for a list of available parameters and an explaination of
# those.
#
# Required tools when running the script:
# bash
# echo, cat, mv, rm, mksquashfs
check_for_tool()
{
which $1 &> /dev/null
if [ "$?" -ne "0" ];
then
cecho "ERROR: Could not find the program '$1'. Please make sure
that it is available in your PATH since it is required to complete your request." $red
exit 1
fi
}
print_help()
{
cat << EOSTREAM
opk_make.sh - A script to package "something" into a OPK.
Usage:
$(basename ${0}) {--directory|-d} <folder> {--opk|-o} <file> [{--help|-h}]
Switches:
--directory / -d Sets the folder that is to be used for the resulting opk
to <folder>. This option is mandatory for the script to
function correctly.
--help / -h Displays this help text.
--opkname / -o Sets the output filename of the resulting opk to <file>.
This option is mandatory for the script to function
correctly.
A version >=4.0 of squashfs is required to be available in your PATH.
EOSTREAM
}
# Parse command line parameters
while [ "${1}" != "" ]; do
if [ "${1}" = "--directory" ] || [ "${1}" = "-d" ];
then
FOLDER=$2
shift 2
elif [ "${1}" = "--help" ] || [ "${1}" = "-h" ];
then
print_help
exit 0
elif [ "${1}" = "--opkname" ] || [ "${1}" = "-o" ];
then
OPKNAME=$2
shift 2
else
echo "ERROR: '$1' is not a known argument. Printing --help and aborting."
print_help
exit 1
fi
done
# Probe if required variables were set
echo "Checking if all required variables were set."
if [ ! $OPKNAME ] || [ ! $FOLDER ];
then
echo "ERROR: Not all required options were set! Please see the --help information below."
print_help
exit 1
else
echo "OPKNAME set to '$OPKNAME'."
fi
# Check if the selected folder actually exists
if [ ! -d $FOLDER ];
then
echo "ERROR: '$FOLDER' doesn't exist or is not a folder."
exit 1
else
echo "FOLDER set to '$FOLDER'."
fi
# Make iso from folder
echo "Creating an iso file based on '$FOLDER'."
check_for_tool mksquashfs
if [ $(mksquashfs -version | awk 'BEGIN{r=0} $3>=4{r=1} END{print r}') -eq 0 ];
then
echo "ERROR: Your squashfs version is older then version 4, please upgrade to 4.0 or later"
exit 1
fi
mksquashfs $FOLDER $OPKNAME.opk -noappend -no-exports -no-xattrs
# Final message
if [ -f $OPKNAME ];
then
echo "Successfully finished creating the opk '$OPKNAME'."
else
echo "There seems to have been a problem and '$OPKNAME' was not created. Please check
the output above for any error messages. A possible cause for this is that there was
not enough space available."
exit 1
fi