am i missing something  why is not this more like if eq then exe port pid elif eq then port pid fi if  z exe then exe  adb shell readlink  proc  pid exe  fi if  z port then port fi if pid then fi  there s too much nesting here for any human to understand  i think  it s unfortunate that this function allowed so many different uses  but we are largely stuck with that  