Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2012-07-11 14:41:33 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2012-07-11 14:41:33 (GMT)
commit092ba549582fd2ea9e8598bfc1678def9731636b (patch)
treec8ec95dc1397070341517a27678f77cee8c872ae /scripts
parent4dd3bc76bbab8266714a0f1a790bb13f505ccec4 (diff)
parentbe845f4e32fe80b7ca662ab690c684f028353fb3 (diff)
Merge branch 'master' of git.sugarlabs.org:sugar-build/sugar-build
Diffstat (limited to 'scripts')
-rw-r--r--scripts/find-free-display.c25
-rwxr-xr-xscripts/run-dogtail-tests11
-rwxr-xr-xscripts/shell/start-sugar3
-rw-r--r--scripts/xinitrc30
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`