46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
Intro
|
|
=====
|
|
|
|
Have you ever wanted to tar something, but you didn't want to push it to your server first?
|
|
|
|
Tar-js is here to the rescue!!
|
|
|
|
With tar-js, you can construct a tar archive in the browser. This is basically a port of tar-async for Nodejs for the browser, with a couple differences.
|
|
|
|
Here's what it supports:
|
|
* Add strings to a tar archive as files
|
|
* Customizable uid, gid, mtime, and permissions (defaults work well though too)
|
|
* Add files in a directory heirarchy
|
|
|
|
Dependencies
|
|
------------
|
|
|
|
Tar needs an HTML5 compliant browser. More specifically it needs `Uint8Array` to work.
|
|
|
|
The examples depend on pakmanager, a package manager for the browser to make code written for node run in the browser. Install it as such:
|
|
|
|
`pakmanager build`
|
|
|
|
Usage Guide
|
|
===========
|
|
|
|
The easiest way to interface with it is by using pakmanager. Include the package from pakmanager in your html, and then in you javascript:
|
|
|
|
var Tar = require('tar'),
|
|
tape = new Tar();
|
|
|
|
Then all you got to do is call `tape.append` with your params and it'll be added to the archive. That's it!
|
|
|
|
Here's the api for append: `append(filepath, content, [opts], [callback])`
|
|
|
|
* filepath- string path (can include directories and such)
|
|
* content- string or Uint8Array
|
|
* opts- options:
|
|
* mode- permissions of resulting file (octet) [default: 777]
|
|
* mtime- modification time in seconds (integer) [default: current time]
|
|
* uid- user id (integer) [default: 0]
|
|
* gid- group id (integer) [default: 0]
|
|
* callback- callback when done (takes a Uint8Array as it's only parameter)
|
|
* This is a reference to the tar so far
|
|
* Copy it if you want to use it, because subsequent adds may break stuff
|