2017-10-04 194 views
0

我有一個CLI Go應用程序。此應用程序正在讀取一些環境變量,並讀取一個自定義配置文件。 而我不希望手動設置此env變量或手動創建配置文件。如果這些行動將由go install命令完成,那將是非常好的。 但是,我還沒有找到在go install期間執行一些其他操作的方法。 這是可能的嗎?最佳做法是什麼?去安裝。執行自定義操作

+0

是否要將這些設置編譯到應用程序中? –

+1

@EugeneLisitsky你的意思是將這些設置編譯到應用程序中是什麼意思?當然,該應用程序將使用它。 –

+0

將它們放在源文件中並從中讀取。你想要解決什麼任務?那個目的:修復設置?隱藏他們? –

回答

3

go install無法設置環境變量,也無法爲您創建配置文件。

最好的做法是有合理的默認值「內置」到應用程序中。應用程序應提供一些選項以覆蓋默認值,例如命令行標誌,環境變量和配置文件。

如果覆蓋(配置文件)不存在,應用程序可能會在啓動時創建默認配置文件,並且應用程序甚至可能會通過警告消息通知用戶該配置不存在,因此將使用默認設置,應用程序只是創建一個用戶可以更改/修改的默認值。

+0

因此,以'git'爲例,這意味着'.gitconfig'文件在第一次執行'git'命令之前不會存在?如果用戶在運行'git'命令之前更改配置,他必須手動創建該文件? –

+2

@SergiiBishyr就是這樣的。這取決於你的用例。如果配置文件不存在,你的應用程序應該創建一個默認的應用程序,甚至可以不做任何事情而終止,通知用戶檢查剛剛創建的應用程序的配置。 – icza

+0

非常感謝!有一點讓人失望的是'go install'無法做到這一點,因爲我認爲這是一種常見的用例。 –

相關問題