Downloading Scratch project to XO

Philipp Kocher philipp.kocher at gmx.net
Thu Dec 18 01:34:07 EST 2008


Hi Bert, John

There is a bug in copy-from-journal, it is adding an additional dot 
before the file extension. Otherwise it is working.

[olpc at localhost ~]$ copy-from-journal -o 
07474cf4-4883-4ded-a994-ab5511cfc29c /tmp/test.sb
/home/olpc/.sugar/default/data/07474cf4-4883-4ded-a994-ab5511cfc29c -> 
/tmp/test..sb

My workaround in scratch-activity looks like this:
if [ -n "$object_id" ] ; then
	filename="$SUGAR_ACTIVITY_ROOT/instance/temp.sb"
	copy-from-journal -o "$object_id" "$filename"
	filename="$SUGAR_ACTIVITY_ROOT/instance/temp..sb"
else
	filename=""
fi
# run Squeak VM with Scratch image
exec /usr/bin/squeak \
	-vm-display-X11 \
	-swapbtn \
  	-sugarBundleId $bundle_id \
	-sugarActivityId $activity_id \
	ScratchXO.image \
	"$filename"

Philipp

Bert Freudenberg wrote:
> The simplest would be something like
> 
> if [ -n "$object_id" ] ; then
>     filename="$SUGAR_ACTIVITY_ROOT/instance/temp.sb"
>     copy-from-journal -o "$object_id" "$filename"
>     #... append "$filename" to Scratch command line ...
> fi
> 
> (assuming the Scratch wrapper still basically looks like the Etoys one)
> 
> - Bert -
> 
> On 17.12.2008, at 00:51, John Maloney wrote:
> 
>> Hi, Bert.
>>
>> Thanks for the help on this.
>>
>> To clarify, what I was doing was using the clipboard to move a 
>> downloaded Scratch project file. I dragged it from the Journal to the 
>> clipboard, then went to the Scratch activity and dropped it onto the 
>> Scratch window. So that's a somewhat different path from trying to 
>> open the project directly in the Journal. It would be great to get 
>> both paths working eventually.
>>
>> Re: But this retrieval could be done in the Scratch wrapper script.
>>
>> Cool! That would be an easy solution for me if the wrapper script is 
>> not too complex. Could you give me a hint about what the wrapper 
>> script would look like?
>>
>> Meanwhile, I will try to make the drag-n-drop-from-clipboard solution 
>> work.
>>
>>     -- John
>>
>>
>> On Dec 16, 2008, at 6:35 PM, Bert Freudenberg wrote:
>>
>>> Not quite, Sugar will not actually pass the file name of the Journal 
>>> entry when launching the activity. Instead, it passes the id of a 
>>> datastore object, and the activity is supposed to retrieve that from 
>>> the datastore. But this retrieval could be done in the Scratch 
>>> wrapper script.
>>>
>>> - Bert -
>>>
>>> On 17.12.2008, at 00:35, John Maloney wrote:
>>>
>>>> Hi, Bert.
>>>>
>>>> Re: does Scratch accept a .sb file on its command line?
>>>>
>>>> Yes, it does.
>>>>
>>>> The problem is that the journal is changing the file extension to 
>>>> something like .bin, and Scratch doesn't think a .bin file is a 
>>>> Scratch project file and simply ignores it.
>>>>
>>>> I believe the issue is just that we need one extra file in the 
>>>> Scratch activity info to tells the Journal that Scratch handles the 
>>>> file extensions .sb and .sprite. I figured out what that file should 
>>>> have in it a few weeks back but haven't yet had a chance to try it.
>>>>
>>>> I'll give it a try and, if it works, I'll release a new version of 
>>>> Scratch on the XO that includes that file.
>>>>
>>>>     -- John
>>>>
>>>> On Dec 15, 2008, at 2:46 PM, Bert Freudenberg wrote:
>>>>
>>>>> John,
>>>>>
>>>>> does Scratch accept a .sb file on its command line?
>>>>>
>>>>> If so, the launcher script could get the file from the Journal and 
>>>>> pass it on.
>>>>>
>>>>> - Bert -
>>>>>
>>>>> On 15.12.2008, at 18:53, John Maloney wrote:
>>>>>
>>>>>> Hi, Phillipp.
>>>>>>
>>>>>> Thanks for reporting this problem. I believe there is a way to tell
>>>>>> the XO to associate the .sb file extension with Scratch. I will look
>>>>>> into that and let you know if I figure it out.
>>>>>>
>>>>>>     -- John
>>>>>>
>>>>>>
>>>>>> On Dec 14, 2008, at 8:03 PM, Philipp Kocher wrote:
>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> I would like to download Scratch projects from a local server to the
>>>>>>> XO.
>>>>>>>
>>>>>>> On the server I added the following line to the file 
>>>>>>> /etc/mime.types:
>>>>>>> application/scratch             sb
>>>>>>>
>>>>>>> The apache server is now sending files with sb-extension with mime
>>>>>>> type application/scratch.
>>>>>>>
>>>>>>> On the XO the mime type gets stored in the datastore metadata-file.
>>>>>>> After adding the following line to the Scratch activity/
>>>>>>> activity.info file, Scratch gets started when clicking on the
>>>>>>> Scratch project in the Journal:
>>>>>>> mime_types = application/scratch
>>>>>>>
>>>>>>> The problem is that the project doesn't get opened. The scratch
>>>>>>> start script bin/scratch-activity gets called with the -u argument
>>>>>>> holding a datastore object ID, but the script doesn't handle the -u
>>>>>>> argument.
>>>>>>>
>>>>>>> How can I convert a datastore object ID to a filename, so scratch
>>>>>>> can open the project? And how do I get the necessary permissions to
>>>>>>> access the file?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Philipp
>>>>>>> Pepyride School
>>>>>>> Cambodia
>>>>>> _______________________________________________
>>>>>> Devel mailing list
>>>>>> Devel at lists.laptop.org
>>>>>> http://lists.laptop.org/listinfo/devel
> 
> 
> 



More information about the Devel mailing list