2013-10-09 72 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" 
}