#!/bin/sh # -*- shell-script -*- [ x"$1" = x-n ] && { TE=echo; shift; } || TE= echo2 () { echo "$@" >&2; } die () { echo2 "$@"; exit 1; } x () { echo2 "$@"; "$@"; } ID=`id | sed 's/(.*//;s/.*=//'` chkroot () { [ x$ID = x0 -o x"$TE" != x ] && return { cut -d: -f2- | sed "s/ *'$/'/g" >&2; } <<. : This command requres root access : Please run either: : sudo $0 $cmd $@ : or : su -c '$0 $cmd $@' . exit 1 } chkvdso () { case `/scratchbox/tools/bin/echo jee 2>/dev/null` in jee) true ;; *) false ;; esac } cmd_readme () # some notes and instructions (FIXME no content yet) { cut -d: -f2- < /proc/sys/vm/vdso_enabled test -f /proc/sys/kernel/vdso && echo 0 > /proc/sys/kernel/vdso /scratchbox/sbin/sbox_ctl start } cmd_xephyr () # run Xephyr for Maemo with suitable parameters. { case `which Xephyr 2>/dev/null` in /*) ;; *) die Install Xeprhyr on your system first ;; esac x Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac & sleep 1 echo Run '' exit 0 # Xephyr does not seem to exist here anymore pfx=/scratchbox/users/${LOGNAME}/targets/SDK_PC/usr export LD_LIBRARY_PATH=${pfx}/lib; export LD_LIBRARY_PATH exec ${pfx}/bin/Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac & } cmd__xvnc () # # run xvnc with suitable args (alternative to xephyr) { rm -f ~tmp/maemovncpw-$USER & # Xvnc is in vnc-server package Xvnc -geometry 800x480 -dpi 72 -ac :2 -depth 16 \ -rfbauth /tmp/maemovncpw-$USER & { sleep 1; echo vvnncc; sleep 1; echo vvnncc; sleep 1; } \ | vncpasswd /tmp/maemovncpw-$USER echo } cmd__view () # # run vncviewer that connects to xvnc... { # vncviewer is in vnc package vncviewer -passwd /tmp/maemovncpw-$USER :2 & echo Now, in terminal where you entered $0 login, enter echo echo ' ' af-sb-init.sh start echo } cmd_login () ## login { chkvdso || die run '' $0 start '' as root LANGUAGE=en_GB PAGER=less DISPLAY=:2 export LANGUAGE PAGER DISPLAY echo echo If login below fails, run '' $0 start '' as root first echo x exec /scratchbox/login -k } # -- [ x"$1" = x ] && { echo echo Usage: $0 ' [args]' echo echo $0 commands available: echo sed -n '/^cmd_[a-z]/ { s/cmd_/ /; s/ () [ -#]*/ / s/\(.\{11\}\) */\1/p; }' $0 echo echo Commands may be abbreviated down to no ambiguity echo exit 0 } cmd=$1; shift case $cmd in d) cmd=diff ;; esac cc= cp= for m in `sed -n 's/^cmd_\([a-z0-9_]*\) (.*/\1/p' $0` do case $m in $cmd) cp= cc=$cmd cm=$cmd; break ;; $cmd*) cp=$cc; cc="$m $cc"; cm=$m ;; esac done [ x"$cc" = x ] && { echo $0: $cmd -- command not found.; exit 1; } [ x"$cp" != x ] && { echo $0: $cmd -- ambiquous command: matches $cc; exit 1; } cmd=$cm cmd_$cm "$@"