
Start webapp in nohup so it doesn't close when window is closed and so it doesn't output stuff over the shell prompt.
122 lines
3.1 KiB
Bash
Executable file
122 lines
3.1 KiB
Bash
Executable file
#!/system/bin/sh
|
|
# This is runs a shell in an environment configured for git-annex.
|
|
# Nearly the only command that can be used in here is busybox!
|
|
# lib.start.so will run us in the root of our app directory
|
|
base=$(./busybox pwd)
|
|
cmd=$base/busybox
|
|
|
|
set -e
|
|
|
|
prep () {
|
|
# Cannot rely on Android providing a sane HOME
|
|
HOME="/sdcard/git-annex.home"
|
|
export HOME
|
|
}
|
|
|
|
buildtree () {
|
|
$cmd echo "Installation starting to $base"
|
|
$cmd cat "lib/lib.version.so"
|
|
|
|
if $cmd test -e "$base/bin"; then
|
|
$cmd mv "$base/bin" "$base/bin.old"
|
|
fi
|
|
$cmd mkdir -p "$base/bin"
|
|
|
|
for prog in busybox git-annex git-shell git-upload-pack git gpg rsync ssh ssh-keygen; do
|
|
$cmd echo "installing $prog"
|
|
if $cmd test -e "$base/bin/$prog"; then
|
|
$cmd rm -f "$base/bin/$prog"
|
|
fi
|
|
$cmd ln "$base/lib/lib.$prog.so" "$base/bin/$prog"
|
|
done
|
|
|
|
$cmd --install $base/bin
|
|
|
|
$cmd rm -rf "$base/bin.old"
|
|
|
|
$cmd tar zxf $base/lib/lib.git.tar.gz.so
|
|
for prog in git git-shell git-upload-pack; do
|
|
for link in $($cmd cat "$base/links/$prog"); do
|
|
$cmd echo "linking $link to $prog"
|
|
if $cmd test -e "$base/$link"; then
|
|
$cmd rm -f "$base/$link"
|
|
fi
|
|
$cmd ln "$base/bin/$prog" "$base/$link"
|
|
done
|
|
$cmd rm -f "$base/links/$prog"
|
|
done
|
|
|
|
$cmd mkdir -p "$base/templates"
|
|
$cmd mkdir -p "$base/tmp"
|
|
|
|
echo "#!/system/bin/sh" > "$base/runshell"
|
|
echo "exec $base/lib/lib.start.so" >> "$base/runshell"
|
|
chmod 755 runshell
|
|
|
|
$cmd cat "$base/lib/lib.version.so" > "$base/installed-version"
|
|
$cmd echo "Installation complete"
|
|
}
|
|
|
|
install () {
|
|
if $cmd test ! -e "$base/bin/git-annex"; then
|
|
if ! $cmd mkdir -p "$HOME"; then
|
|
$cmd echo "mkdir of $HOME failed!"
|
|
fi
|
|
if ! buildtree > $HOME/git-annex-install.log 2>&1; then
|
|
$cmd echo "Installation failed! Please report a bug and attach $HOME/git-annex-install.log"
|
|
$cmd sh
|
|
fi
|
|
elif $cmd test ! -e "$base/installed-version" || ! $cmd cmp "$base/installed-version" "$base/lib/lib.version.so" >/dev/null; then
|
|
if ! buildtree > $HOME/git-annex-install.log 2>&1; then
|
|
$cmd echo "Upgrade failed! Please report a bug and attach $HOME/git-annex-install.log"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
run () {
|
|
PATH="$base/bin:$PATH"
|
|
export PATH
|
|
|
|
ORIG_GIT_EXEC_PATH="$GIT_EXEC_PATH"
|
|
export ORIG_GIT_EXEC_PATH
|
|
GIT_EXEC_PATH=$base/libexec/git-core
|
|
export GIT_EXEC_PATH
|
|
|
|
ORIG_GIT_TEMPLATE_DIR="$GIT_TEMPLATE_DIR"
|
|
export ORIG_GIT_TEMPLATE_DIR
|
|
GIT_TEMPLATE_DIR="$base/templates"
|
|
export GIT_TEMPLATE_DIR
|
|
|
|
# Indicate which variables were exported above.
|
|
GIT_ANNEX_STANDLONE_ENV="GIT_EXEC_PATH GIT_TEMPLATE_DIR"
|
|
export GIT_ANNEX_STANDLONE_ENV
|
|
|
|
# This is a temporary directory on a non-crippled filesystem.
|
|
# This needs to be as short a path as possible.
|
|
GIT_ANNEX_TMP_DIR=$base/tmp
|
|
export GIT_ANNEX_TMP_DIR
|
|
|
|
if $cmd test "$1"; then
|
|
cmd="$1"
|
|
shift 1
|
|
exec "$cmd" "$@"
|
|
else
|
|
# As good a start point as any.
|
|
if $cmd test -d "$HOME"; then
|
|
cd "$HOME"
|
|
fi
|
|
$cmd echo "Starting webapp ..."
|
|
$cmd nohup git annex webapp >/dev/null &
|
|
/system/bin/sh
|
|
fi
|
|
}
|
|
|
|
if ! prep; then
|
|
$cmd echo "prep failed. Please report a bug."
|
|
read line
|
|
fi
|
|
if ! install; then
|
|
$cmd echo "install failed. Please report a bug."
|
|
read line
|
|
fi
|
|
run
|