summer-mvc
Version:
Structured, Light, Spring-like Web Application Development Framework
98 lines (73 loc) • 2.35 kB
JavaScript
var fs = require('fs');
var path = require('path');
var __runningPath = process.cwd();
var __staticPath = path.join( path.dirname( require.main.filename ), "node_modules", "summer-mvc" );
exports.buildStructure = function( folder, fileName ){
let destDir = path.join( __runningPath, folder );
if( fileName ){
let src = path.join( __staticPath, folder, fileName );
this.makeHierarchy( folder );
try{
fs.accessSync( path.join( destDir, fileName ) );
} catch( err ){
console.log( "\x1b[31m%s\x1b[0m", "[summer-mvc core]", "[" + fileName + "] disappears. Copy File." );
this.copyFile( src, path.join( destDir, fileName) );
}
} else{
let src = path.join( __staticPath, folder );
this.makeHierarchy( folder );
}
}
exports.makeHierarchy = function( folder, _currentPath ){
let folderHierarchy = path.join(folder).split( path.sep );
if( require("os").platform().indexOf("win") > -1 ){
if( folderHierarchy[0] === path.parse(folder).root.replace( /\\/gi, "" ) ){
folderHierarchy.splice( 0, 1 );
}
}
let currentPath = _currentPath == undefined ? __runningPath : _currentPath;
try{
for( var i=0; i<folderHierarchy.length; i++ ){
if( folderHierarchy[i] != "" ){
currentPath = path.join( currentPath, folderHierarchy[i] )
this.makeFolder( currentPath );
}
}
} catch( err ){
throw err;
}
}
exports.makeFolder = function( pathStr ){
try{
fs.accessSync( pathStr );
} catch( err ) {
console.log( "\x1b[31m%s\x1b[0m", "[summer-mvc core]", "[" + pathStr + "] disappears. Create Directory." );
fs.mkdirSync( pathStr );
}
}
exports.copyFile = function(src, dest) {
let fs = require( "fs" );
let data;
try {
data = require( "fs" ).readFileSync( src, "utf8" );
} catch ( err ){
throw err;
}
try{
fs.writeFileSync( dest, data );
} catch( err ){
throw err;
}
}
exports.renameFolder = function( folderName ){
let fs = require( "fs" );
let path = require( "path" );
let oldPath = path.join( folderName );
let newPath = path.join( folderName + "_backup" );
try{
fs.renameSync( oldPath, newPath )
} catch( err ){
console.log( err );
throw err;
}
}