Example with an ugly trick : https://gist.github.com/kapouer/6301360
Jérémy. On 22/08/2013 01:10, Martin Cooper wrote: > You might want to take a look at the npm code that unpacks package tarballs. > The key function is gunzTarPerm, here: > > https://github.com/isaacs/npm/blob/master/lib/utils/tar.js#L191 > > Note that extractEntry gets to futz with each entry as it goes by: > > https://github.com/isaacs/npm/blob/master/lib/utils/tar.js#L212 > > Hope that helps. > > -- > Martin Cooper > > > On Wed, Aug 21, 2013 at 3:53 PM, Brian Lalor <[email protected] > <mailto:[email protected]>> wrote: > > This isn't pertinent to core node.js, but I'm hoping someone might be > able to give me a hand. I want to accomplish the equivalent of "tar -cf > output.tar -C /tmp/whatever ." with Isaac's fstream[1] and tar[2] modules. > Unfortunately I find the documentation really lacking; maybe I'm just missing > something? > > Here's essentially the code I'm using: > > fstream.Reader({ path: "/tmp/path/to/root, type: "Directory" > }) > .pipe(tar.Pack()) > .pipe(zlib.createGzip()) > .pipe(fstream.Writer({ > path: path.join("output.tar.gz"), > type: "File" > })); > > This is based on a gist[3]. If "/tmp/path/to/root/file.js" is a file, > then output.tar.gz will contain the path "root/file.js", which is kind of > weird. What I want to do is modify the path to each file, but I don't know > where to start. I only have a rough grasp of streams, and I can't really > figure out how the data and metadata flow from the fstream.Reader. Does > anyone have any pointers? > > Thanks, > Brian > > [1]: https://github.com/isaacs/fstream > [2]: https://github.com/isaacs/node-tar > [3]: https://gist.github.com/nicolasfont/2040815 > > -- > Brian Lalor > [email protected] <mailto:[email protected]> > http://github.com/blalor > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > <mailto:[email protected]> > To unsubscribe from this group, send email to > [email protected] > <mailto:nodejs%[email protected]> > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:nodejs%[email protected]>. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
