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