競プロとゲームをしていません

oj-prepareのラッパーツールを作った

github.com

oj-prepareのラッパーツールを作った。名付けてoj-jordan

機能

↓の機能がある。

  • oj-prepare のラッパー
  • oj-prepare で指定した問題のページを開く
  • oj-prepare が生成したテンプレートファイルを VSCode で開く
    • VSCode でファイルを編集して提出することを想定(提出ファイル)
  • oj-prepare が生成した入力サンプルをコピーしたファイルを作成する
    • 標準入力リダイレクト先ファイルとして使用することを想定(標準入力リダイレクトファイル)
  • oj-prepare が生成したファイル/ディレクトリのパスを渡すとその問題のページを開く

実装

Pythonで実装した。PythonCLIツール。

online-judge-toolsPython製なのが理由。実装も大いに参考にしている。

感想

当然だが自分が欲しい機能をすべて入れたので便利。 oj-prepareで用意したテンプレートファイルをVSCodeで開く機能が特にお気に入り。

本当はonline-judge-toolsのモジュールを外部モジュールとして呼び出す形にしたかったのだが。 モジュールの使い方がわからず、普通にoj-prepareコマンドを実行している。

もともとfishシェルスクリプトで前身となるツールoj-prepare-openを作成していた。 実装が雑なのと機能を追加したかったため、Pythonで書き直した。 hotarunx.hatenablog.com