diff options
Diffstat (limited to 'dists/gcw0/opk_make.sh')
-rwxr-xr-x | dists/gcw0/opk_make.sh | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/dists/gcw0/opk_make.sh b/dists/gcw0/opk_make.sh new file mode 100755 index 0000000000..b1bfd03efb --- /dev/null +++ b/dists/gcw0/opk_make.sh @@ -0,0 +1,111 @@ +#!/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 + |