RubyMetric/chsrc

编写统一安装的 shell 和 PowerShell 脚本

ccmywish opened this issue · 12 comments

现有的安装方式比较麻烦,用户需要手动根据操作系统和CPU类型来区分下载链接。该 challenge 邀请贡献者参与编写 :

  1. shell 脚本
  2. PowerShell 脚本

chsrc 项目支持一定程度的AI编写,但如果主要内容均由AI完成,需要将文件头作者填写为AI产品名。欢迎 shell 脚本初学者 和 PowerShell 初学者优先贡献


Shell 脚本 TODO

  • 基本框架
  • 支持 macOS 用户 和 Linux 用户
  • 使用标准默认安装目录
  • 支持自定义安装目录
  • 支持英语输出
  • BSD 用户也可使用该脚本,但并不是下载,而是调用 clang/gcc/gmake 自己编译
  • 其它POSIX平台,调用 clang/gcc/make 自己编译

PowerShell 脚本 TODO

  • 基本框架
  • 确定一个标准的可以执行exe的安装目录 → 不能执行,但标准:~/Downloads
  • 支持自定义安装目录

写了一个linux/macos的安装脚本
curl <path_to_install.sh>默认下载位置为/usr/local/bin
image
可以通过-d传入下载路径的参数
image
在wsl arch和ubuntu上测试了,macos未测试

@Efterklang 👍👍👍

可以开一个PULL REQUEST,直接在 chsrc 仓库维护就行了,不需要单独到 Gist 维护了。

已在 README 中添加使用 @Efterklang 编写的安装脚本。若后续有用户反馈, @Efterklang 你可按需修订代码 🤝

另外一个问题:
https://github.com/RubyMetric/chsrc/blob/main/tool/install.sh#L103-L104

这里有一个 -v 选项,是为了让用户指定 chsrc 的版本来安装吗?这个是暂时没有实现吗?还是说 -v 想要输出的是这个安装脚本自身的版本?

@Jerry-Terrasse

Hi,有没有什么建议和补充?

已在 README 中添加使用 @Efterklang 编写的安装脚本。若后续有用户反馈, @Efterklang 你可按需修订代码 🤝

另外一个问题: https://github.com/RubyMetric/chsrc/blob/main/tool/install.sh#L103-L104

这里有一个 -v 选项,是为了让用户指定 chsrc 的版本来安装吗?这个是暂时没有实现吗?还是说 -v 想要输出的是这个安装脚本自身的版本?

是为了让用户指定 chsrc 的版本来安装;但我中午测试的时候,curl返回404;没定位到哪出了问题,就把功能去了。现在发现是版本号输成-v 1.0.x了;已经重新提交了一个pr;可以指定并输出安装的版本

bab50a26e25aff4c9a7043324da0d03e

@Jerry-Terrasse

Hi,有没有什么建议和补充?

我觉得非常好 👍 👍 目前想到两点建议:

  1. 非root用户执行时便捷选择安装到$HOME/.local/bin
  2. 支持使用短链

如果能有上面两点就更好了 ❤️

@Efterklang @1328032567

你们俩认识吗?

请分别在:

  1. https://github.com/RubyMetric/chsrc/blob/main/tool/install.sh#L4
  2. https://github.com/RubyMetric/chsrc/blob/main/src/chsrc-main.c#L16

两个位置填写你们的贡献信息。由于 @1328032567 改动比较多,所以和 @Efterklang 同为 install.sh 的 Author,所以也填在 File Authors 的位置。

你们俩的代码太漂亮和细致,以至于我认为可能有AI辅助生成,chsrc 使用了GPL协议,所以对贡献信息希望有明确的了解。如果AI生成超过20%的话,请附带填写AI产品名作为 Contributor,如果超过80%,请把AI产品名作为 Author 🤝 如果代码均由二位自己编写完成,能力确实很强,向你们表示尊重和佩服。👍

当然即使使用 AI,chsrc 项目也是认可的,并对你们做出的贡献和额外努力表示感谢和欢迎。

@Efterklang @1328032567

你们俩认识吗?

请分别在:

  1. https://github.com/RubyMetric/chsrc/blob/main/tool/install.sh#L4
  2. https://github.com/RubyMetric/chsrc/blob/main/src/chsrc-main.c#L16

两个位置填写你们的贡献信息。由于 @1328032567 改动比较多,所以和 @Efterklang 同为 install.sh 的 Author,所以也填在 File Authors 的位置。

你们俩的代码太漂亮和细致,以至于我认为可能有AI辅助生成,chsrc 使用了GPL协议,所以对贡献信息希望有明确的了解。如果AI生成超过20%的话,请附带填写AI产品名作为 Contributor,如果超过80%,请把AI产品名作为 Author 🤝 如果代码均由二位自己编写完成,能力确实很强,向你们表示尊重和佩服。👍

当然即使使用 AI,chsrc 项目也是认可的,并对你们做出的贡献和额外努力表示感谢和欢迎。

认识。个人未添加AI生成的代码,以前读过Jan De Dobbeleer security@ohmyposh.devohmyposh(MIT License)项目中编写的shell脚本,写得十分优秀,代码组织上主要学习了Dobbeleer的实现😊

image

@Efterklang @1328032567

你们俩认识吗?

请分别在:

  1. https://github.com/RubyMetric/chsrc/blob/main/tool/install.sh#L4
  2. https://github.com/RubyMetric/chsrc/blob/main/src/chsrc-main.c#L16

两个位置填写你们的贡献信息。由于 @1328032567 改动比较多,所以和 @Efterklang 同为 install.sh 的 Author,所以也填在 File Authors 的位置。

你们俩的代码太漂亮和细致,以至于我认为可能有AI辅助生成,chsrc 使用了GPL协议,所以对贡献信息希望有明确的了解。如果AI生成超过20%的话,请附带填写AI产品名作为 Contributor,如果超过80%,请把AI产品名作为 Author 🤝 如果代码均由二位自己编写完成,能力确实很强,向你们表示尊重和佩服。👍

当然即使使用 AI,chsrc 项目也是认可的,并对你们做出的贡献和额外努力表示感谢和欢迎。

Yeah, we are in the same university also same grade. And, I use AI to translate the zh output into en output. I have to say that AI is very good at translation. But, these bugs and -l feature are both implemented by myself. That's all.
One last question, if ChatGPT 4o mini is the contributor, how to add its email address?

@1328032567

Just add a website of it.

https://github.com/RubyMetric/chsrc/blob/main/tool/install.ps1#L4

In the PowerShell version, I asked ChatGPT for the API to get OS architecture, this info is very important to this script, so I add it as another author instead of contributor.

@Efterklang @1328032567

Great work! 🥰 Your code quality standards are very high. 👍

Please add your contribution infos Proudly at https://github.com/RubyMetric/chsrc/blob/main/src/chsrc-main.c#L16