Exemple #1
0
def writeFolderListFile(sPath, sName, sReplace=None, bRemove=False):
    sFolderListPath = os.path.join(sPath, sFolderListName)
    lFolders = files.readJsonFile(sFolderListPath)
    if not bRemove:
        if sReplace:
            lFolders.remove(sReplace)
        lFolders.append(sName)
    else:
        lFolders.remove(sName)
    lFolders.sort()
    files.writeJsonFile(sFolderListPath, lFolders)
Exemple #2
0
def renameAsset(sProject, sAsset, sName):
    fStartTime = time.time()

    #rename asset
    sDirectory, sWipDirectory = getAssetDirectory(sProject=sProject,
                                                  sAsset=sAsset)
    for sVersionFile in lVersionFiles:
        sDirectoryAsset = os.path.dirname(sVersionFile)
        sWipDirectoryAsset = os.path.join(sDirectoryAsset, 'wipFiles')

        dAssetInfo = files.readJsonFile(sVersionFile)
        sCurrentVersion = None
        lVersions = []
        if dAssetInfo['assetInfo']['sCurrentVersionName']:
            sCurrentVersion = dAssetInfo['assetInfo'][
                'sCurrentVersionName'] + dAssetInfo['assetInfo']['sFileType']
            dAssetInfo['assetInfo']['sCurrentVersionName'] = dAssetInfo[
                'assetInfo']['sCurrentVersionName'].replace(sAsset, sName)

        dAssetInfo['assetInfo']['sAsset'] = sName
        if dAssetInfo['versionInfo']:
            for iVersion in dAssetInfo['versionInfo'].keys():
                lVersions.append(
                    dAssetInfo['versionInfo'][iVersion]['sVersionName'] +
                    dAssetInfo['versionInfo'][iVersion]['sFileType'])
                dAssetInfo['versionInfo'][iVersion][
                    'sVersionName'] = dAssetInfo['versionInfo'][iVersion][
                        'sVersionName'].replace(sAsset, sName)

        files.writeJsonFile(sVersionFile, dAssetInfo)

        for sVersion in lVersions:
            os.rename(
                os.path.join(sWipDirectoryAsset, sVersion),
                os.path.join(sWipDirectoryAsset,
                             sVersion.replace(sAsset, sName)))
        if sCurrentVersion:
            os.rename(
                os.path.join(sDirectoryAsset, sCurrentVersion),
                os.path.join(sDirectoryAsset,
                             sCurrentVersion.replace(sAsset, sName)))

    # rename folder
    sDirectoryProject, sWipDirectory = getAssetDirectory(sProject=sProject)
    os.rename(sDirectory, os.path.join(sDirectoryProject, sName))

    # write file list
    sDirectory, sWipDirectory = getAssetDirectory(sProject=sProject)
    writeFolderListFile(sDirectory, sName, sReplace=sAsset)

    fEndTime = time.time()
    print 'renamed %s to %s, took %f seconds' % (sAsset, sName,
                                                 fEndTime - fStartTime)
Exemple #3
0
def createVersionFile(sAsset,
                      sType,
                      sProject,
                      sDirectory,
                      sFileType=sFileType):
    dAssetInfo = {
        'assetInfo': {
            'sAsset': sAsset,
            'sType': sType,
            'sProject': sProject,
            'sCurrentVersionName': None,
            'sFileType': sFileType
        },
        'versionInfo': {}
    }

    files.writeJsonFile(os.path.join(sDirectory, 'assetInfo.version'),
                        dAssetInfo)
Exemple #4
0
def renameProject(sProject, sName):
    fStartTime = time.time()
    # rename version file's sProject
    lVersionFiles = getVersionFiles(sProject)
    if lVersionFiles:
        for sVersionFile in lVersionFiles:
            dAssetInfo = files.readJsonFile(sVersionFile)
            dAssetInfo['assetInfo']['sProject'] = sName
            files.writeJsonFile(sVersionFile, dAssetInfo)
    # rename project
    os.rename(os.path.join(sPathLocal, sProject),
              os.path.join(sPathLocal, sName))

    # write file list
    writeFolderListFile(sPathLocal, sName, sReplace=sProject)

    fEndTime = time.time()
    print 'renamed %s to %s, took %f seconds' % (sProject, sName,
                                                 fEndTime - fStartTime)
Exemple #5
0
def createFolderListFile(sPath):
    sFolderListPath = os.path.join(sPath, sFolderListName)
    lFolders = []
    files.writeJsonFile(sFolderListPath, lFolders)
Exemple #6
0
def saveAsset(sAsset, sType, sProject, sTag=None, sComment=None):
    fStartTime = time.time()

    sDirectory, sWipDirectory = getAssetDirectory(sProject=sProject,
                                                  sAsset=sAsset,
                                                  sType=sType)

    # check if wip folder exists, create folder if not exists
    files.createFolder(sWipDirectory)

    # check if versionInfo file exists, create one if not
    if not os.path.isfile(os.path.join(sDirectory, 'assetInfo.version')):
        createVersionFile(sAsset, sType, sProject, sDirectory)
        cmds.warning('assetInfo.version did not exist, created the file')

    dAssetInfo = files.readJsonFile(
        os.path.join(sDirectory, 'assetInfo.version'))

    dVersions = dAssetInfo['versionInfo']
    lVersions = []
    if dVersions:
        for sKey in dVersions.keys():
            lVersions.append(int(sKey))
        iVersions = max(lVersions)
    else:
        lVersions = None
        iVersions = 0

    if sTag:
        sTag = files.convertStringToCamelcase(sTag)
    else:
        sTag = 'initial'

    if not sComment:
        sComment = 'initial'
    iVersionCurrent = iVersions + 1

    sFileDelete = '%s%s' % (dAssetInfo['assetInfo']['sCurrentVersionName'],
                            dAssetInfo['assetInfo']['sFileType'])

    sFileName = '%s_%s_%s_v%03d' % (sAsset, sType, sTag, iVersionCurrent)
    dAssetInfo['assetInfo']['sCurrentVersionName'] = sFileName

    if sType == 'model':
        cmds.file(rename=os.path.join(sDirectory, '%s%s' %
                                      (sFileName, sFileType)))
        cmds.file(save=True, f=True)

    if iVersions >= iBackup:
        iMin = str(min(lVersions))
        sBackUpName = dVersions[iMin]['sVersionName']
        dVersions.pop(iMin, None)
        os.remove(
            os.path.join(sWipDirectory, '%s%s' % (sBackUpName, sFileType)))

    dVersionCurrent = {
        iVersionCurrent: {
            'sVersionName': sFileName,
            'sComment': sComment,
            'sFileType': sFileType
        }
    }
    dVersions.update(dVersionCurrent)
    files.writeJsonFile(os.path.join(sDirectory, 'assetInfo.version'),
                        dAssetInfo)

    if sType == 'model':
        copyfile(os.path.join(sDirectory, '%s%s' % (sFileName, sFileType)),
                 os.path.join(sWipDirectory, '%s%s' % (sFileName, sFileType)))
    elif sType == 'rig':
        cmds.file(rename=os.path.join(sWipDirectory, '%s%s' %
                                      (sFileName, sFileType)))
        cmds.file(save=True, f=True)

    if os.path.exists(os.path.join(sDirectory, sFileDelete)):
        os.remove(os.path.join(sDirectory, sFileDelete))

    setProject(sDirectory)

    fEndTime = time.time()

    print 'asset saved at %s, took %f seconds' % (sDirectory,
                                                  fEndTime - fStartTime)