使用 github 项目中的文件的最佳实践

使用 github 项目中的文件的最佳实践

我正在使用 tmuxinator ruby​​ gem gem install tmuxinator,按照项目 github 安装说明通过安装。

tmuxinator 链接

作为安装说明的一部分,他们还指定从存储库下载“完成”文件并从 shell rc 文件链接到它。

我的问题:当我将项目安装为 ruby​​ gem,而不是克隆他们的 github 存储库时,如果我只是下载所需的文件,它就不会更新。我应该克隆存储库并将其保存在某个地方,从 zshrc 指向该位置吗?

人们是否有最佳实践或典型方法?否则,我要么不更新文件,要么必须克隆每个以这种方式工作的项目存储库?

答案1

这是可以实现您所追求的目标的zsh东西bash

如果您执行gem clean删除旧版本的tmuxinator,它会在下次运行代码时为您解决问题(即在下一次 shell 启动时,如果在您的.zshrc

# Allow shell-specific code
function sh_is_zsh { [[ -n $ZSH_VERSION ]]; }
function sh_is_bash { [[ -n $BASH_VERSION ]]; }

# Update "tmuxinator.{z,ba}sh" if needed
tmuxinator_source="$XDG_CONFIG_HOME/tmuxinator/tmuxinator.$(sh_is_zsh && echo zsh || echo bash)"
# If not a regular file or symlink to one
if [[ ! -f $tmuxinator_source ]]; then
    # If doesn't exist or is a symlink to nowhere
    if [[ ! -e $tmuxinator_source ]] || [[ -L $tmuxinator_source ]] && [[ ! -e $tmuxinator_source ]]; then
        echo "Creating ${tmuxinator_source##*/} symlink:"
        tmp=$(gem which tmuxinator) # tmuxinator executable
        tmp=$(readlink -f "${tmp%/*}/../completion") # completion scripts dir
        ln -fsv "$tmp/${tmuxinator_source##*/}" "$tmuxinator_source"
        unset tmp
    else
      echo "Not creating symlink at at existing:"
      ls -lF "$tmuxinator_source"
    fi
fi

source "$tmuxinator_source"
unset $tmuxinator_source

请注意,这shellcheck对于额外的布朗尼积分来说是干净的。

相关内容