【发布时间】:2017-09-08 21:10:27
【问题描述】:
我正在编写我的第一个 bash 脚本,尝试通过 curl 设置 Heroku 环境变量。但是,我从 Heroku 收到一个错误的请求错误,说我的数据是无效的 JSON。不过我不明白为什么。
首先,我的 bash 脚本:
#!/bin/bash
GIT_COMMIT=`node get_git_commit.js`
echo $GIT_COMMIT
curl -n -X PATCH https://api.heroku.com/apps/my-app-name/config-vars \
-d '{
"GIT_COMMIT": $GIT_COMMIT
}' \
-H "Content-Type: application/json" \
-H "Accept: application/vnd.heroku+json; version=3"
这个脚本引用了 JavaScript 文件,get_git_commit.js:
const fs = require("fs")
require("child_process").exec("git rev-parse HEAD", (err, stdout) => {
const commit = stdout.replace(/\n/g, "")
console.log(`"${commit}"`)
}
当我运行 bash 脚本时,echo 正确地将 git 哈希打印到控制台,但 Heroku 返回
{
"id":"bad_request",
"message":"Provided data is invalid JSON."
}
我测试只是手动设置数据为
"GIT_COMMIT": 1234
而且效果很好。
我对 bash 编写完全陌生,所以我可能缺少一些基本约定 - 任何指导将不胜感激。
【问题讨论】:
标签: javascript bash heroku