Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // filebot sync-amc.groovy --output "X:/output" -non-strict --action move --conflict skip
- // SCP config
- def config = [
- server: 'example.org',
- username: 'monkey',
- password: 'tiger',
- remoteFolder: '/home/monkey/complete/',
- localFolder: 'X:/sync/'
- ]
- // AMC config
- def amc = [
- minFileSize: 0,
- minLengthMS: 0,
- excludeList: new File(config.localFolder, 'local.excludes')
- ]
- def excludeList = new File(config.localFolder, 'remote.excludes')
- def excludes = (excludeList.exists() ? excludeList.readLines() : []) as HashSet
- // *********** SYNC *********** //
- include('fn:lib/ant')
- def remoteFilesList = sshexec(command: """find "${config.remoteFolder}" -type f""", host: config.server, username: config.username, password: config.password)
- def newRemoteFiles = remoteFilesList.readLines().findAll{ !excludes.contains(it) }
- println "[FIND] ${newRemoteFiles.size()} new files"
- if (newRemoteFiles.isEmpty())
- return;
- newRemoteFiles.each{ remotePath ->
- def localPath = new File(config.localFolder, remotePath)
- println "[SYNC] Copy [${remotePath}] to [${localPath}]"
- scp(host: config.server, username: config.username, password: config.password, file: remotePath, localDir: localPath.parentFile)
- excludeList.append(remotePath + '\n') // add remote path to local exclude list
- }
- // *********** AMC *********** //
- new File(config.localFolder).listFiles().findAll{ it.isDirectory() }.each{ root ->
- println "[AMC] Execute AMC on ${root}"
- executeScript('fn:amc', amc, root)
- executeScript('fn:cleaner', [root:true], root)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement