Merge pull request 'feature/update_install_script' (#19) from feature/update_install_script into develop
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #19
This commit is contained in:
commit
6b8ef1118e
12
Dockerfile
12
Dockerfile
@ -5,15 +5,5 @@ RUN apt-get update && apt-get install -y \
|
||||
unzip \
|
||||
zip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN curl -fsSL -o /tmp/warp-packer \
|
||||
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/
|
||||
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" ]
|
||||
|
114
install
114
install
@ -6,19 +6,25 @@ 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
|
||||
}
|
||||
|
||||
# platform IDs
|
||||
LIN=linux
|
||||
LIN_URL=https://git.phoenix.ipv64.de/attachments/f701fbff-c58b-4aac-91e3-47efda1fc760
|
||||
MAC=macos
|
||||
MAC_URL=https://git.phoenix.ipv64.de/attachments/b09c6469-406a-4dd1-b5e8-1294a3aabf0f
|
||||
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
|
||||
function get_this_platform() {
|
||||
get_this_platform() {
|
||||
local this_platform="$(uname -s)"
|
||||
case $this_platform in
|
||||
Linux*) echo $LIN ;;
|
||||
@ -30,81 +36,111 @@ function get_this_platform() {
|
||||
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
|
||||
THIS_PLATFORM=$(get_this_platform)
|
||||
|
||||
# actually sets this architecture
|
||||
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
|
||||
|
||||
if [ "$this_platform" = "$LIN" ]; then
|
||||
echo "$LIN_URL"
|
||||
else
|
||||
echo "$MAC_URL"
|
||||
fi
|
||||
echo "$LIN_URL"
|
||||
if [ "$this_architecture" = "$X64" ]; then
|
||||
echo "$LIN_X64_URL"
|
||||
else
|
||||
echo "$LIN_AARCH64_URL"
|
||||
fi
|
||||
else
|
||||
echo "$MAC_URL"
|
||||
fi
|
||||
}
|
||||
|
||||
# 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
|
||||
curl -fsSL -o $temp_location $link
|
||||
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
|
||||
rm $temp_location
|
||||
}
|
||||
|
||||
# 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"
|
||||
WARP4J_LINK="https://git.phoenix.ipv64.de/public/warp4j/raw/branch/develop/warp4j"
|
||||
|
||||
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)
|
||||
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user