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

Reply via email to