diff --git a/build.sh b/build.sh index 8b6767e..4c2e347 100755 --- a/build.sh +++ b/build.sh @@ -1,27 +1,46 @@ #!/bin/sh -image="antora/antora" + +image="docker.io/antora/antora" cmd="--html-url-extension-style=indexify site.yml" -if [ "$(uname)" == "Darwin" ]; then + +if [ "$(uname)" = "Darwin" ]; then # Running on macOS. # Let's assume that the user has the Docker CE installed # which doesn't require a root password. - docker run --rm -it -v $(pwd):/antora $image $cmd -elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then + echo "" + echo "This build script is using Docker container runtime to run the build in an isolated environment." + echo "" + docker run --rm -it -v "$(pwd):/antora" $image $cmd + +elif [ "$(expr substr "$(uname -s)" 1 5)" = "Linux" ]; then # Running on Linux. - # Let's assume that it's running the Docker deamon + # Check whether podman is available, else faill back to docker # which requires root. - if groups | grep -wq "docker"; then - # Check if the current user is in the "docker" group. If true, no sudo is needed. + + if [ -f /usr/bin/podman ]; then + echo "" + echo "This build script is using Podman to run the build in an isolated environment." + echo "" + podman run --rm -it -v "$(pwd):/antora:z" $image $cmd + + elif [ -f /usr/bin/docker ]; then echo "" echo "This build script is using Docker to run the build in an isolated environment." echo "" - docker run --rm -it -v $(pwd):/antora:z $image $cmd + + if groups | grep -wq "docker"; then + docker run --rm -it -v "$(pwd):/antora:z" $image $cmd + else + echo "" + echo "This build script is using $runtime to run the build in an isolated environment. You might be asked for your password." + echo "You can avoid this by adding your user to the 'docker' group, but be aware of the security implications. See https://docs.docker.com/install/linux/linux-postinstall/." + echo "" + sudo docker run --rm -it -v "$(pwd):/antora:z" $image $cmd + fi else - # User isn't in the docker group; run the command with sudo. echo "" - echo "This build script is using Docker to run the build in an isolated environment. You might be asked for your password." - echo "You can avoid this by adding your user to the 'docker' group, but be aware of the security implications. See https://docs.docker.com/install/linux/linux-postinstall/." - echo "" - sudo docker run --rm -it -v $(pwd):/antora:z $image $cmd + echo "Error: Container runtime haven't been found on your system. Fix it by:" + echo "$ sudo dnf install podman" + exit 1 fi -fi \ No newline at end of file +fi diff --git a/preview.sh b/preview.sh index 8204907..4270107 100755 --- a/preview.sh +++ b/preview.sh @@ -1,31 +1,18 @@ #!/bin/sh -if [ "$(uname)" == "Darwin" ]; then - # Running on macOS. <1> +if [ "$(uname)" = "Darwin" ]; then + # Running on macOS. # Let's assume that the user has the Docker CE installed # which doesn't require a root password. echo "The preview will be available at http://localhost:8080/" - docker run --rm -v $(pwd):/antora:ro -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro -p 8080:80 nginx + docker run --rm -v "$(pwd):/antora:ro" -v "$(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro" -p 8080:80 nginx -elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then - # Running on Linux. <2> - # Let's assume that it's running the Docker deamon - # which requires root. - if groups | grep -wq "docker"; then - # Check if the current user is in the "docker" group. If true, no sudo is needed. - echo "" - echo "This build script is using Docker to run the build in an isolated environment." - echo "The preview will be available at http://localhost:8080/" - echo "" - docker run --rm -v $(pwd):/antora:ro,z -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro,z -p 8080:80 nginx - else - # User isn't in the docker group; run the command with sudo. <3> - echo "" - echo "This build script is using Docker to run the build in an isolated environment. You might be asked for your password." - echo "You can avoid this by adding your user to the 'docker' group, but be aware of the security implications. See https://docs.docker.com/install/linux/linux-postinstall/." - echo "" - echo "The preview will be available at http://localhost:8080/" - echo "" - sudo docker run --rm -v $(pwd):/antora:ro,z -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro,z -p 8080:80 nginx - fi +elif [ "$(expr substr "$(uname -s)" 1 5)" = "Linux" ]; then + # Running on Linux. + # Fedora Workstation has python3 installed as a default, so using that + echo "" + echo "The preview is available at http://localhost:8080" + echo "" + cd ./public + python3 -m http.server 8080 fi