Переглянути джерело

model generation

production
guest 2 роки тому
джерело
коміт
a87328060d
1 змінених файлів з 97 додано та 2 видалено
  1. 97
    2
      index.js

+ 97
- 2
index.js Переглянути файл

@@ -32,6 +32,7 @@ var getCredentials = function(){
var creds = fs.readFileSync(path.normalize(`${homedir}/.elxrcredentials`), { encoding: 'utf8' });
var creds = creds.split('\n').map( c => c.trim() && new URL(c));
console.log(creds);
creds.forEach(cred => {console.log( cred.hostname ); console.log( cred.username )} );

// Subsequent calls
getCredentials = ()=>{ return creds }
@@ -126,6 +127,76 @@ const dirs = async (perform, path) => {
}
}



var templateprocess = function(str, substitutes){
const regex = /__(.*?)__/gm;
// const str = `__link____instance__server-lib__name__`;
let m;

return str.replace(regex, function(match, key) {
console.log(`Found match, group ${match}: ${key}`);
return substitutes[key] || match;
})

// while ((m = regex.exec(str)) !== null) {
// // This is necessary to avoid infinite loops with zero-width matches
// if (m.index === regex.lastIndex) {
// regex.lastIndex++;
// }
// var rstr = str;
// // The result can be accessed through the `m`-variable.
// m.forEach((match, groupIndex) => {
// // rstr = rstr.replace( groupIndex
// console.log(`Found match, group ${groupIndex}: ${match}`);
// if(groupIndex === 0) return
// });

// }

}

function copyFileSync( source, target , options) {

var targetFile = target;

// If target is a directory, a new file with the same name will be created
if ( fs.existsSync( target ) ) {
if ( fs.lstatSync( target ).isDirectory() ) {
targetFile = path.join( target, path.basename( source ) );
}
}

fs.writeFileSync(targetFile, fs.readFileSync(source));
}

function copyFolderRecursiveSync( source, target, options ) {
var files = [];

// Check if folder needs to be created or integrated
var targetFolder = path.join( target, path.basename( source ) );
if ( !fs.existsSync( targetFolder ) ) {
fs.mkdirSync( targetFolder );
}

// Copy
if ( fs.lstatSync( source ).isDirectory() ) {
files = fs.readdirSync( source );
files.forEach( function ( file ) {
var curSource = path.join( source, file );
if ( fs.lstatSync( curSource ).isDirectory() ) {
copyFolderRecursiveSync( curSource, targetFolder );
} else {
copyFileSync( curSource, targetFolder );
}
} );
}
}

var getShellTask = (command, args, options) => {
options = options || {}
var callshell = command === 'rm' ? getgitbashtask : getshelltask;
@@ -1512,6 +1583,8 @@ var op = {
}
else return op['runas']()
}


, 'use' : () => {
// use a certain named instance.
// Eg :
@@ -1785,10 +1858,11 @@ var op = {
// 2nd use Pharmacy needs justification Form.
// Approval after a certain period of time.
}
, 'g': () => {
, 'g' : () => {
if (processedArgs.h) {

console.log('elxr g [modelname] => generate a model named [modelname]');
console.log('elxr g model [modelname] => generate a model named [modelname]');
console.log('elxr g vmodel [modelname] => generate a model named [modelname]');
console.log('elxr g => regenerate all known models');
return
}
@@ -1885,6 +1959,20 @@ var op = {

}

, 'undefined' : ()=>{
console.warn('Are you sure you want to refresh all the models.');
throw 'NOT YET IMPLMENTED'
}

, 'vmodel' : ()=>{
var verse = [ '__universe__/vmodel' ]

// console.dir(templateprocess(`__link____instance__server-lib__name__`, { link( ){
// return processed }, instance : 'elixir-', name : 'newmodel' } )
// )

}

}

g[processedArgs._[1]]();
@@ -1959,6 +2047,12 @@ var cmds = {
, cmd : 'users list'
, noprerequisites : true
}
, 'g' : {
cmdFn : op['g'] // default
, cmd : 'g'
, noprerequisites : true
, getPossiblePrompts(){ return {} }
}
}

var elxrcmd = (function(){
@@ -1995,6 +2089,7 @@ var elxrcmd = (function(){
})()

elxrcmd.create(cmds['users'])
elxrcmd.create(cmds['g'])

var interpretrun = function(){


Завантаження…
Відмінити
Зберегти