#!/usr/bin/env node
import{b as v}from"./chunk-S7KZBLGH.js";import{a as y}from"./chunk-63XSH3IT.js";import{a as x,b as I,c as m}from"./chunk-GTNBSMZR.js";var T={name:"cut",summary:"remove sections from each line of files",usage:"cut [OPTION]... [FILE]...",options:["-c LIST              select only these characters","-d DELIM             use DELIM instead of TAB for field delimiter","-f LIST              select only these fields","-s, --only-delimited  do not print lines without delimiters","    --help           display this help and exit"]};function b(s){let c=[],l=s.split(",");for(let n of l)if(n.includes("-")){let[t,r]=n.split("-");c.push({start:t?parseInt(t,10):1,end:r?parseInt(r,10):null})}else{let t=parseInt(n,10);c.push({start:t,end:t})}return c}function w(s,c){let l=[];for(let n of c){let t=n.start-1,r=n.end===null?s.length:n.end;for(let i=t;i<r&&i<s.length;i++)i>=0&&!l.includes(s[i])&&l.push(s[i])}return l}var E={name:"cut",async execute(s,c){if(I(s))return x(T);let l="	",n=null,t=null,r=!1,i=[];for(let o=0;o<s.length;o++){let e=s[o];if(e==="-d")l=s[++o]||"	";else if(e.startsWith("-d"))l=e.slice(2);else if(e==="-f")n=s[++o];else if(e.startsWith("-f"))n=e.slice(2);else if(e==="-c")t=s[++o];else if(e.startsWith("-c"))t=e.slice(2);else if(e==="-s"||e==="--only-delimited")r=!0;else{if(e.startsWith("--"))return m("cut",e);if(e.startsWith("-")){let f=!1;for(let u of e.slice(1))if(u==="s")r=!0;else if(!"dfc".includes(u)){f=!0;break}if(f)return m("cut",e)}else i.push(e)}}if(!n&&!t)return{stdout:"",stderr:`cut: you must specify a list of bytes, characters, or fields
`,exitCode:1};let p=await v(c,i,{cmdName:"cut"});if(!p.ok)return p.error;let a=(t?y(p.content):p.content).split(`
`);a.length>0&&a[a.length-1]===""&&a.pop();let g=b(n||t||"1"),h="";for(let o of a)if(t){let e=Array.from(o),f=[];for(let u of g){let F=u.start-1,H=u.end===null?e.length:u.end;for(let d=F;d<H&&d<e.length;d++)d>=0&&f.push(e[d])}h+=`${f.join("")}
`}else{if(r&&!o.includes(l))continue;let e=o.split(l),f=w(e,g);h+=`${f.join(l)}
`}return t?{stdout:h,stderr:"",exitCode:0}:{stdout:h,stderr:"",exitCode:0,stdoutKind:"bytes",stdoutEncoding:"binary"}}},S={name:"cut",flags:[{flag:"-d",type:"value",valueHint:"delimiter"},{flag:"-f",type:"value",valueHint:"string"},{flag:"-c",type:"value",valueHint:"string"},{flag:"-s",type:"boolean"}],stdinType:"text",needsFiles:!0};export{E as a,S as b};
