kintoneのSEをやっていると、システムを構築した後にお客様の要望で仕様書を提出することがある。
例えばカスタマイズJSのファイル名の一覧とその内容などをエクセルで提出せよ的な。
JSファイルがたくさんある場合は、APIで抜き出すと簡単です。
準備
jq
をインストールしておきます。
https://jqlang.github.io/jq/
API
利用するAPIは下記です。
JavaScript / CSSカスタマイズ設定を取得する
https://cybozu.dev/ja/id/9b499a476dafed45a6f62dd3/
注意点
APIトークンは使えません。
当然ですが、アプリ管理権限がないと実行できません。
API叩いて設定情報のJSONを取得する
アプリをブラウザで開いて、開発者コンソールにてコマンドを打ち込むのが一番簡単です。
kintone REST APIリクエストを送信するAPIを使ったリクエスト
const body = {
app: kintone.app.getId()
};await kintone.api(kintone.api.url('/k/v1/app/customize.json', true), 'GET', body);
コンソールにJSONが吐き出されるのでコピーします。
コピーしたJSONをエディタに貼り付けてファイルに保存します。
jqにて必要な情報を抜き出す
設定情報をJSONファイルに保存したら、jqコマンドで整形していきます。
APIドキュメントの下記のサンプルレスポンスを参考にします。
{
"scope": "ALL",
"desktop": {
"js": [
{
"type": "URL",
"url": "https://sample.com/example.js"
},
{
"type": "FILE",
"file": {
"contentType": "application/javascript",
"fileKey": "20150519023802B3EB762E870645F889B22F9D4F1F3059023",
"name": "sample.js",
"size": "12345"
}
}
],
"css": []
},
"mobile": {
"js": [
{
"type": "FILE",
"file": {
"contentType": "application/javascript",
"fileKey": "20140823043800E9F53A742F7F4416B6E47234DBD6C0D4025",
"name": "mobile.js",
"size": "12345"
}
},
{
"type": "URL",
"url": "https://sample.com/example-mobile.js"
}
],
"css": []
},
"revision": "15"
}
desktop js name の抽出
cat [JSONファイル名] | jq '.desktop.js[] | .file.name'
desktop js url の抽出
cat [JSONファイル名] | jq '.desktop.js[] | .url'
desktop css name の抽出
cat [JSONファイル名] | jq '.desktop.css[] | .file.name'
desktop css url の抽出
cat [JSONファイル名] | jq '.desktop.css[] | .url'
mobile js name の抽出
cat [JSONファイル名] | jq '.mobile.js[] | .file.name'
mobile js url の抽出
cat [JSONファイル名] | jq '.mobile.js[] | .url'
mobile css name の抽出
cat [JSONファイル名] | jq '.mobile.css[] | .file.name'
mobile css url の抽出
cat [JSONファイル名] | jq '.mobile.css[] | .url'