mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 13:50:13 +00:00
112 lines
2.8 KiB
Bash
Executable File
112 lines
2.8 KiB
Bash
Executable File
#!/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
|
|
|