Parallelize repacking
This commit is contained in:
parent
bf95872731
commit
30c0d7cae8
1 changed files with 44 additions and 29 deletions
|
@ -8,6 +8,7 @@ fi
|
|||
|
||||
RELEASE_DIR="$(realpath "$1")"
|
||||
shift
|
||||
mkdir -p "$RELEASE_DIR"
|
||||
|
||||
rm -rf repack_dir
|
||||
mkdir repack_dir
|
||||
|
@ -17,18 +18,22 @@ while [[ $# -gt 0 ]]; do
|
|||
INPUT="$1"
|
||||
shift
|
||||
|
||||
rm -rf repack_dir/*
|
||||
(
|
||||
set -e
|
||||
REPACK_DIR="repack_dir/$BASHPID"
|
||||
rm -rf "$REPACK_DIR"
|
||||
mkdir "$REPACK_DIR"
|
||||
|
||||
if [[ $INPUT == *.zip ]]; then
|
||||
unzip "$INPUT" -d repack_dir
|
||||
unzip "$INPUT" -d "$REPACK_DIR"
|
||||
elif [[ $INPUT == *.tar.xz ]]; then
|
||||
tar xvaf "$INPUT" -C repack_dir
|
||||
tar xvaf "$INPUT" -C "$REPACK_DIR"
|
||||
else
|
||||
echo "Unknown input file type: $INPUT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd repack_dir
|
||||
cd "$REPACK_DIR"
|
||||
|
||||
INAME="$(echo ffmpeg-*)"
|
||||
TAGNAME="$(cut -d- -f2 <<<"$INAME")"
|
||||
|
@ -39,7 +44,7 @@ while [[ $# -gt 0 ]]; do
|
|||
TAGNAME="$(sed -re 's/([0-9]+\.[0-9]+).*/\1/' <<<"$TAGNAME")"
|
||||
fi
|
||||
|
||||
if [[ $INAME == *-*-*-*-*-* ]]; then
|
||||
if [[ "$INAME" =~ -[0-9]+-g ]]; then
|
||||
ONAME="ffmpeg-$TAGNAME-latest-$(cut -d- -f5- <<<"$INAME")"
|
||||
else
|
||||
ONAME="ffmpeg-$TAGNAME-latest-$(cut -d- -f3- <<<"$INAME")"
|
||||
|
@ -53,5 +58,15 @@ while [[ $# -gt 0 ]]; do
|
|||
tar cvJf "$RELEASE_DIR/$ONAME.tar.xz" "$ONAME"
|
||||
fi
|
||||
|
||||
cd ..
|
||||
rm -rf "$REPACK_DIR"
|
||||
) &
|
||||
|
||||
while [[ $(jobs | wc -l) -gt 3 ]]; do
|
||||
wait %1
|
||||
done
|
||||
done
|
||||
|
||||
while [[ $(jobs | wc -l) -gt 0 ]]; do
|
||||
wait %1
|
||||
done
|
||||
rm -rf repack_dir
|
||||
|
|
Loading…
Reference in a new issue