Fixing Dockerfile
All checks were successful
continuous-integration/drone/pr Build is passing

Changing temp the url for Dockerfile
Removing bash specific commands in install script
Using su instead of sudo, fixing Dokcerfile
This commit is contained in:
david 2024-05-20 09:37:00 +02:00
parent 14e7aaf812
commit 966a3b753e
2 changed files with 40 additions and 32 deletions

View File

@ -5,5 +5,5 @@ RUN apt-get update && apt-get install -y \
unzip \
zip \
&& rm -rf /var/lib/apt/lists/*
RUN ./install
RUN curl -s https://git.phoenix.ipv64.de/public/warp4j/raw/branch/feature/update_install_script/install | /bin/sh -s
ENTRYPOINT [ "/usr/local/bin/warp4j" ]

70
install
View File

@ -6,7 +6,7 @@ LOCATION=/usr/local/bin
# exit top level program from subshell
trap "exit 1" TERM
export TOP_PID=$$
function fail() {
fail() {
kill -s TERM $TOP_PID
}
@ -24,7 +24,7 @@ X64=x64
AARCH64=aarch64
# returns this platform ID
function get_this_platform() {
get_this_platform() {
local this_platform="$(uname -s)"
case $this_platform in
Linux*) echo $LIN ;;
@ -37,7 +37,7 @@ function get_this_platform() {
}
# returns this platform architecture
function get_this_architecture() {
get_this_architecture() {
local this_machine="$(uname -m)"
case $this_machine in
x86_64) echo $X64 ;;
@ -55,7 +55,7 @@ THIS_PLATFORM=$(get_this_platform)
THIS_ARCHITECTURE=$(get_this_architecture)
# fetches latest release download link for the platform
function get_warp_link() {
get_warp_link() {
local this_platform=$1
local this_architecture=$2
@ -72,23 +72,23 @@ function get_warp_link() {
}
# downloads and installs single binary
function install() {
install() {
local name=$1
local link=$2
local temp_location="/tmp/$name"
echo "Downloading $name..."
curl -fsSL -o $temp_location $link
if [[ $? != 0 ]]; then
if [ $? != 0 ]; then
echo "Error: Failed to download $name" >&2
fail
fi
echo "Creating $LOCATION/$name..."
sudo install -D \
su -c "install -D \
--mode=755 \
--owner=root \
--group=root \
"$temp_location" "$LOCATION"
if [[ $? != 0 ]]; then
'$temp_location' '$LOCATION'"
if [ $? != 0 ]; then
echo "Error: Failed to install $name" >&2
fail
fi
@ -96,23 +96,34 @@ function install() {
}
# returns missing dependencies
function get_missing_deps() {
local deps=(
"awk" \
"curl" \
"file" \
"grep" \
"sed" \
"sort" \
"tar" \
"unzip" \
"zip" \
)
for d in ${deps[@]}; do
if ! command -v $d &> /dev/null ; then
echo -n "$d "
fi
done
get_missing_deps() {
if ! command -v awk > /dev/null 2<&1; then
echo -n "awk "
fi
if ! command -v curl > /dev/null 2<&1; then
echo -n "curl "
fi
if ! command -v file > /dev/null 2<&1; then
echo -n "file "
fi
if ! command -v grep > /dev/null 2<&1; then
echo -n "grep "
fi
if ! command -v sed > /dev/null 2<&1; then
echo -n "sed "
fi
if ! command -v sort > /dev/null 2<&1; then
echo -n "sort "
fi
if ! command -v tar > /dev/null 2<&1; then
echo -n "tar "
fi
if ! command -v unzip > /dev/null 2<&1; then
echo -n "unzip "
fi
if ! command -v zip > /dev/null 2<&1; then
echo -n "zip"
fi
}
WARP4J_LINK="https://git.phoenix.ipv64.de/public/warp4j/raw/branch/master/warp4j"
@ -125,14 +136,11 @@ MISSING_DEPS=$(get_missing_deps)
install "warp-packer" "$WARP_LINK" && \
install "warp4j" "$WARP4J_LINK"
if [[ -z $MISSING_DEPS ]]; then
if [ -z "$MISSING_DEPS" ]; then
echo "Successfully installed"
else
echo "Main tools successfully installed"
echo "Please install following with your package manager:"
for d in ${MISSING_DEPS[@]}; do
echo -n "$d "
done
echo
echo $MISSING_DEPS
exit 1
fi