Edmund, doing what you describe should be absolutely fine. In fact, one of my design aims with laying out .oars/.iars in this way was to allow them to be inspected/constructed/altered by external tools, though it can still be a pretty tricky operation.

Changing the UUID is necessary since if an asset already exists with that ID it will be reused. As long as you use a random UUID and replace all the existing references as you're doing then you should be fine.

Chris, this is the way it has been done for years. There's no real errors to police - either an asset uuid already exists and so is reused or it does not and so is ignored.

On 29/06/12 08:25, Chris wrote:
I believe this is happening due to a semi-recent change to how IARs handle 
asset loading. The new way of doing it is to
not overwrite existing assets if the asset to be loaded shares the same UUID 
with an asset that already exists in the
database (please correct me on this if I am wrong).

As for manually changing ID's in the IAR itself, I can't attest for the 
safeness of doing it that way. But I would
imagine it would be relatively safe provided that the ID's are changed in all 
the spots that they are referenced since
the IAR loader should be rejecting duplicate UUID load attempts if the 
situation should arise. Opensim devs, please
correct me on this as well if I am incorrect =) I would be curious myself to 
know if this is a safe thing to do.


On 6/29/2012 1:43 AM, Edmund Edgar wrote:
I have some situations where I want to export an object as an IAR,
faff with the LSL code, and reimport it.

This is working fine, except that sometimes the UUIDs of the scripts
I've faffed with already exist in OpenSim, resulting in the new
version not being imported.
(I'm pretty sure that's what's happening - I've tried clearing the
viewer cache and deleting stuff under bin/ScriptEngines and so forth.)

To avoid this, I want to change the UUIDs of the scripts I've faffed
with in my IAR every time I make a change to their content. I've tried
this and it seems to work, but I as I don't understand the internals
of this stuff I just wanted to check if there's some important thing
I'm overlooking that will cause death and devastation to rain down on
me and the unlucky people who use my IAR.

Specifically what I do is:
1) Export IAR, untar it.
2) Faff with scripts.
3) For each script that's changed, make a new UUID by taking the md5
sum of the contents, and sticking in some hyphens where they appear to
belong.
4) Rename the <old UUID>_script.lsl under assets/ to use the new UUID.
4) Run sed on anything called ".xml" in the archive to change any
reference to the old UUID to the new UUID.
5) Retar the IAR.
6) Reimport.

This is the script I run to do it:
https://github.com/sloodle/sloodle_development_tools/blob/master/opensim_sync/fixuuid.sh

This seems to be working OK, but can anyone think of anything bad
that's going to happen?





--
Justin Clark-Casey (justincc)
http://justincc.org/blog
http://twitter.com/justincc


_______________________________________________
Opensim-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opensim-users

Reply via email to