Skip to content

Commit c954f36

Browse files
committed
Add MUTAGEN_PROJECT_FILE env variable
By default `mutagen project` looks for a config file named 'mutagen.yml' to load project configuration. This change gives us the ability to customize that with an environment variable.
1 parent 5742193 commit c954f36

File tree

9 files changed

+21
-11
lines changed

9 files changed

+21
-11
lines changed

cmd/mutagen/project/flush.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func flushMain(command *cobra.Command, arguments []string) error {
2828
// relative paths (including relative synchronization paths and relative
2929
// Unix Domain Socket paths) to be resolved relative to the project
3030
// configuration file.
31-
configurationFileName := project.DefaultConfigurationFileName
31+
configurationFileName := project.ConfigurationFileName
3232
if flushConfiguration.projectFile != "" {
3333
var directory string
3434
directory, configurationFileName = filepath.Split(flushConfiguration.projectFile)

cmd/mutagen/project/list.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func listMain(command *cobra.Command, arguments []string) error {
2929
// relative paths (including relative synchronization paths and relative
3030
// Unix Domain Socket paths) to be resolved relative to the project
3131
// configuration file.
32-
configurationFileName := project.DefaultConfigurationFileName
32+
configurationFileName := project.ConfigurationFileName
3333
if listConfiguration.projectFile != "" {
3434
var directory string
3535
directory, configurationFileName = filepath.Split(listConfiguration.projectFile)

cmd/mutagen/project/pause.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func pauseMain(command *cobra.Command, arguments []string) error {
3030
// relative paths (including relative synchronization paths and relative
3131
// Unix Domain Socket paths) to be resolved relative to the project
3232
// configuration file.
33-
configurationFileName := project.DefaultConfigurationFileName
33+
configurationFileName := project.ConfigurationFileName
3434
if pauseConfiguration.projectFile != "" {
3535
var directory string
3636
directory, configurationFileName = filepath.Split(pauseConfiguration.projectFile)

cmd/mutagen/project/reset.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func resetMain(command *cobra.Command, arguments []string) error {
2828
// relative paths (including relative synchronization paths and relative
2929
// Unix Domain Socket paths) to be resolved relative to the project
3030
// configuration file.
31-
configurationFileName := project.DefaultConfigurationFileName
31+
configurationFileName := project.ConfigurationFileName
3232
if resetConfiguration.projectFile != "" {
3333
var directory string
3434
directory, configurationFileName = filepath.Split(resetConfiguration.projectFile)

cmd/mutagen/project/resume.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func resumeMain(command *cobra.Command, arguments []string) error {
3030
// relative paths (including relative synchronization paths and relative
3131
// Unix Domain Socket paths) to be resolved relative to the project
3232
// configuration file.
33-
configurationFileName := project.DefaultConfigurationFileName
33+
configurationFileName := project.ConfigurationFileName
3434
if resumeConfiguration.projectFile != "" {
3535
var directory string
3636
directory, configurationFileName = filepath.Split(resumeConfiguration.projectFile)

cmd/mutagen/project/run.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func runMain(_ *cobra.Command, arguments []string) error {
3333
// relative paths (including relative synchronization paths and relative
3434
// Unix Domain Socket paths) to be resolved relative to the project
3535
// configuration file.
36-
configurationFileName := project.DefaultConfigurationFileName
36+
configurationFileName := project.ConfigurationFileName
3737
if runConfiguration.projectFile != "" {
3838
var directory string
3939
directory, configurationFileName = filepath.Split(runConfiguration.projectFile)

cmd/mutagen/project/start.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func startMain(command *cobra.Command, arguments []string) error {
3939
// relative paths (including relative synchronization paths and relative
4040
// Unix Domain Socket paths) to be resolved relative to the project
4141
// configuration file.
42-
configurationFileName := project.DefaultConfigurationFileName
42+
configurationFileName := project.ConfigurationFileName
4343
if startConfiguration.projectFile != "" {
4444
var directory string
4545
directory, configurationFileName = filepath.Split(startConfiguration.projectFile)

cmd/mutagen/project/terminate.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func terminateMain(command *cobra.Command, arguments []string) error {
3030
// relative paths (including relative synchronization paths and relative
3131
// Unix Domain Socket paths) to be resolved relative to the project
3232
// configuration file.
33-
configurationFileName := project.DefaultConfigurationFileName
33+
configurationFileName := project.ConfigurationFileName
3434
if terminateConfiguration.projectFile != "" {
3535
var directory string
3636
directory, configurationFileName = filepath.Split(terminateConfiguration.projectFile)

pkg/project/paths.go

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
11
package project
22

3+
import "os"
4+
5+
func configurationFileName() string {
6+
fileName := os.Getenv("MUTAGEN_PROJECT_FILE")
7+
if len(fileName) == 0 {
8+
return "mutagen.yml"
9+
}
10+
return file
11+
}
12+
313
const (
4-
// DefaultConfigurationFileName is the name of the Mutagen project
5-
// configuration file.
6-
DefaultConfigurationFileName = "mutagen.yml"
14+
// ConfigurationFileName is the name of the Mutagen project configuration
15+
// file.
16+
ConfigurationFileName = configurationFileName()
717
// LockFileExtension is the extension added to a configuration file path in
818
// order to compute the corresponding lock file.
919
LockFileExtension = ".lock"

0 commit comments

Comments
 (0)