Allow to compile and push Monkkey projects to a remote server.
npm install -g monkkey
Then, you can call it with :
monkkey <commands...>
npm install monkkey
Then, you can call it with :
(windows)$ node_modules/monkkey/monkkey <commands...>
(*nux)$ ./node_modules/monkkey/monkkey <commands...>
You can include it to your javascript projects with :
var monkkey = require('monkkey');| Command | Description |
|---|---|
| help / --help / -h | Display some help |
| update | Compile and push the result to the server |
| check | Check if the files are valid |
| run <name> | Run a macro in the local configuration file |
| publish <id> <files> | Publish the tar+gzip files to the remote server |
| compile <folders> | Compile the folders into tar+gzip files |
| adduser | Create a new user on the remote server |
| connect <username> | Connect to an existing user account |
| disconnect | Disconnect from the session (destroy it on the server) |
var monkkey = require('monkkey');
monkey.<command>(<args>);| Function | Description |
|---|---|
| update([options: Object]) | compile + publish |
| publish(url: String, filePath: String, [options: Object]) | Publish a compiled file to a remote server |
| compile([folders: Array], [options: Object]) | check + Compile the current folder or the specified folders |
| connect(username, password, url, callback) | Connect to an existing user account |
| disconnect(url, session, callback) | Disconnect from the session (destroy it on the server) |
| create(username, password, email, url, callback) | Create a new user on the remote server |
| getUser(url, session, callback) | Get the user associated with the specified session |
Compile a folder into a Monkkey executable file.
Behind the scene, it :
- reads and check the
monkkey.jsonfile of the folder - check if all files registered exist
- gather required files
- compress them into a
tar+gzipfile
The gathering and the compression are made in a temporary folder.
var options = {
start: (info) => console.log(' [ ] ' + info.folder + ' : Compressing...'),
success: (info) => {
console.log(' [o] ' + info.folder + ' : Files compressed at :');
console.log(' ' + info.destination);
},
error: (e, info) => console.error(' [!] ' + info.folder + ' : An error occured : ' + e)
};
// Compile the current folder :
monkkey.compile(options);
// Compile the specified folders :
monkkey.compile([
'exo1', 'exo2', '/home/user/exo3', //...
], options);Publish a file to the remote server.
Behind the scene it :
- doesn't check the content of the file
- send the compressed files to the server
monkkey.publish('http://domain/exo/4', '/home/user/exo4.tar.gz', {
start: o => console.log(' [ ] ' + o.config.url + ' - updating...'),
success: o => console.log(' [o] ' + o.config.url + ' - updated.'),
error: (o, e) => console.error(' [!] ' + o.config.url + ' - error : ' + e),
});Update an exercice or a whole project and publish it to the remote server.
Behind the scene it :
- reads and check the
monkkey.jsonfile of the folder - check if all files registered exist
- gather required files
- compress them into a
tar+gzipfile - send the compressed files to the server
monkkey.update({
// Errors of compression / compilation
compressionErrors: function(es)
{
console.error(' [!] ' + es.length + ' error(s) :');
es.forEach(function(o) {
console.error(' @' + o.source + ' : ' + o.error);
});
},
// Push options, corresponding to the publishing to the server
push: {
start: o => console.log(' [ ] ' + o.config.url + ' - updating...'),
success: o => console.log(' [o] ' + o.config.url + ' - updated.'),
error: (o, e) => console.error(' [!] ' + o.config.url + ' - error : ' + e),
}
});
// Light version
monkkey.update(function(o, error) {
if(error)
console.error(error);
else
console.log(o);
});- Complete the README.md file
- Check user management
- Check user addition
- Check user connection
- Check user disconnection
- Check user rights
- Add 'check' command : check files
- Add 'run' command
- Transform to TypeScript for a better maintainability
- Add TypeScript support (embedded)