mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-23 22:17:19 +00:00
tools: Add a generate_vendor.sh script
This script is responsible for generating a tarball with all the rust vendored code that is needed for fully building kata-containers on a disconnected environment. Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
This commit is contained in:
parent
9495316145
commit
2eb07455d0
53
tools/packaging/release/generate_vendor.sh
Executable file
53
tools/packaging/release/generate_vendor.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Copyright (c) 2022 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
script_name="$(basename "${BASH_SOURCE[0]}")"
|
||||
|
||||
# This is very much error prone in case we re-structure our
|
||||
# repos again, but it's also used in a few other places :-/
|
||||
repo_dir="${script_dir}/../../.."
|
||||
|
||||
function usage() {
|
||||
|
||||
cat <<EOF
|
||||
Usage: ${script_name} tarball-name
|
||||
This script creates a tarball with all the cargo vendored code
|
||||
that a distro would need to do a full build of the project in
|
||||
a disconnected environment, generating a "tarball-name" file.
|
||||
|
||||
EOF
|
||||
|
||||
}
|
||||
|
||||
create_vendor_tarball() {
|
||||
vendor_dir_list=""
|
||||
pushd ${repo_dir}
|
||||
for i in $(find . -name 'Cargo.lock'); do
|
||||
dir="$(dirname $i)"
|
||||
pushd "${dir}"
|
||||
[ -d .cargo ] || mkdir .cargo
|
||||
cargo vendor >> .cargo/config
|
||||
vendor_dir_list+=" $dir/vendor $dir/.cargo/config"
|
||||
echo "${vendor_dir_list}"
|
||||
popd
|
||||
done
|
||||
popd
|
||||
|
||||
tar -cvzf ${1} ${vendor_dir_list}
|
||||
}
|
||||
|
||||
main () {
|
||||
[ $# -ne 1 ] && usage && exit 0
|
||||
create_vendor_tarball ${1}
|
||||
}
|
||||
|
||||
main "$@"
|
Loading…
Reference in New Issue
Block a user