import * as path from 'path' import { logger } from '../src' import { option } from './' import { isArray } from '@plastichub/core/primitives' import { sync } from '@plastichub/osr-sync/lib/sync' import { resolve } from '@plastichub/osr-cli-commons/fs' export const register = (grunt) => { grunt.registerMultiTask('sync', 'Synchronizes folders, using osr-sync', function () { const done = this.async() const task_options = this.data || {} let source: string[] = isArray(this.data.src) ? this.data.src : [this.data.src] const variables = { ...task_options.variables || {} } source = source.map(f => resolve(f, false, variables)) const options = { source, target: resolve(option('target', task_options, grunt), variables), root: option('root', task_options, grunt), clear: option('clear', task_options, grunt), debug: option('debug', task_options, grunt), verbose: option('verbose', task_options, grunt), profile: option('profile', task_options, grunt), variables: variables } options.debug && logger.info('Sync - task data ', this.data) sync(options) done() return true }); };