update: better version and empty root directory checking for mp-build and mp-check
This commit is contained in:
@ -174,6 +174,26 @@ check_archive(){
|
||||
fail_check
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${k}" == "size" ]; then
|
||||
if [ ! -z "${line_1}" ]; then
|
||||
size="$(echo "${line_1}" | sed 's/size= //g')"
|
||||
size="$(echo "${size}" | sed 's/size=//g')"
|
||||
else
|
||||
size="$(echo "${line_2}" | sed 's/size = //g')"
|
||||
size="$(echo "${size}" | sed 's/size =//g')"
|
||||
fi
|
||||
|
||||
if [ -z "${size}" ]; then
|
||||
error "Failed to obtain package size information"
|
||||
fail_check
|
||||
fi
|
||||
|
||||
if [ "${size}" == "0" ]; then
|
||||
error "Package size information is set as 0, is the package empty?"
|
||||
fail_check
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
name="$(head -n1 "${tmpdir}/DATA" | sed 's/\[//g')"
|
||||
@ -184,6 +204,24 @@ check_archive(){
|
||||
fail_check
|
||||
fi
|
||||
|
||||
case "${name}" in
|
||||
*_*)
|
||||
error "Package name contains an invalid character: \"_\""
|
||||
fail_check ;;
|
||||
*" "*)
|
||||
error "Package name contains an invalid character: \" \""
|
||||
fail_check ;;
|
||||
esac
|
||||
|
||||
case "${version}" in
|
||||
*_*)
|
||||
error "Package version contains an invalid character: \"_\""
|
||||
fail_check ;;
|
||||
*" "*)
|
||||
error "Package version contains an invalid character: \" \""
|
||||
fail_check ;;
|
||||
esac
|
||||
|
||||
filename="${name}_${version}.mpf"
|
||||
|
||||
info "Checking HASHES file"
|
||||
@ -208,8 +246,15 @@ check_archive(){
|
||||
done < "${tmpdir}/HASHES"
|
||||
|
||||
info "Checking files.tar.gz archive"
|
||||
filec=0
|
||||
|
||||
while read p; do
|
||||
if [ -z "${p}" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
filec=$((filec + 1))
|
||||
|
||||
if [ "${p:0:1}" == "." ] || [ "${p:0:1}" == "/" ]; then
|
||||
error "Root file location is invalid (${p:0:1})"
|
||||
fail_check
|
||||
@ -231,6 +276,11 @@ check_archive(){
|
||||
fi
|
||||
done < <(tar tf "${tmpdir}/files.tar.gz")
|
||||
|
||||
if [ "${filec}" == "0" ]; then
|
||||
error "Package file archive is empty (no files)"
|
||||
fail_check
|
||||
fi
|
||||
|
||||
info "Checking INSTALL file"
|
||||
|
||||
if [ -f "${tmpdir}/INSTALL" ] && ! grep -q . "${tmpdir}/INSTALL"; then
|
||||
|
Reference in New Issue
Block a user