How to create a RAR archive in Total.js?

Tue Jul 25 2017 14:59:09 GMT+0200 (Central European Summer Time), Peter Širka

How to create a RAR archive in Total.js?

  • check if the following command works in your OS $ rar or install it $ apt-get install rar
  • this example uses operations which are supported in Total.js +v2.4.0

Create an operation

E.g. your-app/definitions/operations.js:

const Exec = require('child_process').exec;
const OPTIONS = {};

NEWOPERATION('compress', function(error, value, callback) {

    // value.path
    // value.filename

    var isFile = U.getExtension(value.path) !== '';
    var target = '*';

    if (isFile) {
        target = U.getName(value.path);
        OPTIONS.cwd = value.path.substring(0, value.path.length - target.length);
    } else
        OPTIONS.cwd = value.path;

    // Exclude directory "/tmp/"
    // Exec('rar a -r -ep1=*/tmp/* {0}'.format(value.filename)

    Exec('rar a -r {0} {1}'.format(value.filename, target), OPTIONS, function(err, response) {
        err && error.push(err);
        callback(value.filename);
    });
});

Usage

You can execute the below code anywhere in your Total.js application:

// Compress a directory:
OPERATION('compress', { path: '/home/documents/', filename: '/home/documents.rar' }, function(err, filename) {
    console.log(err, filename);
});

// Compress Total.js "databases" directory:
OPERATION('compress', { path: F.path.databases(), filename: F.path.public('databases.rar') }, function(err, filename) {
    console.log(err, filename);
});


// Compress a file:
OPERATION('compress', { path: '/home/documents/total.js', filename: '/home/total.rar' }, function(err, filename) {
    console.log(err, filename);
});

Tags

Follow us

Latest blogs
Total.js Code Editor v1
Fri Dec 07 2018 22:55:13 GMT+0100 (Central European Standard Time)
New release: Total.js v3.1
Fri Dec 07 2018 11:41:40 GMT+0100 (Central European Standard Time)
New CDN for Flow + Dashboard + Flowboard
Sun Nov 04 2018 09:05:03 GMT+0100 (Central European Standard Time)
OpenPlatform v3
Mon Oct 15 2018 10:11:07 GMT+0200 (Central European Summer Time)
New Single Page Application template
Fri Oct 12 2018 21:25:34 GMT+0200 (Central European Summer Time)

Latest comments
Nice tip
Mauro Junior
Thu Sep 20 2018 21:41:02 GMT+0200 (Central European Summer Time)
Not only for Total.js. You can communicate with different websocket servers.
Peter Širka
Mon Apr 23 2018 20:08:20 GMT+0200 (Central European Summer Time)
Marko: you need to create a buffer with this codepage and write byte-to-byte string. I recommend ...
Peter Širka
Mon Apr 23 2018 20:06:21 GMT+0200 (Central European Summer Time)
Is WEBSOCKETCLIENT only for internal ws connections between totaljs apps?
Stelios Stephanua
Fri Mar 16 2018 06:04:22 GMT+0100 (Central European Standard Time)
Total.js is amazing! ;)
Leonardo Hessel
Tue Dec 19 2017 19:51:15 GMT+0100 (Central European Standard Time)

Pixabay


Read more

Total.js Code Editor v1

Products: Try our real-time collaboration tool for Total Developers. Code Editor offers great features for development.

Fri Dec 07 2018 22:55:13 GMT+0100 (Central European Standard Time)
New release: Total.js v3.1

News: I have released a new version of Total.js with bug fixes and with small improvements.

Fri Dec 07 2018 11:41:40 GMT+0100 (Central European Standard Time)
New CDN for Flow + Dashboard + Flowboard

News: I have changed CDN for Flow + Dashboard + Flowboard components to KeyCDN.

Sun Nov 04 2018 09:05:03 GMT+0100 (Central European Standard Time)
OpenPlatform v3

News: I have published a new version of OpenPlatform. New, better, faster, more secure and more simpler.

Mon Oct 15 2018 10:11:07 GMT+0200 (Central European Summer Time)
New Single Page Application template

News: I have published free, beautiful and simple Total.js + jComponent SPA template under MIT license.

Fri Oct 12 2018 21:25:34 GMT+0200 (Central European Summer Time)
Flow: How to find a specific component?

Tutorials: This tutorial shows you a quick way how to find a specific component in the Flow designer.

Mon Sep 03 2018 20:21:30 GMT+0200 (Central European Summer Time)1