Rather than escape arguments selectively and then surround the whole client arg in single quotes, the correct thing to do is constructor the appropriate Idris command, shellescape it, then pass it to idris --client.
I've tested this to the best of my ability, but I'm not exactly sure where the corner cases are since I hardly know any Idris, and I haven't double-checked with the source code that parses Idris commands (pointers to the relevant code would be appreciated, esp with respect to how commands are initially parsed).
Rather than escape arguments selectively and then surround the whole client arg in single quotes, the correct thing to do is constructor the appropriate Idris command, shellescape it, then pass it to
idris --client
.I've tested this to the best of my ability, but I'm not exactly sure where the corner cases are since I hardly know any Idris, and I haven't double-checked with the source code that parses Idris commands (pointers to the relevant code would be appreciated, esp with respect to how commands are initially parsed).