function OnInit(initData) { initData.name = 'CopyFlat'; initData.version = '2023-03-21'; initData.copyright = 'CopyFlat'; initData.url = 'https://resource.dopus.com/t/copyflat-flat-copy-selection-without-flat-view/44001'; initData.desc = 'CopyFlat'; initData.default_enable = true; initData.min_version = '12.0'; } function OnAddCommands(addCmdData) { var cmd = addCmdData.AddCommand(); cmd.name = 'CopyFlat'; cmd.method = 'OnCopyFlat'; cmd.desc = 'CopyFlat'; cmd.label = 'CopyFlat'; cmd.template = ''; cmd.hide = false; cmd.icon = 'script'; } function OnCopyFlat(scriptCmdData) { var cmd = scriptCmdData.func.command; var fsu = DOpus.FSUtil(); var log = true; // set to false to avoid logging cmd.deselect = false; if (log) { cmd.RunCommand('Set UTILITY=otherlog'); DOpus.ClearOutput(); DOpus.Output('Enumerating...'); DOpus.Output(''); } var flatFiles = DOpus.Create().Vector(); for (var e = new Enumerator(cmd.files); !e.atEnd(); e.moveNext()) { var item = e.item(); if (item.is_dir) { var folderEnum = fsu.ReadDir(item, 'r'); while (!folderEnum.complete) { var folderItem = folderEnum.Next(); if (folderItem.is_dir) continue; flatFiles.push_back(folderItem); if (log) DOpus.Output(flatFiles.count + ' ' + folderItem); } folderEnum.Close(); } else { flatFiles.push_back(item); if (log) DOpus.Output(flatFiles.count + ' ' + item); } } cmd.SetFiles(flatFiles); if (log) DOpus.Output(''); if (log) DOpus.Output('Processing ' + cmd.filecount + ' files...'); var cmdLine = scriptCmdData.cmdline.replace(/copyflat/i, 'Copy'); if (log) DOpus.Output(cmdLine); cmd.RunCommand(cmdLine); if (log) DOpus.Output(''); if (log) DOpus.Output('... done.'); }