def performCustomAction(): node = nuke.thisNode() knob = nuke.thisKnob() fileValue = node["file"].getValue() renderPath = os.path.dirname(fileValue) #reveal in explorer if knob.name() == "reveal in explorer": if renderPath!="": try: if platform.system() == "Windows": os.startfile(renderPath) elif platform.system() == "Darwin": subprocess.Popen(["open", renderPath]) else: subprocess.Popen(["xdg-open", renderPath]) except: nuke.message("couldn't open render path. No such directory") else: nuke.message("Please make sure to set a render path") #create next version if knob.name() == "create next version": if renderPath != "": nukescripts.clear_selection_recursive() node.setSelected(True) nukescripts.version_up() node.setSelected(False) fileValue = node["file"].getValue() renderPath = os.path.dirname(fileValue) if not os.path.isdir(renderPath): os.makedirs(renderPath) nuke.message("successfully versioned up") else: nuke.message("Renderfolder '%s' seems to exist" % renderPath) else: nuke.message("Please make sure to set a render path") #force create directory if knob.name() == "force create directory": if renderPath != "": if not os.path.isdir(renderPath): os.makedirs(renderPath) nuke.message("successfully created render directory at: \n\n%s" % renderPath) else: nuke.message("render directory exists") else: nuke.message("Please make sure to set a render path") #save backup if knob.name() == "save backup": if knob.getValue() == 1.0: node["beforeRender"].setValue("nextVersion.saveBackup('%s')" % node.name()) else: node["beforeRender"].setValue("")
def updateToLatest(upto): for i in nuke.selectedNodes(): if i.knob('file'): for x in range(upto): nukescripts.version_up() while i.error(): nukescripts.version_down()
def _script_version_all_up(): import nuke import nukescripts for n in nuke.allNodes( 'Write' ): n['selected'].setValue ( True ) nukescripts.version_up() nukescripts.script_version_up() for n in nuke.allNodes(): n['selected'].setValue( False )
def version_up_mkdir(): nukescripts.version_up() n = nuke.selectedNodes() for i in n: _class = i.Class() if _class == "Write": _dirname = os.path.dirname(i.knob("file").value()) if not os.path.exists(_dirname): print "INFO: Making directory %s." % _dirname os.makedirs(_dirname)
def performCustomAction(): node = nuke.thisNode() knob = nuke.thisKnob() fileValue = node["file"].getValue() renderPath = os.path.abspath(fileValue) #create test folder if knob.name() == "create test folder": if renderPath != "": renderPath = os.path.join(renderPath ,'', "test_v1") #renderPath = os.path.join(renderPath, "test_v1") if os.path.isdir(renderPath): nuke.message("test folder already created, please version up") else: os.makedirs(renderPath) node.knob('file').setValue(renderPath) nuke.message("successfully created test directory at: \n\n%s" % renderPath) else: nuke.message("please make sure to set a render path") #open in finder if knob.name() == "open in explorer": if renderPath!="": try: if platform.system() == "Windows": os.startfile(renderPath) elif platform.system() == "Darwin": subprocess.Popen(["open", renderPath]) else: subprocess.Popen(["xdg-open", renderPath]) except: nuke.message("couldn't open render path. No such directory") else: nuke.message("please make sure to set a render path") #create next version if knob.name() == "version up": if renderPath != "": nukescripts.clear_selection_recursive() node.setSelected(True) nukescripts.version_up() node.setSelected(False) fileValue = node["file"].getValue() renderPath = os.path.dirname(fileValue) if not os.path.isdir(renderPath): os.makedirs(renderPath) nuke.message("successfully versioned up") else: nuke.message("please set file path with test_vxx at the end or create a test folder first") else: nuke.message("please make sure to set a render path")
def customSave(mode='save'): if mode == 'save': nuke.scriptSave("") elif mode == 'saveAs': nuke.scriptSaveAs("") elif mode == "saveNewVersion": write_list = [ write for write in nuke.allNodes('Write') if script_name( nuke.filename(write)) == script_name(nuke.scriptName()) ] nukescripts.script_and_write_nodes_version_up() if write_list: selectedNodes = nuke.selectedNodes()[:] nukescripts.clear_selection_recursive() for write in write_list: write.setSelected(True) nukescripts.version_up() write.setSelected(False) for node in selectedNodes: node.setSelected(True) nuke.scriptSave("")
def performCustomAction(): node = nuke.thisNode() knob = nuke.thisKnob() fileValue = node["file"].getValue() renderPath = os.path.dirname(fileValue) #reveal in explorer if knob.name() == "reveal in explorer": if renderPath != "": try: if platform.system() == "Windows": os.startfile(renderPath) elif platform.system() == "Darwin": subprocess.Popen(["open", renderPath]) else: subprocess.Popen(["xdg-open", renderPath]) except: nuke.message("couldn't open render path. No such directory") else: nuke.message("Please make sure to set a render path") #create next version if knob.name() == "create next version": if renderPath != "": nukescripts.clear_selection_recursive() node.setSelected(True) nukescripts.version_up() node.setSelected(False) fileValue = node["file"].getValue() renderPath = os.path.dirname(fileValue) if not os.path.isdir(renderPath): os.makedirs(renderPath) nuke.message("successfully versioned up") else: nuke.message("Renderfolder '%s' seems to exist" % renderPath) else: nuke.message("Please make sure to set a render path") #force create directory if knob.name() == "force create directory": if renderPath != "": if not os.path.isdir(renderPath): os.makedirs(renderPath) nuke.message( "successfully created render directory at: \n\n%s" % renderPath) else: nuke.message("render directory exists") else: nuke.message("Please make sure to set a render path") #save backup if knob.name() == "save backup": if knob.getValue() == 1.0: node["beforeRender"].setValue("nextVersion.saveBackup('%s')" % node.name()) else: node["beforeRender"].setValue("")
def versionUp(): getSelectedNodes() nukescripts.version_up()