<div dir="ltr">On 4 June 2013 06:19, Dr Ramesh Ramloll <span dir="ltr"><<a href="mailto:r.ramloll@gmail.com" target="_blank">r.ramloll@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hello </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Since my application deals with hundreds of such situations, that<br>
would be hard work in the future ... because as we well know updating<br>
code for complex stuff in opensim is so inefficient because there are<br>
no way to propagate changes for scripts that are used often in<br>
different objects.<br>
<br>
on a side note, how does one efficiently update scripts for many<br>
objects that use them at once. It would be great if each script<br>
element in every prim is actually a pointer to some script in<br>
inventory, so that when we change the script in the inventory, then<br>
all scripts would know about the change. Is this something way too<br>
hard to implement?<br></blockquote><div><br></div><div style>What I do with sloodle, which is a bit of a palava but works for my purposes, is:</div><div style><br></div><div style>- I keep a single copy of each LSL script in my Git repo.</div>
<div style><br></div><div style>- Each LSL script has a comment at the bottom saying where it lives in the Git repo.</div><div style><a href="https://github.com/sloodle/moodle-mod_sloodle/blob/master/mod/choice-1.0/objects/default/assets/sloodle_choice_text.lslp#L49">https://github.com/sloodle/moodle-mod_sloodle/blob/master/mod/choice-1.0/objects/default/assets/sloodle_choice_text.lslp#L49</a> </div>
<div style><br></div><div style>- I export my objects as an IAR file, then unpack the archive.</div><div style><br></div><div style>- I run a shell script that looks at the comment from the bottom of each LSL script, checks if the content is different from the file in Git, and copies it over if it is, so the archive gets all the latest versions of the various LSL scripts from Git.</div>
<div><a href="https://github.com/sloodle/sloodle_development_tools/blob/master/opensim_sync/syncGITScriptsToIAR.sh">https://github.com/sloodle/sloodle_development_tools/blob/master/opensim_sync/syncGITScriptsToIAR.sh</a></div>
<div style><br></div><div style>- I run another shell script to update the UUIDs of any scripts that have changed (I use MD5 sums of the script content to make UUIDs) to force OpenSim to use the new content.</div><div style>
<a href="https://github.com/sloodle/sloodle_development_tools/blob/master/opensim_sync/fixuuid.sh">https://github.com/sloodle/sloodle_development_tools/blob/master/opensim_sync/fixuuid.sh</a><br></div><div><br></div><div style>
- I repack the archive into an IAR then import it back into OpenSim.</div><div style><br></div><div style>I also have a script that works in the opposite direction and checks if there's anything in the IAR that's different from what I've checked into Git, in case I update something in-world and forget to check it in.</div>
<div><a href="https://github.com/sloodle/sloodle_development_tools/blob/master/opensim_sync/syncIARScriptsToGIT.sh">https://github.com/sloodle/sloodle_development_tools/blob/master/opensim_sync/syncIARScriptsToGIT.sh</a><br>
</div><div><br></div><div style>In theory this could probably turn into a single script that you could run in a single command.</div><div style><br></div><div style>HTH, YMMV,</div><div style><br></div></div>-- <br>Edmund Edgar<br>
Avatar Classroom<br>Your classroom, on the web, in a virtual world.<br><br><a href="mailto:ed@avatarclassroom.com" target="_blank">ed@avatarclassroom.com</a><br>+81 090 3912 3380<br>Skype: edmundedgar<br>Second Life: Edmund Earp<br>
Linked In: edmundedgar<br>Twitter: @edmundedgar<br><a href="http://www.avatarclassroom.com" target="_blank">http://www.avatarclassroom.com</a>
</div></div>