UNPKG

939 BJavaScriptView Raw
1const n=(n,...t)=>new Promise(i=>require("child_process").execFile(n,t,{maxBuffer:8388608},(n,t)=>i(String(t||""))))
2module.exports={getDarwinMainBundleIdHackAsync:async()=>{const t=await(async()=>{const[t,...i]=(await n("/bin/ps","x","-ww","-o","pid,ppid,comm")).split("\n")
3const[s,e]=(n=>{let t=" "===n.charAt(0)
4let i=2
5const s=[]
6for(let e=0,r=n.length;e<r;e++){if(t!==(" "===n.charAt(e))){t=!t
7i--
8if(0===i){s.push(e)
9i=2}}}return s})(t)
10const r={}
11for(const n of i){if(!n)continue
12const t=parseInt(n.slice(0,s))
13const i=parseInt(n.slice(s,e))
14const o=n.slice(e).trim()
15r[t]={pid:t,ppid:i,comm:o}}return r})()
16let i=t[process.pid]
17for(;i&&1!==i.ppid;)i=t[i.ppid]
18if(!i)throw new Error("missing mainProcessPid")
19const s=i.comm.trim()
20const e=s.slice(0,s.indexOf("/Contents/MacOS"))
21const r=(await n("/usr/bin/defaults","read",`${e}/Contents/Info`,"CFBundleIdentifier")).trim()
22if(!i)throw new Error("missing mainBundleId")
23return r}}