X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2Flinux-install.sh;fp=altosui%2Flinux-install.sh;h=c5101eb4136e1bb35fc10fc670c47db90c40bc94;hp=0000000000000000000000000000000000000000;hb=de2a619900ee23911c866d5aaff63a0f9388bfc7;hpb=bf268354535a3a7b2e093235e5347ed2a6d809ff diff --git a/altosui/linux-install.sh b/altosui/linux-install.sh new file mode 100644 index 00000000..c5101eb4 --- /dev/null +++ b/altosui/linux-install.sh @@ -0,0 +1,190 @@ +#!/bin/sh + +can_ask=y + +finish() +{ + if [ "$can_ask" = "y" ]; then + echo "" + echo -n "Press enter to continue..." + read foo + fi + exit $1 +} + +# +# Make sure we have a terminal to talk to +# + +if tty -s; then + : +else + case "$DISPLAY" in + "") + echo 'No user input available' + can_ask=n + ;; + *) + GUESS_XTERMS="x-terminal-emulator xterm rxvt roxterm gnome-terminal dtterm eterm Eterm kvt konsole aterm" + for a in $GUESS_XTERMS; do + if type $a >/dev/null 2>&1; then + XTERM=$a + break + fi + done + case "$XTERM" in + "") + echo 'No terminal emulator available' + can_ask=n + ;; + *) + exec "$XTERM" -e "sh '$0'" + ;; + esac + ;; + esac +fi + +# +# Make sure we can run java +# + +echo -n "Checking for java..." + +if java -version > /dev/null 2>&1; then + echo " found it." +else + echo " java isn't working." + echo "" + echo "You'll need to install a java runtime system" + echo "on this computer before AltOS will work properly." + finish 1 +fi + +# +# Pick an installation target +# + +if [ '(' -d /opt -a -w /opt ')' -o '(' -d /opt/AltOS -a -w /opt/AltOS ')' ]; then + target_default=/opt +else + target_default="$HOME" +fi + +case "$#" in +0) + echo -n "Installation location [default: $target_default] " + if [ "$can_ask" = "y" ]; then + read target + else + echo "" + target="" + fi + case "$target" in + "") + target="$target_default" + ;; + esac + ;; +*) + target="$1" + ;; +esac + +target_altos="$target"/AltOS + +echo -n "Installing to $target..." + +# +# Make sure the target exists +# +mkdir -p "$target_altos" + +if [ ! -d "$target_altos" ]; then + echo "$target_altos does not exist and cannot be created" + finish 1 +fi + +if [ ! -w "$target_altos" ]; then + echo "$target_altos cannot be written" + finish 1 +fi + +# +# Unpack the tar archive appended to the end of this script +# +archive_line=`awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' "$0"` + +tail -n+$archive_line "$0" | tar xjf - -C "$target" + +case $? in +0) + echo " done." + ;; +*) + echo "Install failed." + finish 1 + ;; +esac + +# +# Create the .desktop file by editing the paths +# +case "$target" in +/*) + target_abs="$target" + ;; +*) + target_abs=`pwd`/$target + ;; +esac + +BIN="$target_abs"/AltOS + +desktop="$target"/AltOS/altos.desktop + +rm -f "$desktop" +sed "s;%BIN%;$BIN;" "$target"/AltOS/altos.desktop.in > "$desktop" + +# +# Figure out where to install the .desktop file. If we can, write it +# to the public /usr/share/applications, otherwise, write it to the +# per-user ~/.local/share/applications +# + +public=/usr/share/applications +private=$HOME/.local/share/applications +apps="" + +if [ -d "$public" -a -w "$public" ]; then + apps="$public" +else + mkdir -p "$private" >/dev/null 2>&1 + if [ -d "$private" -a -w "$private" ]; then + apps="$private" + fi +fi + +case "$apps" in +"") + echo "Cannot install application icon" + finish 1 + ;; +esac + +echo -n "Installing .desktop file to $apps..." + +cp "$desktop" "$apps" + +case "$?" in +0) + echo " done." + ;; +*) + echo " failed." + ;; +esac + +finish 0 + +__ARCHIVE_BELOW__