单个github仓库用于多个平台

时间:2016-05-27 01:44:28

标签: git github npm pip luarocks

我正在编写一个小代码项目(或模块),并愿意用3种不同的语言实现相同的技术,即:Python,JS,Lua。我想制作一个包含所有这些语言中所有代码的github repo。

我的问题是:如何将其作为可安装的软件包,适用于所有三种语言?即:

对于Python,我希望通过

提供
pip install packagex

对于Lua,我希望通过以下方式提供:

luarocks install packagex

类似于JS / Node:

npm install packagex

是的,我可以为三个不同的平台创建三个不同的存储库,并将每个平台注册为可安装的包,但我想将所有内容保存在单个源代码库中。我该怎么办?感谢。

1 个答案:

答案 0 :(得分:0)

我可以回答问题的LuaRocks部分:

LuaRocks

如果您选择为每种语言创建子目录,并且Lua内容位于/lua下,您可以关注usual process of creating a rockspec file,并添加source.dir条目,告诉它在子目录。所以,在上面的链接示例中,您可能会这样:

source = {
   url = "git://github.com/me/luafruits",
   tag = "v1.0",
   dir = "luafruits/lua"
}

source.dirrockspec format的其余部分一起被记录:

  
      
  • source.dir(string) - 解压缩源存档时创建的目录的名称。如果可以从source.file字段推断出它,则可以省略。示例:“luasocket-2.0.1”
  •   

对于Git存储库,默认情况下会将source.dir推断为路径的最后一个组件,但如果您的代码位于子目录中,则可以随意重新定义它。 rockspec中的所有其他路径都与此source.dir相对。

或者,您只需将lua/添加到build部分的所有路径即可。在文档中的“luafruits”示例中,请注意所有源都位于src/内。只需使用lua/,您就可以开始使用,无需使用source.dir