Files
QR-master/.output/server/node_modules/just-bash/dist/bundle/chunks/chunk-7AISL3XV.js
2026-07-15 18:08:51 +02:00

13 lines
3.7 KiB
JavaScript

import{createRequire} from"node:module";const require=createRequire(import.meta.url);
import{a as g}from"./chunk-QIQMJJZ4.js";import{a as D,b as $}from"./chunk-QAYAQNCG.js";var P={name:"tree",summary:"list contents of directories in a tree-like format",usage:"tree [OPTION]... [DIRECTORY]...",options:["-a include hidden files","-d list directories only","-L LEVEL limit depth of directory tree","-f print full path prefix for each file"," --help display this help and exit"]},b={showHidden:{short:"a",type:"boolean"},directoriesOnly:{short:"d",type:"boolean"},fullPath:{short:"f",type:"boolean"},maxDepth:{short:"L",type:"number"}},O={name:"tree",async execute(i,o){if($(i))return D(P);let s=g("tree",i,b);if(!s.ok)return s.error;let f={showHidden:s.result.flags.showHidden,directoriesOnly:s.result.flags.directoriesOnly,maxDepth:s.result.flags.maxDepth??null,fullPath:s.result.flags.fullPath},d=s.result.positional;d.length===0&&d.push(".");let e="",l="",a=0,n=0;for(let t of d){let r=await T(o,t,f,"",0);e+=r.output,l+=r.stderr,a+=r.dirCount,n+=r.fileCount}return e+=`
${a} director${a===1?"y":"ies"}`,f.directoriesOnly||(e+=`, ${n} file${n===1?"":"s"}`),e+=`
`,{stdout:e,stderr:l,exitCode:l?1:0}}};async function T(i,o,s,f,d){let e={output:"",stderr:"",dirCount:0,fileCount:0},l=i.fs.resolvePath(i.cwd,o);try{if(!(await i.fs.stat(l)).isDirectory)return e.output=`${o}
`,e.fileCount=1,e}catch{return e.stderr=`tree: ${o}: No such file or directory
`,e}if(e.output=`${o}
`,s.maxDepth!==null&&d>=s.maxDepth)return e;try{let a=[];if(i.fs.readdirWithFileTypes)a=(await i.fs.readdirWithFileTypes(l)).map(r=>({name:r.name,isDirectory:r.isDirectory}));else{let t=await i.fs.readdir(l);for(let r=0;r<t.length;r+=100){let m=t.slice(r,r+100),u=await Promise.all(m.map(async c=>{let y=l==="/"?`/${c}`:`${l}/${c}`;try{let h=await i.fs.stat(y);return{name:c,isDirectory:h.isDirectory}}catch{return null}}));a.push(...u.filter(c=>c!==null))}}let n=a.filter(t=>!(!s.showHidden&&t.name.startsWith(".")||s.directoriesOnly&&!t.isDirectory));n.sort((t,r)=>t.name.localeCompare(r.name));for(let t=0;t<n.length;t++){let r=n[t],m=l==="/"?`/${r.name}`:`${l}/${r.name}`,u=t===n.length-1,c=u?"`-- ":"|-- ",y=f+(u?" ":"| ");if(r.isDirectory){e.dirCount++;let h=s.fullPath?m:r.name;if(e.output+=`${f+c+h}
`,s.maxDepth===null||d+1<s.maxDepth){let C=await w(i,m,s,y,d+1);e.output+=C.output,e.dirCount+=C.dirCount,e.fileCount+=C.fileCount}}else{e.fileCount++;let h=s.fullPath?m:r.name;e.output+=`${f+c+h}
`}}}catch{e.stderr=`tree: ${o}: Permission denied
`}return e}async function w(i,o,s,f,d){let e={output:"",stderr:"",dirCount:0,fileCount:0};if(s.maxDepth!==null&&d>=s.maxDepth)return e;try{let l=[];if(i.fs.readdirWithFileTypes)l=(await i.fs.readdirWithFileTypes(o)).map(t=>({name:t.name,isDirectory:t.isDirectory}));else{let n=await i.fs.readdir(o);for(let t=0;t<n.length;t+=100){let r=n.slice(t,t+100),m=await Promise.all(r.map(async u=>{let c=o==="/"?`/${u}`:`${o}/${u}`;try{let y=await i.fs.stat(c);return{name:u,isDirectory:y.isDirectory}}catch{return null}}));l.push(...m.filter(u=>u!==null))}}let a=l.filter(n=>!(!s.showHidden&&n.name.startsWith(".")||s.directoriesOnly&&!n.isDirectory));a.sort((n,t)=>n.name.localeCompare(t.name));for(let n=0;n<a.length;n++){let t=a[n],r=o==="/"?`/${t.name}`:`${o}/${t.name}`,m=n===a.length-1,u=m?"`-- ":"|-- ",c=f+(m?" ":"| ");if(t.isDirectory){e.dirCount++;let y=s.fullPath?r:t.name;e.output+=`${f+u+y}
`;let h=await w(i,r,s,c,d+1);e.output+=h.output,e.dirCount+=h.dirCount,e.fileCount+=h.fileCount}else{e.fileCount++;let y=s.fullPath?r:t.name;e.output+=`${f+u+y}
`}}}catch{}return e}var L={name:"tree",flags:[{flag:"-a",type:"boolean"},{flag:"-d",type:"boolean"},{flag:"-f",type:"boolean"},{flag:"-L",type:"value",valueHint:"number"}],needsFiles:!0};export{O as a,L as b};