我刚刚创建了我的第一个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
代码的评论也值得赞赏。
git
允许您标记可执行文件并保留权限。在做git commit -a -m 'Some changes';git push
之前,只需在文件上运行chmod +x
。doc/
,scr/
目录,或至少项目的顶级模块名称目录,里面有子模块。
当用户下载zip文件并提取所有内容时,他们会看到什么?大量文件在他们提取它的目录中进行了搜索。因此,在项目中安装目录有助于最大限度地减少混乱。
我做的一些存储库也遵循同样的事情 - 一切都在顶级。但是我没有改变它,因为我已经在我的Ask Ubuntu答案中写了指令,所以回过头来试图弄清楚改变的答案是有问题的。develop
和master
分支。您可以在master
中保留一个工作版本并处理develop
中的更改。这样,用户就可以使用正常工作的代码,并且您不会因为代码被破坏而用户不满意而感到害怕。README.md
是裸露的。添加一些有用的信息。特别是,概述了作为项目依赖项所必需的东西,特别是默认的Ubuntu系统上没有安装的命令(这是您的项目通常倾向于的目标)。而不是使用cp
,看看install
,例如
install ./eyesome.sh /usr/local/bin/
默认情况下,它将使用模式755,但如果您需要不同的东西,可以使用-m
选项覆盖它。
下一个合乎逻辑的步骤可能是为您要定位的操作系统构建适当的包。