From cbad30a9e4b6ab36427d63e19414f88007d316fc Mon Sep 17 00:00:00 2001 From: Loic Nageleisen Date: Thu, 25 Aug 2022 12:10:59 +0200 Subject: [PATCH] Add gem helper sanity checks --- shell/ruby | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/shell/ruby b/shell/ruby index 27e48dc..309fef8 100755 --- a/shell/ruby +++ b/shell/ruby @@ -32,10 +32,15 @@ unpack_gem() { return 1 fi + if [[ ! -f "${gemname}" ]]; then + echo "error: not a .gem: '${gemname}'" + return 1 + fi + mkdir -p "${basename}/data" tar -C "${basename}" -xvf "${gemname}" - gunzip "${basename}/checksums.yaml.gz" - gunzip "${basename}/metadata.gz" + gunzip -f "${basename}/checksums.yaml.gz" + gunzip -f "${basename}/metadata.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 ) 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 gzip < "${dirname}/metadata" > "${dirname}/metadata.gz"