Oh, I see. Try: nuke.addOnScriptClose(remAutosave.remAutosave)
And make sure you're importing nuke in remAutosave.py. -Ean On Sat, Nov 19, 2011 at 12:46 PM, Ron Ganbar <[email protected]> wrote: > I must be doing something wrong. Obviously I am cause it's not working. > This is my menu.py: > > ################### > import remAutosave > > nuke.addOnScriptClose(remAutosave) > ################### > > I have a file called remAutosave.py in my .nuke folder and in it I have > the function: > > > ################### > def remAutosave(): > autoS = nuke.toNode("preferences")["AutoSaveName"].evaluate() > if os.path.isfile(autoS): > ask = nuke.ask('Autosave file found.\nDelete?') > if ask == True: > os.remove(autoS) > ################### > > > Yet Nuke gives me an error message on startup. Any idea? > > Thanks, > > Ron Ganbar > email: [email protected] > tel: +44 (0)7968 007 309 [UK] > +972 (0)54 255 9765 [Israel] > url: http://ronganbar.wordpress.com/ > > > > On 19 November 2011 14:10, Ean Carr <[email protected]> wrote: > >> Put this in your menu.py: >> >> nuke.addOnScriptClose(remAutosave) >> >> -E >> >> >> On Fri, Nov 18, 2011 at 5:39 PM, Ron Ganbar <[email protected]> wrote: >> >>> So how do I automatically add this to all scripts' onScriptClose >>> property? >>> >>> >>> >>> Ron Ganbar >>> email: [email protected] >>> tel: +44 (0)7968 007 309 [UK] >>> +972 (0)54 255 9765 [Israel] >>> url: http://ronganbar.wordpress.com/ >>> >>> >>> >>> On 18 November 2011 19:29, Michael Habenicht <[email protected]> wrote: >>> >>>> Hallo Abraham, >>>> >>>> you have to use evaluate() instead of getValue(). >>>> >>>> So a more universal version of Ron's script should look like this: >>>> >>>> def remAutosave(): >>>> autoS = nuke.toNode("preferences")["AutoSaveName"].evaluate() >>>> if os.path.isfile(autoS): >>>> ask = nuke.ask('Autosave file found.\nDelete?') >>>> if ask == True: >>>> os.remove(autoS) >>>> >>>> Viele Grüße in die Türkenstraße! >>>> Michael >>>> >>>> ------------------------------------------ >>>> DI (FH) Michael Habenicht >>>> compositing - vfx :: motiongraphics :: dvd >>>> >>>> http://www.tinitron.de >>>> [email protected] >>>> ** >>>> Digital Compositor & TD TRIXTER Film Munich >>>> http://www.trixter.de >>>> ------------------------------------------ >>>> >>>> ----- Original Message ----- >>>> From: [email protected] >>>> To: [email protected] >>>> Date: 18.11.2011 17:06:05 >>>> Subject: Re: [Nuke-python] Getting autosave location of current script >>>> >>>> >>>> > I already wrote a very simple version of this function. As for every >>>> other >>>> > script I ever wrote - it's not finished and pretty straight forward. >>>> > Of course, it doesn't answer your question. Still, it relates, so >>>> here it >>>> > is. >>>> > By the way, it's designed to be added as a onScriptClose function. >>>> > >>>> > >>>> > def remAutosave(): >>>> > script = nuke.Root()['name'].getValue() >>>> > autoS = script + '.autosave' >>>> > if os.path.isfile(autoS): >>>> > ask = nuke.ask('Autosave file found.\nDelete?') >>>> > if ask == True: >>>> > os.remove(autoS) >>>> > >>>> > >>>> > Ron Ganbar >>>> > email: [email protected] >>>> > tel: +44 (0)7968 007 309 [UK] >>>> > +972 (0)54 255 9765 [Israel] >>>> > url: http://ronganbar.wordpress.com/ >>>> > >>>> > >>>> > >>>> > On 18 November 2011 18:00, Abraham Schneider wrote: >>>> > >>>> > > Hi there! >>>> > > >>>> > > I wanted to write a callback function to automatically delete >>>> > > the .autosave file, if the script was closed correctly. I find it >>>> very >>>> > > irritating to get the 'there is a newer autosave' message when >>>> loading >>>> > > a script, even if the script was closed properly and on purpose >>>> > > without saving it when closing. I'd only like to keep the autosave >>>> > > file if Nuke crashes or something like that. >>>> > > >>>> > > Problem is: my scripting skills aren't that good. I wanted to start >>>> > > with checking if an autosave file exists. To do this, I wanted to >>>> use >>>> > > the actual value for the AutoSaveName set in the preferences. By >>>> > > default, this value is set to '[firstof [value root.name] [getenv >>>> > > NUKE_TEMP_DIR]/].autosave'. I'm able to get the string from the >>>> > > preferences with something like: >>>> > > >>>> > > myprefs = nuke.toKnob('preferences') >>>> > > print myprefs.knob('AutoSaveName').**getValue() >>>> > > >>>> > > or >>>> > > >>>> > > print nuke.tcl('value preferences.AutoSaveName') >>>> > > >>>> > > >>>> > > that always gives me the string '[firstof [value root.name] [getenv >>>> > > NUKE_TEMP_DIR]/].autosave'. But what I'd really want to get is the >>>> > > evaluated value of the string, so I tried it with 'eval', 'expr', >>>> > > 'expression', etc., but didn't get any result. The only way a got a >>>> > > result was when I used "print nuke.tcl('eval [value >>>> > > preferences.AutoSaveName]')": >>>> > > >>>> > > print nuke.tcl('eval [value preferences.AutoSaveName]') >>>> > > # Result: >>>> > > Traceback (most recent call last): >>>> > > File "", line 1, in >>>> > > RuntimeError: Syntax error at >>>> "/mnt/frozone/projects/vier_**hunde_1234" >>>> > > >>>> > > So it IS doing something, but there seems to be an syntax error. >>>> But I >>>> > > can't see what the error is. >>>> > > >>>> > > Can anyone explain to me why that doesn't work and/or how to get the >>>> > > proper result that Nuke also uses internally as the path for the >>>> > > autosave file? Or better: what would be a good way to delete the >>>> > > autosave file of the script that I'm closing on purpose without >>>> saving? >>>> > > >>>> > > Thanks for any help and sorry if the code above hurts your eyes, I'm >>>> > > just starting to script in Nuke and find the mixture of TCL and >>>> Python >>>> > > still very confusing. >>>> > > >>>> > > Best regards, >>>> > > >>>> > > Abraham >>>> > > >>>> > > >>>> > > Abraham Schneider >>>> > > Senior VFX Compositor >>>> > > >>>> > > >>>> > > ARRI Film & TV Services GmbH >>>> > > Tuerkenstr. 89 >>>> > > D-80799 Muenchen / Germany >>>> > > >>>> > > Phone +49 89 3809-1269 >>>> > > >>>> > > EMail [email protected] >>>> > > www.arri.de/filmtv >>>> > > ______________________________**__ >>>> > > >>>> > > >>>> > > ARRI Film & TV Services GmbH >>>> > > Sitz: München Registergericht: Amtsgericht München >>>> > > Handelsregisternummer: HRB 69396 >>>> > > Geschäftsführer: Franz Kraus, Dr. Martin Prillmann, Josef Reidinger >>>> > > ______________________________**_________________ >>>> > > Nuke-python mailing list >>>> > > Nuke-python@support.**thefoundry.co.uk, >>>> > > http://forums.thefoundry.co.**uk/ >>>> > > http://support.thefoundry.co. >>>> **uk/cgi-bin/mailman/listinfo/**nuke-python >>>> > > >>>> > _______________________________________________ >>>> > Nuke-python mailing list >>>> > [email protected], http://forums.thefoundry.co.uk/ >>>> > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >>>> > >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> Nuke-python mailing list >>>> [email protected], http://forums.thefoundry.co.uk/ >>>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >>>> >>> >>> >>> _______________________________________________ >>> Nuke-python mailing list >>> [email protected], http://forums.thefoundry.co.uk/ >>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >>> >>> >> >> _______________________________________________ >> Nuke-python mailing list >> [email protected], http://forums.thefoundry.co.uk/ >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >> >> > > _______________________________________________ > Nuke-python mailing list > [email protected], http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > >
_______________________________________________ Nuke-python mailing list [email protected], http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
