func use(version dockerversion.Version) { writeDebug("dvm use %s", version) if version.IsEmpty() { die("The use command requires that a version is specified or the DOCKER_VERSION environment variable is set.", nil, retCodeInvalidOperation) } if version.HasAlias() && aliasExists(version.Alias) { aliasedVersion, _ := ioutil.ReadFile(getAliasPath(version.Alias)) version.SemVer = semver.MustParse(string(aliasedVersion)) writeDebug("Using alias: %s -> %s", version.Alias, version.SemVer) } ensureVersionIsInstalled(version) if version.IsSystem() { version, _ = getSystemDockerVersion() } else if version.IsExperimental() { version, _ = getExperimentalDockerVersion() } removePreviousDockerVersionFromPath() if !version.IsSystem() { prependDockerVersionToPath(version) } writePathScript() writeInfo("Now using Docker %s", version) }