我刚刚创建了我的第一个github存储库:https://github.com/WinEunuuchs2Unix/eyesome
我已经上传了所有文件,但对最终用户在下载后如何复制文件感到担忧。
这是他们将运行的copy-files
脚本(经过删节):
!/bin/sh
if [ $(id -u) != 0 ]; then # root powers needed to call this script
echo >&2 $0 must be called with sudo powers
exit 1
fi
cp -v ./eyesome.sh /usr/local/bin/
cp -v ./eyesome-cfg.sh /usr/local/bin/
cp -v ./eyesome-src.sh /usr/local/bin/
cp -v ./eyesome-sun.sh /usr/local/bin/
cp -v ./wake-eyesome.sh /usr/local/bin/
cp -v ./start-eyesome /etc/cron.d/
cp -v ./daily-eyesome-sun /etc/cron.daily/
cp -v ./systemd-wake-eyesome /lib/systemd/system-sleep/
exit 0
我首先想到的是有人下载文件后,没有文件被标记为可执行文件吗?
copy-files
脚本的“卸载”部分处于非活动状态。这是一种礼貌吗?
对于进一步阅读以改进我的github
和完善我的copy-files
代码的评论也将受到赞赏。
答案 0 :(得分:1)
例如,看看install
而不是使用cp
install ./eyesome.sh /usr/local/bin/
默认情况下,它将使用755模式,但是如果需要其他功能,可以使用-m
选项覆盖它。
下一个合理的步骤可能是为您要定位的操作系统构建适当的程序包。
答案 1 :(得分:1)
您说:“我首先想到的是有人下载文件后,没有文件被标记为可执行文件吗?” git
允许您将文件标记为可执行文件并保留权限。在执行git commit -a -m 'Some changes';git push
之前,只需在文件上运行chmod +x
。
当前,您的所有文件都位于目录的顶层。这看起来有点杂乱无章。最好有目录并组织事物。如果您查看专业组织,则它们具有doc/
,scr/
目录,或者至少是项目的顶级模块名称目录,其中包含子模块。
当用户下载zip文件并提取所有内容时,他们会看到什么?在提取文件的目录中遍布大量文件。因此,在项目中包含目录有助于最大程度地减少混乱。
我拥有的某些存储库也遵循相同的规定-一切都在顶层。但是我没有改变,因为我已经在Ask Ask Ubuntu答案中写了说明,所以回去尝试找出要更改的答案太有问题了。
具有安装脚本。不必为用户写太多指令,这件事可以为他们和您节省时间。
弄清楚如何使用develop
和master
分支。您可以在master
中保留工作版本,并在develop
中进行更改。这样,用户即可使用有效的代码,而您不必担心代码被破坏和用户不满意。
您的README.md
是裸露的。添加一些有用的信息。特别是,概述了作为项目依赖项所必需的东西,特别是未安装在默认Ubuntu系统上的命令(这通常是您的项目通常针对的命令)。