Skip to content

Instantly share code, notes, and snippets.

@adujardin
Last active July 2, 2021 15:19
Show Gist options
  • Save adujardin/e5a60a24701c8d0cc71b3a96c1b56bc7 to your computer and use it in GitHub Desktop.
Save adujardin/e5a60a24701c8d0cc71b3a96c1b56bc7 to your computer and use it in GitHub Desktop.
This script takes a path as an input, a folder containing all TensorRT archives (Windows and Linux), with samples, dataset... The goal is to repack each archive into only lib + headers.
#!/usr/bin/env bash
if [ "$#" -ne 1 ]; then
echo "Please provides absolute path with all the TensorRT archives"
fi
arrayName=($(ls "${1}"/TensorRT*.*))
working_folder="${1}/repack"
mkdir -p "${working_folder}"
echo -e "The smaller archives will be exported in ${working_folder}\n"
for original_archive in "${arrayName[@]}"; do
echo $original_archive
filename_=$(basename -- "$original_archive")
extension_="${filename_##*.}"
if [ "$extension_" == "zip" ] ; then
unzip -qq "${original_archive}" -d "${working_folder}/"
else
tar -xzf "${original_archive}" -C "${working_folder}/"
fi
extracted_folder=$(ls -1 -d ${working_folder}/*/)
extracted_folder=${extracted_folder%?}; # remove trailing '/'
original_folder="${extracted_folder}_original"
mv "${extracted_folder}" "${original_folder}"
mkdir -p "${extracted_folder}"/lib
mkdir -p "${extracted_folder}"/include
mkdir -p "${extracted_folder}"/bin
mv "${original_folder}"/bin/*exec "${extracted_folder}"/bin/
mv "${original_folder}"/lib/stubs "${extracted_folder}"/lib/
mv "${original_folder}"/lib/*nvinfer* "${extracted_folder}"/lib/
mv "${original_folder}"/lib/*nvparser* "${extracted_folder}"/lib/
mv "${original_folder}"/lib/*myelin* "${extracted_folder}"/lib/
mv "${original_folder}"/lib/*onnx* "${extracted_folder}"/lib/
mv "${original_folder}"/lib/*proto* "${extracted_folder}"/lib/
mv "${original_folder}"/include/* "${extracted_folder}"/include/
echo "${original_archive}" > "${extracted_folder}"/version.txt
rm "${extracted_folder}"/lib/*_static.a
rm -rf "${original_folder}"
f="$(basename -- $original_archive)"
f="${f%.zip}"
f="${f%.tar.gz}"
pushd "${extracted_folder}/.." > /dev/null
extracted_folder=$(ls -1 -d TensorRT*/)
zip -qq --symlinks "${working_folder}/${f}.zip" -r "${extracted_folder}"
rm -rf "${extracted_folder}"
popd > /dev/null
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment