2013-10-09 78 views
4

首先,我想说我是新的崇高文本编辑器,我喜欢它。我对JSON没有经验,但看起来并不困难。具有多个命令的崇高文本构建系统

我正在尝试编写一个构建系统,该系统将调用一个bash脚本,该脚本会将makefile移动到我正在工作的目录中,并调用该makefile,该文件将使用avr-gcc编译我的c代码,然后将其闪烁一个连接的微控制器使用avrdude。

我意识到,崇高的文本2只能有一个“cmd”对象,所以我试图从终端模拟器调用一行内容,它的工作原理与我的意图完全相同。该电话是:

checkAVRmakefile.sh $PWD; make PROJECTNAME+=hello install 

我的脚本是在我的$ PATH环境变量的目录,我通过它,我在我的工作目录中,因此会检查有没有makefile文件,如果它不存在它的副本它来自我所在的目录,我保存了所有的makefile。然后我打电话给make,并将其名称传递给要调用的项目,并且安装会使avr微控制器闪烁。

我做崇高是这样的:

{ 
"shell":true, 
"cmd":[ "checkAVRmakefile.sh", "$file_path", ";" ,"make","PROJECTNAME+=$file_base_name","install"], 
} 

这仅运行bash脚本这使生成文件的目录,但不会运行make。

有没有人看到我错了哪里?

任何帮助表示赞赏。我也在崇高的论坛上提出类似的问题,但没有人回答。另外我在Ubuntu上,正在使用ST2。

回答

11

我发现我的问题是。这是我的bash脚本的组合,它不处理我的目录名称中的空格,并且我没有在构建系统中使用shell:true对象。那么,现在的工作是:

{ 
    "shell":true, 
    "cmd":["check.sh $file_path && make PROJECTNAME+=$file_base_name install"] 

} 

似乎与外壳:真正的对象,我不需要在cmd列表中的每个输入加引号,只是一个很长的字符串。

(感谢U/Scoo_从reddit的提出了这个补丁) 希望这有助于一些其他人出去

EDIT(17-3-2014): 我已上传了我使用的构建文件我AVR项目到我的git的枢纽: https://github.com/Jesse-Millwood/AVR-Stuffs.git

+0

'check.sh'存储在哪里?我正在尝试相同的事情,但它从来没有发现脚本 – Ozkan

+1

'检查。sh'只是我写的一个shell脚本,用于检查make文件是否在目录中。它很短而且不复杂。但是,这是在我的/ home/jesse/bin文件夹中,我确信它在我的$ PATH中。如果make文件不在项目目录中,它将我用于AVR项目的make文件复制到项目目录中。 – Jesse

+0

Ozkan我添加了一个链接到我的git hub页面,在那里我有我用于AVR项目的文件,如果你有兴趣 – Jesse

0

所以,我有我的机器上这个其他安装的Python,我需要为不同的目的,我需要运行一个.bat或在我的终端设置我的环境.CMD变量之前,我使用Python的味道。这需要完成,否则它将从默认的c:\ Python27 python安装中导入其他相同名称的模块。我在互联网上搜索了一下,这就是我能够想到的,当我点击ctrl + B(build)时,它可以从Sublime Text 2运行。

我希望有人认为这有用。这是一个自定义的构建文件,使用我的其他风格的Sublime运行。您可以在Sublime中创建一个新的构建文件,方法是选择工具>构建系统>新建构建系统,然后将其粘贴到任何需要的MOD中。

{ 
    "shell":true, 
    "cmd": ["C:\\GIT\\Folder1\\Folder1\\thebatch.cmd", "&;", 
     "python", "-u", "$file"], 
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
    "working_dir": "C:\\GIT\\GBmapper\\AWSInterfaces\\DEM_Processing" 
}