2017-10-04 152 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'无法做到这一点,因为我认为这是一种常见的用例。 –

相关问题