Pklとは
PklとはPkl形式のファイルから、jsonやxmlといった形式のファイルを生成することができるプログラミング言語です。
Appleが開発をしました。
今回はjsonファイルを作成してみるところまでを行おうと思います。
筆者はwindowsを使っているので、dockerでの作業を想定しています。
参考: 公式ドキュメント
vscodeに拡張機能を導入
vscodeの拡張機能があるので導入していきます。
拡張機能は.vsixファイルとして配布されています。
まず、 こちらから.vsixファイルをダウンロードします。
vscodeの作業ディレクトリで下記を実行します。
バージョンは執筆時のものなので注意してください。
code --install-extension pkl-vscode-0.15.0.vsix
拡張機能をいれることで、シンタックスハイライト、括弧の補完、コードのスぺニットが効くようになります。
開発環境構築
まず,PklのCLIをインストールします。
公式ドキュメントにはmacOSかlinuxのインストールコマンドが記載されています。
筆者の環境はwindowsなのでdockerにubuntu環境を作成してインストールすることにしました。
一応、docker-composeを利用します。
Dockerfile
FROM amd64/ubuntu:latest RUN apt-get update && apt-get install -y \ curl \ && rm -rf /var/lib/apt/lists/* # Pklのインストール RUN curl -L -o /usr/local/bin/pkl https://github.com/apple/pkl/releases/download/0.25.2/pkl-linux-amd64 # Pklの実行権限付与 RUN chmod +x /usr/local/bin/pkl WORKDIR /src COPY . /src # コンテナを動かし続ける CMD ["tail", "-f", "/dev/null"]
docker-compose.yaml
version: "3.8" services: app: build: . volumes: - .:/src
コンテナを起動します。
docker-compose up --build
PklファイルからJSONファイルを生成
公式ドキュメントのチュートリアルのBasic Configurationを参考に、PklファイルからJSONファイルを生成することを目指します。
まず、Pklファイルを作成します。
sample01.pkl
name = "hoge" id = 123
コンテナ内で下記を実行します。
pkl eval sample01.pkl
下記が得られることを確認します。
name = "hoge"
id = 123
指定のファイルで出力するには下記のようにします。
-fの後ろに出力したい形式をいれます。
xmlやyamlも出力できます。
pkl eval -f json sample01.pkl
json形式で出力されたことを確認します。
{
"name": "hoge",
"id": 123
}
出力されるjsonのファイルもできます。
オプションに-o と出力先をいれます。
pkl eval -f json -o ./sample01.json sample01.pkl
sample01.jsonが生成されます。
複数ファイルを一つのファイルにまとめることも可能です。
デフォルトはYAML Streamのセパレーターです。
sample02.pklを作成します。
sample02.pkl
isExist = true
下記を実行します。
pkl eval -f yaml -o ./sample03.yaml sample01.pkl sample02.pkl
下記のyamlファイルが生成されます。
sample03.yaml
name: hoge id: 123 --- isExist: true
参考:
おわりに
本記事を読んでいただきありがとうございました。
今回はPklファイルから、JSONファイルを生成するところまで行いました。
これ以外にもコマンドやオプションがありました。
s例外にもGoやJavaなどの言語の中で、利用もできるみたいなのでそちらも今後触れたらと思います。