Add gem helper sanity checks

This commit is contained in:
Loic Nageleisen 2022-08-25 12:10:59 +02:00
parent 2c7dc54a9b
commit cbad30a9e4
Signed by: lloeki
GPG key ID: D05DAEE6889F94C2

View file

@ -32,10 +32,15 @@ unpack_gem() {
return 1 return 1
fi fi
if [[ ! -f "${gemname}" ]]; then
echo "error: not a .gem: '${gemname}'"
return 1
fi
mkdir -p "${basename}/data" mkdir -p "${basename}/data"
tar -C "${basename}" -xvf "${gemname}" tar -C "${basename}" -xvf "${gemname}"
gunzip "${basename}/checksums.yaml.gz" gunzip -f "${basename}/checksums.yaml.gz"
gunzip "${basename}/metadata.gz" gunzip -f "${basename}/metadata.gz"
tar -C "${basename}"/data -xvzf "${basename}"/data.tar.gz && rm -f "${basename}"/data.tar.gz tar -C "${basename}"/data -xvzf "${basename}"/data.tar.gz && rm -f "${basename}"/data.tar.gz
} }
@ -50,6 +55,16 @@ pack_gem() {
local sha512sum=( sha512sum ) local sha512sum=( sha512sum )
fi fi
if [[ ! -d "${dirname}/data" ]]; then
echo "error: missing data: '${dirname}'"
return 1
fi
if [[ ! -d "${dirname}/metadata" ]]; then
echo "error: missing metadata: '${dirname}'"
return 1
fi
tar --strip-components 2 --uid 0 --gid 0 -cvzf "${dirname}"/data.tar.gz "${dirname}"/data tar --strip-components 2 --uid 0 --gid 0 -cvzf "${dirname}"/data.tar.gz "${dirname}"/data
gzip < "${dirname}/metadata" > "${dirname}/metadata.gz" gzip < "${dirname}/metadata" > "${dirname}/metadata.gz"