GithubHelp home page GithubHelp logo

coderaiser / node-jaguar Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 2.0 96 KB

🐆pack and extract .tar.gz archives with emitter

License: MIT License

JavaScript 100.00%
packer extractor tar gzip nodejs emitter tarball gzip-format tar-archive

node-jaguar's Introduction

Jaguar License NPM version Dependency Status Build Status Coverage Status

Pack and extract .tar.gz archives with emitter.

Global

Jaguar could be installed global with

npm i jaguar -g

And used this way:

Usage: jaguar [filename]
Options:
  -h, --help      display this help and exit
  -v, --version   output version information and exit
  -p, --pack      pack files to archive
  -x, --extract   extract files from archive

Local

Jaguar could be used localy. It will emit event on every packed/extracted file. Good for making progress bars.

Install

npm i jaguar --save

How to use?

pack(from, to, names)

  • from - string directory that would be packed
  • to - string or stream, name of archive
  • names - array of names in directory from that would be packed.
const jaguar = require('jaguar');
const path = require('path');
const cwd = process.cwd();
const name = 'pipe.tar.gz';
const from = cwd + '/pipe-io';
const to = path.join(cwd, name);

const pack = jaguar.pack(from, to, [
    'LICENSE',
    'README.md',
    'package.json'
]);

pack.on('file', (name) => {
    console.log(name);
});

pack.on('start', () => {
    console.log('start of packing');
});

pack.on('progress', (percent) => {
    console.log(percent + '%');
});

pack.on('error', (error) => {
    console.error(error);
});

pack.on('end', () => {
    console.log('done');
});

extract(from, to)

  • from - path to .tar.gz archive
  • to - path to directory where files would be stored.
const jaguar = require('jaguar');
const path = require('path');
const cwd = process.cwd();
const name = 'pipe.tar.gz';
const to = cwd + '/pipe-io';
const from = path.join(cwd, name);

const extract = jaguar.extract(from, to);

extract.on('file', (name) => {
    console.log(name);
});

extract.on('progress', (percent) => {
    console.log(percent + '%');
});

extract.on('error', (error) => {
    console.error(error);
});

extract.on('end', () => {
    console.log('done');
});

In case of starting example output should be similar to:

33%
67%
100%
done

Related

  • Bizzy - Pack and extract .tar.bz2 archives with emitter.
  • Jag - Pack files and folders with tar and gzip.
  • OneZip - Pack and extract zip archives with emitter.
  • Tar-to-zip - Convert tar and tar.gz archives to zip.
  • Copymitter - Copy files with emitter.
  • Remy - Remove files with emitter.

License

MIT

node-jaguar's People

Contributors

coderaiser avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

node-jaguar's Issues

Silently failing

I'm using jaguar in a web-application where I get tar.gz data via HTTP. I've noticed that when I accidentaly uplad the data as text rather than binary (using --data rather than --data-binary with cURL) none of the extraction events get triggerered. I would expect an error event to be sent.

This is my code:

return new Promise((resolve,reject) => {
        const extract = jaguar.extract(from, path.join(from+"-expanded"));
        extract.on('error', (error) => {
            reject(error)
        });
        extract.on('end', () => {
            resolve();
        });        
        extract.on('file', (name) => {
            console.log(name);
        });
        extract.on('progress', (percent) => {
            console.log(percent + '%');
        });
        console.log("Unzipping results promised. Will be at "+from+"-expanded");
    });

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.