CALM をハックする

ビルド済みバイナリを使用

ステップ 1: CALM をフォークする

https://github.com/VitoVan/calm/fork

ステップ 2: CALM バイナリのインストール

https://github.com/VitoVan/calm#-installation

ステップ 3: Git リポジトリの初期化

# ダウンロードした CALM バイナリのディレクトリに cd する
# 例 macOS の場合:
cd /Applications/Calm.app/Contents/MacOS

# git の init
git init .

# フォークをリモートに追加
git remote add origin [email protected]:<your-name>/calm.git

# fetch
git fetch origin --depth=1

# hard を origin/main にリセット
git reset --hard origin/main

これで、修正、プッシュ、プルリクエストの作成ができるようになりましたた!

個人的なお気に入り

個人的には、リポジトリをどこか別の場所にクローンし、ダウンロードしたバイナリのディレクトリにシンボルリンクを作成します、それは次のものなどがあります:

cd /Applications/Calm.app/Contents/MacOS

rm -rf ./build
rm -rf ./s
rm -rf ./src

ln -s ~/github/VitoVan/calm/build build
ln -s ~/github/VitoVan/calm/s s
ln -s ~/github/VitoVan/calm/src src

これですべてのソースコードをカバーできるわけではないが、通常はこれで十分です。

ソースからの実行

  1. 準備

    • Linux

      じっと座る。

    • macOS

      パッケージマネージャーが必要です。Homebrew をお勧めします。

      MacPortsは機能するはずですが、試してはいません。

    • Windows MSYS2 をお勧めします。

      Windows ユーザーに Bash を使えとは言いませんが、他の選択肢は見つかってはいません。

  2. SBCL と Quicklisp のインストール

    SBCL のバイナリはこちらにあります。また、パッケージ・マネージャーにも含まれているはずです。簡単にインストールできるはずです。

    • Linux (Fedora)

      sudo dnf install sbcl -y
    • macOS

      brew install sbcl
    • Windows

      winget install sbcl

    SBCL をインストールしたら、ターミナルからアクセスできるはずです。

    Windows (MSYS2) では、次のように PATH 環境を手動で設定する必要があります:

    echo 'export PATH="/c/program files/steel bank common lisp/:$PATH"' >> ~/.bashrc
    source ~/.bashrc

    Quicklisp をダウンロードしてインストールする:

    curl -O https://beta.quicklisp.org/quicklisp.lisp
    sbcl --non-interactive --load quicklisp.lisp \
         --eval "(quicklisp-quickstart:install)" \
         --eval "(ql-util:without-prompting (ql:add-to-init-file))"
  3. 依存関係のインストール

    必要なのは次のものだけです: libzstd, SDL2, SDL2_mixer, SDL2_image そして Cairo.

    libzstd は最近のバージョンの SBCL に必要で、SBCL をインストールすればパッケージマネージャーによって自動的にインストールされます。

    ここでは、いくつかのコマンドのサンプルを提供します:

    • Linux (Fedora)
      sudo dnf install libzstd SDL2 SDL2_mixer SDL2_image cairo -y
    • macOS
      brew install zstd sdl2 sdl2_mixer sdl2_image cairo
    • Windows (MSYS2)

      以下のコードは、ARM デバイス用に調整する必要があります。パッケージはここにある。

      pacman -S --noconfirm --needed git \
       mingw64/mingw-w64-x86_64-zstd \
       mingw64/mingw-w64-x86_64-SDL2 \
       mingw64/mingw-w64-x86_64-SDL2_mixer \
       mingw64/mingw-w64-x86_64-SDL2_image \
       mingw64/mingw-w64-x86_64-cairo
  4. CALM をクローンし、一時的なランチャーの作成

    # ソースコードのクローン
    git clone https://github.com/VitoVan/calm.git ~/calm
    cd ~/calm
    
    # 一時的なランチャーの作成
    cat > "./calm" <<EOF
      cd "$HOME/calm"
      export CALM_APP_DIR=$(pwd)
      export CALM_HOME="$HOME/calm/"
      export CALM_CMD=show
      sbcl --load entry.lisp show
    EOF
    
    chmod +x ./calm
    
    # ランチャーをPATH環境に追加
    echo 'export PATH="$HOME/calm/:$PATH"' >> ~/.bashrc
    
    # Windows (MSYS2) ユーザーは、以下の行が必要な場合があります:
    # echo 'export PATH="/mingw64/bin/:$PATH"' >> ~/.bashrc
    
    # ENV変更の有効化
    source ~/.bashrc
    
    # 試してみる
    calm

おめでとう!準備万端です!

何を作るのか楽しみです!

CALM のビルド

現在、CALM は GitHub actions でビルドされています。ワークフローはこちらにあります。

もし CALM のビルドに興味があり、何か問題が発生したら、私にお知らせください。

喜んでお手伝いします。