Skip to content

Instantly share code, notes, and snippets.

@also
Last active June 22, 2018 19:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save also/5964604decfed843711d7554efff7825 to your computer and use it in GitHub Desktop.
Save also/5964604decfed843711d7554efff7825 to your computer and use it in GitHub Desktop.
$ ./run
done
test-gtar.tar
bad
output/xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/f

good
output/xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf

test-tar.tar
bad

good
output/xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/f
output/xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf

test-node.tar
bad

good
output/xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/f
output/xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf
const tar = require('tar');
tar.c(
{
gzip: false,
file: 'test-node.tar',
cwd: '.',
portable: true,
},
['xxxxxxxxxxxxxxxxxxxxx']
).then(() => console.log('done'), (e) => console.log(e));
const fs = require('fs');
const tar = require('tar');
function unpack(stream, dest) {
return new Promise((resolve, reject) => {
stream
.on('error', er => reject(er))
.pipe(tar.x({cwd: dest, strict: true}))
.on('error', er => reject(er))
.on('end', () => resolve());
});
}
unpack(fs.createReadStream(process.argv[2]), 'output').catch(e => console.log(e.stack));
set -eu
rm -rf xxxxxxxxxxxxxxxxxxxxx
mkdir xxxxxxxxxxxxxxxxxxxxx
mkdir xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
touch xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/f
touch xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf
gtar cf test-gtar.tar xxxxxxxxxxxxxxxxxxxxx
tar cf test-tar.tar xxxxxxxxxxxxxxxxxxxxx
node create.js
function test {
rm -rf output
mkdir output
node extract.js $1
echo $1
echo bad
find output -type d -name '*f*'
echo
echo good
find output -type f -name '*f*'
echo
}
test test-gtar.tar
test test-tar.tar
test test-node.tar
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment