【问题标题】:How to detect Gitpod workspace in Bash script?如何在 Bash 脚本中检测 Gitpod 工作区?
【发布时间】:2022-06-13 20:53:50
【问题描述】:

所以,我正在调整我的点文件以自动安装软件包,并且我想自动检测安装脚本是否在 Gitpod 工作区中运行。这是我目前拥有的:

if is-executable "gp"; then
    echo "Gitpod detected, not installing <pre-installed package>"
else
    # Continue with installation... rest of code goes here
fi

我知道 gp 是 Gitpod 中可用的命令,因为它是 CLI 并且上面的代码工作正常,但它并不理想,假设其他包在 Gitpod 之外也有 gp 命令(尽管我不使用它们)。那么,检测 Bash 脚本是否在 Gitpod 中运行的更好方法是什么?

【问题讨论】:

  • 你能跳过 Gitpod 检查,而是检查你要安装的包是否已经安装?这样可以更好地表达您的意图,并且不那么脆弱。
  • 我正在考虑检查 Gitpod,这样我就可以自动排除 Gitpod 上已经安装的包,但是对于这个单一的场景,我想检查包是否已安装就可以了。如果我需要专门的 Gitpod CLI 来运行某些命令并且需要检查它是否是 Gitpod 工作区,那该怎么办?
  • 什么点文件?你的shell配置文件?安装包是你应该在同时安装你的点文件的事情,而不是你应该在每次shell启动时重复检查的事情。 (为什么在您只希望它一次不可用时检查gp 是否可用,而不是在您知道以后需要它时才安装它?)
  • 忘记说明了,这是我的点文件的安装脚本,如install.sh。是的,我的意思是 shell 配置文件。

标签: bash shell dotfiles gitpod


【解决方案1】:

你可以从sn-phere使用这个函数:

function is::gitpod() {
      # Check for existent of this gitpod-specific file and the ENV var.
      test -e /ide/bin/gitpod-code && test -v GITPOD_REPO_ROOT;
}

另外,如果您有兴趣了解可能的情况,请查看我的dotfiles,它已经在做您想做的事情,甚至更多:)

【讨论】:

    猜你喜欢
    • 2010-09-28
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 2022-07-20
    • 1970-01-01
    相关资源
    最近更新 更多