12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/bin/bash
- set -e
- if [[ $# -lt 2 ]]; then
- echo "Missing arguments"
- exit -1
- fi
- RELEASE_DIR="$(realpath "$1")"
- shift
- mkdir -p "$RELEASE_DIR"
- rm -rf repack_dir
- mkdir repack_dir
- trap "rm -rf repack_dir" EXIT
- while [[ $# -gt 0 ]]; do
- INPUT="$1"
- shift
- (
- set -e
- REPACK_DIR="repack_dir/$BASHPID"
- rm -rf "$REPACK_DIR"
- mkdir "$REPACK_DIR"
- if [[ $INPUT == *.zip ]]; then
- unzip "$INPUT" -d "$REPACK_DIR"
- elif [[ $INPUT == *.tar.xz ]]; then
- tar xvaf "$INPUT" -C "$REPACK_DIR"
- else
- echo "Unknown input file type: $INPUT"
- exit 1
- fi
- cd "$REPACK_DIR"
- INAME="$(echo ffmpeg-*)"
- TAGNAME="$(cut -d- -f2 <<<"$INAME")"
- if [[ $TAGNAME == N ]]; then
- TAGNAME="master"
- elif [[ $TAGNAME == n* ]]; then
- TAGNAME="$(sed -re 's/([0-9]+\.[0-9]+).*/\1/' <<<"$TAGNAME")"
- fi
- if [[ "$INAME" =~ -[0-9]+-g ]]; then
- ONAME="ffmpeg-$TAGNAME-latest-$(cut -d- -f5- <<<"$INAME")"
- else
- ONAME="ffmpeg-$TAGNAME-latest-$(cut -d- -f3- <<<"$INAME")"
- fi
- mv "$INAME" "$ONAME"
- if [[ $INPUT == *.zip ]]; then
- zip -9 -r "$RELEASE_DIR/$ONAME.zip" "$ONAME"
- elif [[ $INPUT == *.tar.xz ]]; then
- tar cvJf "$RELEASE_DIR/$ONAME.tar.xz" "$ONAME"
- fi
- 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
|