mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-28 01:41:48 -06:00
ffe056bacb
This is part of a general effort to move all of Terraform's non-library package surface under internal in order to reinforce that these are for internal use within Terraform only. If you were previously importing packages under this prefix into an external codebase, you could pin to an earlier release tag as an interim solution until you've make a plan to achieve the same functionality some other way.
72 lines
2.4 KiB
Go
72 lines
2.4 KiB
Go
package command
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"runtime"
|
|
)
|
|
|
|
// Set to true when we're testing
|
|
var test bool = false
|
|
|
|
// DefaultDataDir is the default directory for storing local data.
|
|
const DefaultDataDir = ".terraform"
|
|
|
|
// PluginPathFile is the name of the file in the data dir which stores the list
|
|
// of directories supplied by the user with the `-plugin-dir` flag during init.
|
|
const PluginPathFile = "plugin_path"
|
|
|
|
// pluginMachineName is the directory name used in new plugin paths.
|
|
const pluginMachineName = runtime.GOOS + "_" + runtime.GOARCH
|
|
|
|
// DefaultPluginVendorDir is the location in the config directory to look for
|
|
// user-added plugin binaries. Terraform only reads from this path if it
|
|
// exists, it is never created by terraform.
|
|
const DefaultPluginVendorDir = "terraform.d/plugins/" + pluginMachineName
|
|
|
|
// DefaultStateFilename is the default filename used for the state file.
|
|
const DefaultStateFilename = "terraform.tfstate"
|
|
|
|
// DefaultVarsFilename is the default filename used for vars
|
|
const DefaultVarsFilename = "terraform.tfvars"
|
|
|
|
// DefaultBackupExtension is added to the state file to form the path
|
|
const DefaultBackupExtension = ".backup"
|
|
|
|
// DefaultParallelism is the limit Terraform places on total parallel
|
|
// operations as it walks the dependency graph.
|
|
const DefaultParallelism = 10
|
|
|
|
// ErrUnsupportedLocalOp is the common error message shown for operations
|
|
// that require a backend.Local.
|
|
const ErrUnsupportedLocalOp = `The configured backend doesn't support this operation.
|
|
|
|
The "backend" in Terraform defines how Terraform operates. The default
|
|
backend performs all operations locally on your machine. Your configuration
|
|
is configured to use a non-local backend. This backend doesn't support this
|
|
operation.
|
|
`
|
|
|
|
// ModulePath returns the path to the root module and validates CLI arguments.
|
|
//
|
|
// This centralizes the logic for any commands that previously accepted
|
|
// a module path via CLI arguments. This will error if any extraneous arguments
|
|
// are given and suggest using the -chdir flag instead.
|
|
//
|
|
// If your command accepts more than one arg, then change the slice bounds
|
|
// to pass validation.
|
|
func ModulePath(args []string) (string, error) {
|
|
// TODO: test
|
|
|
|
if len(args) > 0 {
|
|
return "", fmt.Errorf("Too many command line arguments. Did you mean to use -chdir?")
|
|
}
|
|
|
|
path, err := os.Getwd()
|
|
if err != nil {
|
|
return "", fmt.Errorf("Error getting pwd: %s", err)
|
|
}
|
|
|
|
return path, nil
|
|
}
|