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

Reply via email to