diff options
author | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-07-11 14:41:33 (GMT) |
---|---|---|
committer | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-07-11 14:41:33 (GMT) |
commit | 092ba549582fd2ea9e8598bfc1678def9731636b (patch) | |
tree | c8ec95dc1397070341517a27678f77cee8c872ae /scripts | |
parent | 4dd3bc76bbab8266714a0f1a790bb13f505ccec4 (diff) | |
parent | be845f4e32fe80b7ca662ab690c684f028353fb3 (diff) |
Merge branch 'master' of git.sugarlabs.org:sugar-build/sugar-build
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/find-free-display.c | 25 | ||||
-rwxr-xr-x | scripts/run-dogtail-tests | 11 | ||||
-rwxr-xr-x | scripts/shell/start-sugar | 3 | ||||
-rw-r--r-- | scripts/xinitrc | 30 |
4 files changed, 49 insertions, 20 deletions
diff --git a/scripts/find-free-display.c b/scripts/find-free-display.c new file mode 100644 index 0000000..4a07131 --- /dev/null +++ b/scripts/find-free-display.c @@ -0,0 +1,25 @@ +#include <stdio.h> +#include <X11/extensions/Xrandr.h> + +int main(int argc, char **argv) +{ + int port; + + for (port = 99; port < 1000; port++) { + char display_name[255]; + + sprintf(display_name, ":%d", port); + Display *dpy = XOpenDisplay(display_name); + + if (!dpy) { + printf(display_name); + return 0; + } else { + XCloseDisplay(dpy); + } + } + + printf("No free display found"); + + return 0; +} diff --git a/scripts/run-dogtail-tests b/scripts/run-dogtail-tests index dcef0b8..eeff2ac 100755 --- a/scripts/run-dogtail-tests +++ b/scripts/run-dogtail-tests @@ -3,8 +3,9 @@ scriptsdir=`dirname "$0"` rootdir=`dirname "$scriptsdir"` testsdir=$rootdir/tests +scriptsdir=$rootdir/scripts logsdir=$rootdir/logs -display=:99 +display=`$scriptsdir/find-free-display` resolution=1024x768x16 minver="0.8.0" @@ -23,11 +24,7 @@ fi export SUGAR_LOGGER_LEVEL=debug export GTK_MODULES=gail:atk-bridge -export SUGAR_PROFILE=dogtail - -PROFILE_PATH=~/.sugar/dogtail - -rm -rf $PROFILE_PATH +export SUGAR_DOGTAIL=yes xinit $scriptsdir/xinitrc -- $xserver & xinitpid=$! @@ -45,7 +42,7 @@ else LOGFILE=$logsdir/test.tar fi -cd $PROFILE_PATH/logs +cd ~/.sugar/dogtail/logs tar cvf $LOGFILE *.log exit $result diff --git a/scripts/shell/start-sugar b/scripts/shell/start-sugar index 86766fa..0bb1b5c 100755 --- a/scripts/shell/start-sugar +++ b/scripts/shell/start-sugar @@ -2,5 +2,6 @@ shelldir=`dirname "$0"` scriptsdir=`dirname "$shelldir"` +display=`$scriptsdir/find-free-display` -xinit $scriptsdir/xinitrc -- :99 +xinit $scriptsdir/xinitrc -- $display diff --git a/scripts/xinitrc b/scripts/xinitrc index 078d52b..14f5b1f 100644 --- a/scripts/xinitrc +++ b/scripts/xinitrc @@ -7,16 +7,24 @@ unset SESSION_MANAGER SCRIPTS_DIR=`dirname "$0"` ROOT_DIR=`dirname "$SCRIPTS_DIR"` -if [ -f $ROOT_DIR/config ]; then - source $ROOT_DIR/config +if [ ! -f $ROOT_DIR/config ]; then + touch $ROOT_DIR/config fi -echo $OUTPUT +if [ ! -z $SUGAR_PROFILE ]; then + grep -q PROFILE $ROOT_DIR/config + if [ $? -eq 1 ]; then + randomstring=`</dev/urandom tr -cd A-Za-z0-9 | head -c10` + echo "PROFILE=$randomstring" >> $ROOT_DIR/config + fi +fi + +source $ROOT_DIR/config # Sugar doesn't handle multiple outputs properly. To avoid issues we keep the # first output in the list returned by xrandr and turn off everything else. -OUTPUTS=`scripts/list-outputs` +OUTPUTS=`$SCRIPTS_DIR/list-outputs` for output in $OUTPUTS do @@ -30,14 +38,12 @@ do fi done -if [ ! -z $RESOLUTION ]; then - xrandr -s $RESOLUTION -fi - -if [ -z $SUGAR_SESSION ]; then - export SUGAR_SESSION=yes -else - export SUGAR_PROFILE=development +echo $SUGAR_DOGTAIL +if [ ! -z $SUGAR_DOGTAIL ]; then + rm -rf ~/.sugar/dogtail + export SUGAR_PROFILE=dogtail +elif [ ! -z $PROFILE ]; then + export SUGAR_PROFILE=$PROFILE fi eval `ssh-agent -s` |