衝撃のわからなさ

わかってません

2024/01/11日報

deno-cliffyで--以降のargumentを扱う方法

--以降のargumentはliteralというargumentと別の領域に格納されている。\ action内で使いたい場合は直接渡されないので自分でgetする必要がある。\ 先頭に--が来てargsがnullになるケースなども考慮するとこういいう ブロックを使えば良さそう。

await new Command()
  .arguments("[args...]")
  .action(async function (_, ...args) {
    const combinedArgs: string[] = (args || []).concat(
      this.getLiteralArgs() || [],
    );
  });

参考: Access literal inside a subcommand action · Issue #536 · c4spar/deno-cliffy · GitHub

mimic-cross実装

mimicx chrootがliteralを受け取るように

chroot後にオプション付きのコマンドを実行したい場合は、 下記のように書けば良くなった。

mimicx chroot -- ls -l

commit: chroot with literal