mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-07-22 11:13:22 +00:00
tests: Fix indentation of gha-run script
This PR fixes the indentation of gha run script. Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
This commit is contained in:
parent
33b300431e
commit
ce694b905b
@ -56,7 +56,7 @@ EOF
|
|||||||
# no. of feature arguments
|
# no. of feature arguments
|
||||||
# Skip zeroing blocks for new volumes.
|
# Skip zeroing blocks for new volumes.
|
||||||
sudo dmsetup create contd-thin-pool \
|
sudo dmsetup create contd-thin-pool \
|
||||||
--table "0 20971520 thin-pool /dev/loop21 /dev/loop20 512 32768 1 skip_block_zeroing"
|
--table "0 20971520 thin-pool /dev/loop21 /dev/loop20 512 32768 1 skip_block_zeroing"
|
||||||
|
|
||||||
case "${KUBERNETES}" in
|
case "${KUBERNETES}" in
|
||||||
k3s)
|
k3s)
|
||||||
@ -97,181 +97,181 @@ function configure_snapshotter() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function deploy_kata() {
|
function deploy_kata() {
|
||||||
platform="${1}"
|
platform="${1}"
|
||||||
ensure_yq
|
ensure_yq
|
||||||
|
|
||||||
[ "$platform" = "kcli" ] && \
|
[ "$platform" = "kcli" ] && \
|
||||||
export KUBECONFIG="$HOME/.kcli/clusters/${CLUSTER_NAME:-kata-k8s}/auth/kubeconfig"
|
export KUBECONFIG="$HOME/.kcli/clusters/${CLUSTER_NAME:-kata-k8s}/auth/kubeconfig"
|
||||||
|
|
||||||
# Ensure we're in the default namespace
|
# Ensure we're in the default namespace
|
||||||
kubectl config set-context --current --namespace=default
|
kubectl config set-context --current --namespace=default
|
||||||
|
|
||||||
sed -i -e "s|quay.io/kata-containers/kata-deploy:latest|${DOCKER_REGISTRY}/${DOCKER_REPO}:${DOCKER_TAG}|g" "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml"
|
sed -i -e "s|quay.io/kata-containers/kata-deploy:latest|${DOCKER_REGISTRY}/${DOCKER_REPO}:${DOCKER_TAG}|g" "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml"
|
||||||
|
|
||||||
# Enable debug for Kata Containers
|
# Enable debug for Kata Containers
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[1].value' --tag '!!str' "true"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[1].value' --tag '!!str' "true"
|
||||||
# Create the runtime class only for the shim that's being tested
|
# Create the runtime class only for the shim that's being tested
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[2].value' "${KATA_HYPERVISOR}"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[2].value' "${KATA_HYPERVISOR}"
|
||||||
# Set the tested hypervisor as the default `kata` shim
|
# Set the tested hypervisor as the default `kata` shim
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[3].value' "${KATA_HYPERVISOR}"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[3].value' "${KATA_HYPERVISOR}"
|
||||||
# Let the `kata-deploy` script take care of the runtime class creation / removal
|
# Let the `kata-deploy` script take care of the runtime class creation / removal
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[4].value' --tag '!!str' "true"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[4].value' --tag '!!str' "true"
|
||||||
# Let the `kata-deploy` create the default `kata` runtime class
|
# Let the `kata-deploy` create the default `kata` runtime class
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[5].value' --tag '!!str' "true"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[5].value' --tag '!!str' "true"
|
||||||
# Enable 'default_vcpus' hypervisor annotation
|
# Enable 'default_vcpus' hypervisor annotation
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[6].value' "default_vcpus"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[6].value' "default_vcpus"
|
||||||
|
|
||||||
if [ "${KATA_HOST_OS}" = "cbl-mariner" ]; then
|
if [ "${KATA_HOST_OS}" = "cbl-mariner" ]; then
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[6].value' "initrd kernel default_vcpus"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[6].value' "initrd kernel default_vcpus"
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[+].name' "HOST_OS"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[+].name' "HOST_OS"
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[-1].value' "${KATA_HOST_OS}"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[-1].value' "${KATA_HOST_OS}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "::group::Final kata-deploy.yaml that is used in the test"
|
echo "::group::Final kata-deploy.yaml that is used in the test"
|
||||||
cat "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml"
|
cat "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml"
|
||||||
grep "${DOCKER_REGISTRY}/${DOCKER_REPO}:${DOCKER_TAG}" "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" || die "Failed to setup the tests image"
|
grep "${DOCKER_REGISTRY}/${DOCKER_REPO}:${DOCKER_TAG}" "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" || die "Failed to setup the tests image"
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
kubectl apply -f "${tools_dir}/packaging/kata-deploy/kata-rbac/base/kata-rbac.yaml"
|
kubectl apply -f "${tools_dir}/packaging/kata-deploy/kata-rbac/base/kata-rbac.yaml"
|
||||||
if [ "${KUBERNETES}" = "k3s" ]; then
|
if [ "${KUBERNETES}" = "k3s" ]; then
|
||||||
kubectl apply -k "${tools_dir}/packaging/kata-deploy/kata-deploy/overlays/k3s"
|
kubectl apply -k "${tools_dir}/packaging/kata-deploy/kata-deploy/overlays/k3s"
|
||||||
else
|
else
|
||||||
kubectl apply -f "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml"
|
kubectl apply -f "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml"
|
||||||
fi
|
fi
|
||||||
kubectl -n kube-system wait --timeout="${KATA_DEPLOY_WAIT_TIMEOUT}" --for=condition=Ready -l name=kata-deploy pod
|
kubectl -n kube-system wait --timeout="${KATA_DEPLOY_WAIT_TIMEOUT}" --for=condition=Ready -l name=kata-deploy pod
|
||||||
|
|
||||||
# This is needed as the kata-deploy pod will be set to "Ready" when it starts running,
|
# This is needed as the kata-deploy pod will be set to "Ready" when it starts running,
|
||||||
# which may cause issues like not having the node properly labeled or the artefacts
|
# which may cause issues like not having the node properly labeled or the artefacts
|
||||||
# properly deployed when the tests actually start running.
|
# properly deployed when the tests actually start running.
|
||||||
if [ "${platform}" = "aks" ]; then
|
if [ "${platform}" = "aks" ]; then
|
||||||
sleep 240s
|
sleep 240s
|
||||||
else
|
else
|
||||||
sleep 60s
|
sleep 60s
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "::group::kata-deploy logs"
|
echo "::group::kata-deploy logs"
|
||||||
kubectl -n kube-system logs --tail=100 -l name=kata-deploy
|
kubectl -n kube-system logs --tail=100 -l name=kata-deploy
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
echo "::group::Runtime classes"
|
echo "::group::Runtime classes"
|
||||||
kubectl get runtimeclass
|
kubectl get runtimeclass
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
}
|
}
|
||||||
|
|
||||||
function run_tests() {
|
function run_tests() {
|
||||||
platform="${1:-}"
|
platform="${1:-}"
|
||||||
|
|
||||||
[ "$platform" = "kcli" ] && \
|
[ "$platform" = "kcli" ] && \
|
||||||
export KUBECONFIG="$HOME/.kcli/clusters/${CLUSTER_NAME:-kata-k8s}/auth/kubeconfig"
|
export KUBECONFIG="$HOME/.kcli/clusters/${CLUSTER_NAME:-kata-k8s}/auth/kubeconfig"
|
||||||
|
|
||||||
# Delete any spurious tests namespace that was left behind
|
# Delete any spurious tests namespace that was left behind
|
||||||
kubectl delete namespace kata-containers-k8s-tests &> /dev/null || true
|
kubectl delete namespace kata-containers-k8s-tests &> /dev/null || true
|
||||||
|
|
||||||
# Create a new namespace for the tests and switch to it
|
# Create a new namespace for the tests and switch to it
|
||||||
kubectl apply -f "${kubernetes_dir}/runtimeclass_workloads/tests-namespace.yaml"
|
kubectl apply -f "${kubernetes_dir}/runtimeclass_workloads/tests-namespace.yaml"
|
||||||
kubectl config set-context --current --namespace=kata-containers-k8s-tests
|
kubectl config set-context --current --namespace=kata-containers-k8s-tests
|
||||||
|
|
||||||
pushd "${kubernetes_dir}"
|
pushd "${kubernetes_dir}"
|
||||||
bash setup.sh
|
bash setup.sh
|
||||||
if [[ "${KATA_HYPERVISOR}" = "dragonball" ]] && [[ "${SNAPSHOTTER}" = "devmapper" ]]; then
|
if [[ "${KATA_HYPERVISOR}" = "dragonball" ]] && [[ "${SNAPSHOTTER}" = "devmapper" ]]; then
|
||||||
echo "Skipping tests for dragonball using devmapper"
|
echo "Skipping tests for dragonball using devmapper"
|
||||||
elif [[ "${KATA_HYPERVISOR}" = "cloud-hypervisor" ]]; then
|
elif [[ "${KATA_HYPERVISOR}" = "cloud-hypervisor" ]]; then
|
||||||
echo "Skipping tests for ${KATA_HYPERVISOR}"
|
echo "Skipping tests for ${KATA_HYPERVISOR}"
|
||||||
else
|
else
|
||||||
bash run_kubernetes_tests.sh
|
bash run_kubernetes_tests.sh
|
||||||
fi
|
fi
|
||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
|
|
||||||
function cleanup() {
|
function cleanup() {
|
||||||
platform="${1}"
|
platform="${1}"
|
||||||
test_type="${2:-k8s}"
|
test_type="${2:-k8s}"
|
||||||
ensure_yq
|
ensure_yq
|
||||||
|
|
||||||
[ "$platform" = "kcli" ] && \
|
[ "$platform" = "kcli" ] && \
|
||||||
export KUBECONFIG="$HOME/.kcli/clusters/${CLUSTER_NAME:-kata-k8s}/auth/kubeconfig"
|
export KUBECONFIG="$HOME/.kcli/clusters/${CLUSTER_NAME:-kata-k8s}/auth/kubeconfig"
|
||||||
|
|
||||||
echo "Gather information about the nodes and pods before cleaning up the node"
|
echo "Gather information about the nodes and pods before cleaning up the node"
|
||||||
get_nodes_and_pods_info
|
get_nodes_and_pods_info
|
||||||
|
|
||||||
if [ "${platform}" = "aks" ]; then
|
if [ "${platform}" = "aks" ]; then
|
||||||
delete_cluster ${test_type}
|
delete_cluster ${test_type}
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Switch back to the default namespace and delete the tests one
|
# Switch back to the default namespace and delete the tests one
|
||||||
kubectl config set-context --current --namespace=default
|
kubectl config set-context --current --namespace=default
|
||||||
kubectl delete namespace kata-containers-k8s-tests
|
kubectl delete namespace kata-containers-k8s-tests
|
||||||
|
|
||||||
if [ "${KUBERNETES}" = "k3s" ]; then
|
if [ "${KUBERNETES}" = "k3s" ]; then
|
||||||
deploy_spec="-k "${tools_dir}/packaging/kata-deploy/kata-deploy/overlays/k3s""
|
deploy_spec="-k "${tools_dir}/packaging/kata-deploy/kata-deploy/overlays/k3s""
|
||||||
cleanup_spec="-k "${tools_dir}/packaging/kata-deploy/kata-cleanup/overlays/k3s""
|
cleanup_spec="-k "${tools_dir}/packaging/kata-deploy/kata-cleanup/overlays/k3s""
|
||||||
else
|
else
|
||||||
deploy_spec="-f "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml""
|
deploy_spec="-f "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml""
|
||||||
cleanup_spec="-f "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml""
|
cleanup_spec="-f "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# shellcheck disable=2086
|
# shellcheck disable=2086
|
||||||
kubectl delete ${deploy_spec}
|
kubectl delete ${deploy_spec}
|
||||||
kubectl -n kube-system wait --timeout=10m --for=delete -l name=kata-deploy pod
|
kubectl -n kube-system wait --timeout=10m --for=delete -l name=kata-deploy pod
|
||||||
|
|
||||||
# Let the `kata-deploy` script take care of the runtime class creation / removal
|
# Let the `kata-deploy` script take care of the runtime class creation / removal
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml" 'spec.template.spec.containers[0].env[4].value' --tag '!!str' "true"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml" 'spec.template.spec.containers[0].env[4].value' --tag '!!str' "true"
|
||||||
# Create the runtime class only for the shim that's being tested
|
# Create the runtime class only for the shim that's being tested
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml" 'spec.template.spec.containers[0].env[2].value' "${KATA_HYPERVISOR}"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml" 'spec.template.spec.containers[0].env[2].value' "${KATA_HYPERVISOR}"
|
||||||
# Set the tested hypervisor as the default `kata` shim
|
# Set the tested hypervisor as the default `kata` shim
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml" 'spec.template.spec.containers[0].env[3].value' "${KATA_HYPERVISOR}"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml" 'spec.template.spec.containers[0].env[3].value' "${KATA_HYPERVISOR}"
|
||||||
# Let the `kata-deploy` create the default `kata` runtime class
|
# Let the `kata-deploy` create the default `kata` runtime class
|
||||||
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[5].value' --tag '!!str' "true"
|
yq write -i "${tools_dir}/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml" 'spec.template.spec.containers[0].env[5].value' --tag '!!str' "true"
|
||||||
|
|
||||||
sed -i -e "s|quay.io/kata-containers/kata-deploy:latest|${DOCKER_REGISTRY}/${DOCKER_REPO}:${DOCKER_TAG}|g" "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml"
|
sed -i -e "s|quay.io/kata-containers/kata-deploy:latest|${DOCKER_REGISTRY}/${DOCKER_REPO}:${DOCKER_TAG}|g" "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml"
|
||||||
cat "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml"
|
cat "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml"
|
||||||
grep "${DOCKER_REGISTRY}/${DOCKER_REPO}:${DOCKER_TAG}" "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml" || die "Failed to setup the tests image"
|
grep "${DOCKER_REGISTRY}/${DOCKER_REPO}:${DOCKER_TAG}" "${tools_dir}/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml" || die "Failed to setup the tests image"
|
||||||
# shellcheck disable=2086
|
# shellcheck disable=2086
|
||||||
kubectl apply ${cleanup_spec}
|
kubectl apply ${cleanup_spec}
|
||||||
sleep 180s
|
sleep 180s
|
||||||
|
|
||||||
# shellcheck disable=2086
|
# shellcheck disable=2086
|
||||||
kubectl delete ${cleanup_spec}
|
kubectl delete ${cleanup_spec}
|
||||||
kubectl delete -f "${tools_dir}/packaging/kata-deploy/kata-rbac/base/kata-rbac.yaml"
|
kubectl delete -f "${tools_dir}/packaging/kata-deploy/kata-rbac/base/kata-rbac.yaml"
|
||||||
}
|
}
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
export KATA_HOST_OS="${KATA_HOST_OS:-}"
|
export KATA_HOST_OS="${KATA_HOST_OS:-}"
|
||||||
export K8S_TEST_HOST_TYPE="${K8S_TEST_HOST_TYPE:-}"
|
export K8S_TEST_HOST_TYPE="${K8S_TEST_HOST_TYPE:-}"
|
||||||
|
|
||||||
action="${1:-}"
|
action="${1:-}"
|
||||||
|
|
||||||
case "${action}" in
|
case "${action}" in
|
||||||
install-azure-cli) install_azure_cli ;;
|
install-azure-cli) install_azure_cli ;;
|
||||||
login-azure) login_azure ;;
|
login-azure) login_azure ;;
|
||||||
create-cluster) create_cluster ;;
|
create-cluster) create_cluster ;;
|
||||||
create-cluster-kcli) create_cluster_kcli ;;
|
create-cluster-kcli) create_cluster_kcli ;;
|
||||||
configure-snapshotter) configure_snapshotter ;;
|
configure-snapshotter) configure_snapshotter ;;
|
||||||
setup-crio) setup_crio ;;
|
setup-crio) setup_crio ;;
|
||||||
deploy-k8s) deploy_k8s ;;
|
deploy-k8s) deploy_k8s ;;
|
||||||
install-bats) install_bats ;;
|
install-bats) install_bats ;;
|
||||||
install-kubectl) install_kubectl ;;
|
install-kubectl) install_kubectl ;;
|
||||||
get-cluster-credentials) get_cluster_credentials ;;
|
get-cluster-credentials) get_cluster_credentials ;;
|
||||||
deploy-kata-aks) deploy_kata "aks" ;;
|
deploy-kata-aks) deploy_kata "aks" ;;
|
||||||
deploy-kata-kcli) deploy_kata "kcli" ;;
|
deploy-kata-kcli) deploy_kata "kcli" ;;
|
||||||
deploy-kata-sev) deploy_kata "sev" ;;
|
deploy-kata-sev) deploy_kata "sev" ;;
|
||||||
deploy-kata-snp) deploy_kata "snp" ;;
|
deploy-kata-snp) deploy_kata "snp" ;;
|
||||||
deploy-kata-tdx) deploy_kata "tdx" ;;
|
deploy-kata-tdx) deploy_kata "tdx" ;;
|
||||||
deploy-kata-garm) deploy_kata "garm" ;;
|
deploy-kata-garm) deploy_kata "garm" ;;
|
||||||
deploy-kata-zvsi) deploy_kata "zvsi" ;;
|
deploy-kata-zvsi) deploy_kata "zvsi" ;;
|
||||||
run-tests) run_tests ;;
|
run-tests) run_tests ;;
|
||||||
run-tests-kcli) run_tests "kcli" ;;
|
run-tests-kcli) run_tests "kcli" ;;
|
||||||
cleanup-kcli) cleanup "kcli" ;;
|
cleanup-kcli) cleanup "kcli" ;;
|
||||||
cleanup-sev) cleanup "sev" ;;
|
cleanup-sev) cleanup "sev" ;;
|
||||||
cleanup-snp) cleanup "snp" ;;
|
cleanup-snp) cleanup "snp" ;;
|
||||||
cleanup-tdx) cleanup "tdx" ;;
|
cleanup-tdx) cleanup "tdx" ;;
|
||||||
cleanup-garm) cleanup "garm" ;;
|
cleanup-garm) cleanup "garm" ;;
|
||||||
cleanup-zvsi) cleanup "zvsi" ;;
|
cleanup-zvsi) cleanup "zvsi" ;;
|
||||||
delete-cluster) cleanup "aks" ;;
|
delete-cluster) cleanup "aks" ;;
|
||||||
delete-cluster-kcli) delete_cluster_kcli ;;
|
delete-cluster-kcli) delete_cluster_kcli ;;
|
||||||
*) >&2 echo "Invalid argument"; exit 2 ;;
|
*) >&2 echo "Invalid argument"; exit 2 ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
Loading…
Reference in New Issue
Block a user