release/1.0.0 #23

Merged
David merged 66 commits from release/1.0.0 into master 2024-05-20 20:56:54 +02:00
2 changed files with 76 additions and 50 deletions
Showing only changes of commit 6b8ef1118e - Show all commits

View File

@ -5,15 +5,5 @@ RUN apt-get update && apt-get install -y \
unzip \ unzip \
zip \ zip \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN curl -fsSL -o /tmp/warp-packer \ RUN curl -s https://git.phoenix.ipv64.de/public/warp4j/raw/branch/feature/update_install_script/install | /bin/sh -s
https://git.phoenix.ipv64.de/public/warp/releases/download/1.0.0/linux-aarch64.warp-packer \
&& install -D \
--mode=755 \
--owner=root \
--group=root \
/tmp/warp-packer \
/usr/local/bin \
&& rm /tmp/warp-packer
WORKDIR /workdir
COPY warp4j /usr/local/bin/
ENTRYPOINT [ "/usr/local/bin/warp4j" ] ENTRYPOINT [ "/usr/local/bin/warp4j" ]

114
install
View File

@ -6,19 +6,25 @@ LOCATION=/usr/local/bin
# exit top level program from subshell # exit top level program from subshell
trap "exit 1" TERM trap "exit 1" TERM
export TOP_PID=$$ export TOP_PID=$$
function fail() { fail() {
kill -s TERM $TOP_PID kill -s TERM $TOP_PID
} }
# platform IDs # platform IDs
LIN=linux LIN=linux
LIN_URL=https://git.phoenix.ipv64.de/attachments/f701fbff-c58b-4aac-91e3-47efda1fc760
MAC=macos MAC=macos
MAC_URL=https://git.phoenix.ipv64.de/attachments/b09c6469-406a-4dd1-b5e8-1294a3aabf0f
WIN=windows WIN=windows
# Urls
LIN_X64_URL=https://git.phoenix.ipv64.de/public/warp/releases/download/1.0.0/linux-x64.warp-packer
LIN_AARCH64_URL=https://git.phoenix.ipv64.de/public/warp/releases/download/1.0.0/linux-aarch64.warp-packer
MAC_URL=https://git.phoenix.ipv64.de/public/warp/releases/download/1.0.0/macos-x64.warp-packer
# platform architecture
X64=x64
AARCH64=aarch64
# returns this platform ID # returns this platform ID
function get_this_platform() { get_this_platform() {
local this_platform="$(uname -s)" local this_platform="$(uname -s)"
case $this_platform in case $this_platform in
Linux*) echo $LIN ;; Linux*) echo $LIN ;;
@ -30,81 +36,111 @@ function get_this_platform() {
esac esac
} }
# returns this platform architecture
get_this_architecture() {
local this_machine="$(uname -m)"
case $this_machine in
x86_64) echo $X64 ;;
aarch64) echo $AARCH64 ;;
*)
fail_with "Unsupported machine $this_machine"
;;
esac
}
# actually sets this platform # actually sets this platform
THIS_PLATFORM=$(get_this_platform) THIS_PLATFORM=$(get_this_platform)
# actually sets this architecture
THIS_ARCHITECTURE=$(get_this_architecture)
# fetches latest release download link for the platform # fetches latest release download link for the platform
function get_warp_link() { get_warp_link() {
local this_platform=$1 local this_platform=$1
local this_architecture=$2
if [ "$this_platform" = "$LIN" ]; then if [ "$this_platform" = "$LIN" ]; then
echo "$LIN_URL" echo "$LIN_URL"
else if [ "$this_architecture" = "$X64" ]; then
echo "$MAC_URL" echo "$LIN_X64_URL"
fi else
echo "$LIN_AARCH64_URL"
fi
else
echo "$MAC_URL"
fi
} }
# downloads and installs single binary # downloads and installs single binary
function install() { install() {
local name=$1 local name=$1
local link=$2 local link=$2
local temp_location="/tmp/$name" local temp_location="/tmp/$name"
echo "Downloading $name..." echo "Downloading $name..."
curl -fsSL -o "$temp_location" "$link" curl -fsSL -o $temp_location $link
if [[ $? != 0 ]]; then if [ $? != 0 ]; then
echo "Error: Failed to download $name" >&2 echo "Error: Failed to download $name" >&2
fail fail
fi fi
echo "Creating $LOCATION/$name..." echo "Creating $LOCATION/$name..."
sudo install -D \ su -c "install -D \
--mode=755 \ --mode=755 \
--owner=root \ --owner=root \
--group=root \ --group=root \
"$temp_location" "$LOCATION" '$temp_location' '$LOCATION'"
if [[ $? != 0 ]]; then if [ $? != 0 ]; then
echo "Error: Failed to install $name" >&2 echo "Error: Failed to install $name" >&2
fail fail
fi fi
rm $temp_location
} }
# returns missing dependencies # returns missing dependencies
function get_missing_deps() { get_missing_deps() {
local deps=( if ! command -v awk > /dev/null 2<&1; then
"awk" \ echo -n "awk "
"curl" \ fi
"file" \ if ! command -v curl > /dev/null 2<&1; then
"grep" \ echo -n "curl "
"sed" \ fi
"sort" \ if ! command -v file > /dev/null 2<&1; then
"tar" \ echo -n "file "
"unzip" \ fi
"zip" \ if ! command -v grep > /dev/null 2<&1; then
) echo -n "grep "
for d in ${deps[@]}; do fi
if ! command -v $d &> /dev/null ; then if ! command -v sed > /dev/null 2<&1; then
echo -n "$d " echo -n "sed "
fi fi
done 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" WARP4J_LINK="https://git.phoenix.ipv64.de/public/warp4j/raw/branch/develop/warp4j"
echo "Getting information about warp-packer releases..." echo "Getting information about warp-packer releases..."
WARP_LINK=$(get_warp_link $THIS_PLATFORM) WARP_LINK=$(get_warp_link $THIS_PLATFORM $THIS_ARCHITECTURE)
MISSING_DEPS=$(get_missing_deps) MISSING_DEPS=$(get_missing_deps)
install "warp-packer" "$WARP_LINK" && \ install "warp-packer" "$WARP_LINK" && \
install "warp4j" "$WARP4J_LINK" install "warp4j" "$WARP4J_LINK"
if [[ -z $MISSING_DEPS ]]; then if [ -z "$MISSING_DEPS" ]; then
echo "Successfully installed" echo "Successfully installed"
else else
echo "Main tools successfully installed" echo "Main tools successfully installed"
echo "Please install following with your package manager:" echo "Please install following with your package manager:"
for d in ${MISSING_DEPS[@]}; do echo $MISSING_DEPS
echo -n "$d "
done
echo
exit 1 exit 1
fi fi