diff --git a/cmd/config.go b/cmd/config.go index 6b155f2795d..ec30fa8ed9a 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -274,6 +274,20 @@ func (c *Config) ensureSourceDirectory() error { } } +func (c *Config) getData() (map[string]interface{}, error) { + defaultData, err := c.getDefaultData() + if err != nil { + return nil, err + } + data := map[string]interface{}{ + "chezmoi": defaultData, + } + for key, value := range c.Data { + data[key] = value + } + return data, nil +} + func (c *Config) getDefaultData() (map[string]interface{}, error) { data := map[string]interface{}{ "arch": runtime.GOARCH, @@ -389,16 +403,11 @@ func (c *Config) getPersistentStateFile() string { func (c *Config) getTargetState(populateOptions *chezmoi.PopulateOptions) (*chezmoi.TargetState, error) { fs := vfs.NewReadOnlyFS(c.fs) - defaultData, err := c.getDefaultData() + + data, err := c.getData() if err != nil { return nil, err } - data := map[string]interface{}{ - "chezmoi": defaultData, - } - for key, value := range c.Data { - data[key] = value - } destDir := c.DestDir if destDir != "" { diff --git a/cmd/data.go b/cmd/data.go index c09aae18fd2..a91f985191e 100644 --- a/cmd/data.go +++ b/cmd/data.go @@ -33,9 +33,9 @@ func (c *Config) runDataCmd(cmd *cobra.Command, args []string) error { if !ok { return fmt.Errorf("%s: unknown format", c.data.format) } - ts, err := c.getTargetState(nil) + data, err := c.getData() if err != nil { return err } - return format(c.Stdout(), ts.Data) + return format(c.Stdout(), data) }