UNPKG

libarchive

Version:

Multi-format archive and compression library

2 lines 2.9 kB
#!/usr/bin/env node (()=>{"use strict";var e={n:o=>{var i=o&&o.__esModule?()=>o.default:()=>o;return e.d(i,{a:i}),i},d:(o,i)=>{for(var s in i)e.o(i,s)&&!e.o(o,s)&&Object.defineProperty(o,s,{enumerable:!0,get:i[s]})},o:(e,o)=>Object.prototype.hasOwnProperty.call(e,o)};const o=require("./libarchive-node.js");var i=e.n(o);const s=(e,o,i,s)=>({sopt:e,lopt:o,arg:i,desc:s}),l=[s("c","create",null,"create a new archive"),s("x","extract",null,"extract files from an archive"),s("C","directory","DIR","change to directory DIR"),s("f","file","ARCHIVE","extract files from an archive"),s("","version",null,"print program version"),s("v","verbose",null,"verbosely list files processed"),s("?","help",null,"give this help list")],r="Try 'libarchive --help' for more information.";(async function(){const[,,...e]=process.argv,o=[],s={};let c="";for(const i of e)if(i||(console.log("libarchive: option is empty"),process.exit(1)),o.length)o.push(i);else if(c)s[c]=i,c="";else{if(i.startsWith("--")){let e=i.slice(2),o=!0;const c=e.indexOf("=");-1!==c&&(o=e.slice(c+1),o||(console.log(`libarchive: option '${i}' is empty`),console.log(r),process.exit(1)),e=e.slice(0,c)),l.find(o=>o.lopt===e)||(console.log(`libarchive: unrecognized option '${i}'`),console.log(r),process.exit(1)),s[e]=o;continue}if("-"!=i[0])o.push(i);else for(const e of i.slice(1)){const o=l.find(o=>o.sopt===e);o||(console.log(`libarchive: invalid option -- '${e}'`),console.log(r),process.exit(1)),c&&(console.log(`libarchive: option '${c}' not last in '${i}'`),console.log(r),process.exit(1)),o.arg?c=o.lopt:s[o.lopt]=!0}}if(s.help)return void function(){console.log("Usage: libarchive [OPTION...] [FILE]..."),console.log(""),console.log("Examples:"),console.log(" libarchive -cvf archive.tar dir file # Create archive.tar from dir and file"),console.log(" libarchive -xvf archive.zip # Extract all files from archive.zip"),console.log(""),console.log("Options:");const e=[];let o=0;for(const i of l){const s=` ${i.sopt?`-${i.sopt},`:" "} --${i.lopt}`+(i.arg?"="+i.arg:"");o=Math.max(o,s.length),e.push({text:s,desc:i.desc})}o+=2;for(const i of e)console.log(i.text.padEnd(o," ")+i.desc);console.log("")}();const t=await i()();return s.extract?(s.file||(console.log("libarchive: Archive file not specified (missing -f option)"),process.exit(1)),void await i().decompress(s.file,s.directory,{verbose:s.verbose})):s.create?(s.file||(console.log("libarchive: Archive file not specified (missing -f option)"),process.exit(1)),void await i().compress(o,s.file,{verbose:s.verbose})):s.version?(console.log("Version 0.0.1-develop.14"),void console.log(t.versionDetails)):(console.log("libarchive: determine the required command"),console.log(r),void process.exit(1))})().then(()=>process.exit(0)).catch(e=>{e instanceof Error?(e.cause&&console.error("Cause:",e.cause),console.error(e.stack)):console.error(e),process.exit(2)})})();