Thanks Michael, working fine!

Am 18.11.2011 um 18:29 schrieb Michael Habenicht:

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



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
------------------------------------------
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

Reply via email to