Esempio n. 1
0
/**
* @param	{string}	from		copy src
* @param	{string}	to			copy target
* @desc		like shell command mv
*/
function mv(from, to){
	if(!FS.existsSync(from)){
		if(FS.existsSync(to)){
			rm(to);
		}
		return;
	}
	if(FS.statSync(from).isDirectory()){
		// if is a directory, mkdir
		mkdir(to);
	}else{
		// if is a file, compare first
		if(FS.existsSync(to)){
			if(FS.readFileSync(from, 'utf-8') !== FS.readFileSync(to, 'utf-8')){ // if there were any other way to compare two files
				mvinner(from, to);
			}
		}else{
			mvinner(from, to);
		}
		
	}
	
	function mvinner(f, t){
		var dir = PATH.dirname(t);
		mkdir(dir);
		FS.writeFileSync(t, FS.readFileSync(f));
	}
}
Esempio n. 2
0
		ll.forEach(function(name){
			var fpath = PATH.join(from, name);
			if(FS.statSync(fpath).isDirectory()){
				compareDist2Src(fpath);
			}else{
				// get from cache
				if(!(fpath in __existList)){
					rm(fpath);
				}
			}
		})
Esempio n. 3
0
    execGrunt(gruntPath, function(){
		// 将lib复制回去
		transportCopy(excludeSrc, excludeDst);
		// 删除transport的src
		rm(src);
	}, callback);
Esempio n. 4
0
/**
 * @param {string} src
 * @param {string} dest
 * @param {object} alias
 * @param {function} callback
 * @returns {undefined}
 */
function transportTask(src, dest, alias, gruntPath, callback, exclude) {

	// 先复制源文件,默认不复制src下的lib文件夹(需要先删除dest下面的lib)
	exclude ? null : exclude = 'lib';
	var excludeSrc = PATH.join(src, exclude).replace(/(\\|\/)$/, '');
	var excludeDst = PATH.join(dest, exclude).replace(/(\\|\/)$/, '');
	transportCopy(src, dest, excludeSrc);
	rm(excludeDst);
	
	var transport = "{\
		transport4css: {\
			options: {\
				debug: false,\
				uglify: true,\
				parsers: {\
					'.css': [css2jsParser]\
				}\
			},\
			files: [{\
				expand: true,\
				cwd: '" + dest + "',\
				src: '**/*.css',\
				dest: '" + dest + "'\
			}]\
		},\
		transport4js: {\
            options: {\
                debug: false,\
                alias: " + JSON.stringify(alias) + "\
            },\
            files: [\
                {\
                    expand: true,\
                    cwd: '" + dest + "',\
                    src: '**/*.js',\
                    dest: '" + dest + "'\
                }\
            ]\
        }\
	}";
	
	
    var output = '\
        module.exports = function(grunt){\
			var style = require("grunt-cmd-transport").style.init(grunt);\
			var css2jsParser = style.css2jsParser;\
			var jsParser = require("grunt-cmd-transport").script.init(grunt).jsParser;\
            grunt.initConfig({\
                pkg: grunt.file.readJSON("package.json"),\
                transport:' + transport + 
            '});\
            grunt.loadNpmTasks("grunt-cmd-transport");\
            grunt.registerTask("default", ["transport"]);\
        };';

    FS.writeFileSync(PATH.join(gruntPath,'Gruntfile.js'), output, 'utf-8');
    execGrunt(gruntPath, function(){
		// 将lib复制回去
		transportCopy(excludeSrc, excludeDst);
		// 删除transport的src
		rm(src);
	}, callback);
}