|
-
- -- 保存已经生成过的文件,
- -- 如果当前要生成的文件在列表里面已经存在了,
- -- 则表示文件重名
- g_files = {};
-
- -- 生成一个文件
- function linkFile(sourceFile , targetPath, targetFile , versionInfo)
- print("linkFile" , sourceFile);
- local pathName , baseName , ext = string.splitFilename(sourceFile);
- if isIgnoreFile(pathName , baseName , ext) then
- return;
- end
- --print("链接文件" .. sourceFile)
-
- local fileInfo = g_files[baseName];
- if fileInfo then
- error("文件重名:[" .. sourceFile .. "] 与 [" .. fileInfo.origin .. "]");
- end
- fileInfo = xml.new("file");
- versionInfo.files[baseName] = fileInfo;
- -- 保存全局文件列表
- g_files[baseName] = fileInfo;
-
- local cacheFile = compileFile(sourceFile, targetPath);
- fileInfo.origin = cacheFile.origin;
- fileInfo.name = cacheFile.name;
- fileInfo.md5 = cacheFile.md5;
- fileInfo.size = cacheFile.compileSize;
- fileInfo.preload = false -- 是否新手期文件
-
- if not hasCmdArg("-onlyServer") then
- -- 保存加密文件到客户端
- local assetFileName = targetPath .. "/assets/" .. fileInfo.md5
- local targetClientFile = io.open(assetFileName, "wb");
- targetClientFile:write(loadFile(cacheFile.encryptFile));
- targetClientFile:close();
- end
-
- -- 保存加密并压缩后的文件到服务端
- fileInfo.offset = targetFile:seek();
- local compressedData = loadFile(cacheFile.compressedFile);
- targetFile:write(compressedData);
-
- fileInfo.compressedSize = string.len(compressedData)
- end
|