Base gestion des paramètres par défaut
This commit is contained in:
82
check-install
Executable file
82
check-install
Executable file
@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
source "$DIR/lib/util.sh"
|
||||
|
||||
function show_usage {
|
||||
echo
|
||||
echo "Usage: $0 deb_file [image]"
|
||||
echo
|
||||
echo "Paramètres: "
|
||||
echo
|
||||
echo " - deb_file Chemin vers le paquet Debian dont on doit vérifier l'installation"
|
||||
echo " - image Optionnel - Nom de l'image Docker à utiliser comme environnement pour tester l'installation. Défaut: debian:jessie"
|
||||
echo
|
||||
}
|
||||
|
||||
function create_container {
|
||||
|
||||
# Escape image name
|
||||
local escaped_basename=$(echo "$BASE_IMAGE" | sed 's/[^a-z0-9\-\_\.]/\_/gi')
|
||||
# Generate container tag
|
||||
container_tag="tamarin:${escaped_basename}_$(date +%s)"
|
||||
# Create temporary dir for the Dockerfile
|
||||
local temp_dir="$(mktemp -d)"
|
||||
|
||||
# Link lib folder
|
||||
ln -s $(readlink -f "$DIR/lib") "$temp_dir/lib"
|
||||
|
||||
# Create Dockerfile
|
||||
cat << EOF > "$temp_dir/Dockerfile"
|
||||
FROM $BASE_IMAGE
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
RUN apt-get update && apt-get install --yes gdebi-core
|
||||
|
||||
ADD ./lib /root/.tamarin
|
||||
RUN chmod +x /root/.tamarin/install.sh
|
||||
|
||||
VOLUME /deb
|
||||
|
||||
ENTRYPOINT ["/root/.tamarin/install.sh"]
|
||||
|
||||
EOF
|
||||
|
||||
# Build image
|
||||
tar -C "$temp_dir" -czh . | docker build -t "$container_tag" - 2> >(error) 1> >(info)
|
||||
|
||||
# Delete temporary folder
|
||||
rm -rf "$temp_dir"
|
||||
|
||||
}
|
||||
|
||||
function main {
|
||||
|
||||
# Create container image
|
||||
create_container
|
||||
|
||||
# Run container and install package
|
||||
docker run -e "DISTRIB=$BASE_IMAGE" --rm -v="$DEB_DIR:/deb" "$container_tag" "/deb/$DEB_NAME"
|
||||
|
||||
# Check for return
|
||||
if [ $? != 0 ]; then
|
||||
fatal "Installation did not complete correctly !"
|
||||
fi
|
||||
|
||||
info "Installation complete."
|
||||
|
||||
}
|
||||
|
||||
# Test for arguments
|
||||
if [ -z "$1" ]; then
|
||||
show_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEB_PATH=$(readlink -f "$1")
|
||||
DEB_NAME=$(basename "$DEB_PATH")
|
||||
DEB_DIR=$(dirname "$DEB_PATH")
|
||||
BASE_IMAGE="${2:-debian:jessie}"
|
||||
|
||||
main
|
Reference in New Issue
Block a user