/* * Minio Cloud Storage, (C) 2016 Minio, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package main import ( "fmt" "runtime" "strings" "github.com/minio/mc/pkg/console" ) // Documentation links, these are part of message printing code. const ( mcQuickStartGuide = "https://docs.minio.io/docs/minio-client-quick-start-guide" goQuickStartGuide = "https://docs.minio.io/docs/golang-client-quickstart-guide" jsQuickStartGuide = "https://docs.minio.io/docs/javascript-client-quickstart-guide" javaQuickStartGuide = "https://docs.minio.io/docs/java-client-quickstart-guide" pyQuickStartGuide = "https://docs.minio.io/docs/python-client-quickstart-guide" ) // generates format string depending on the string length and padding. func getFormatStr(strLen int, padding int) string { formatStr := fmt.Sprintf("%ds", strLen+padding) return "%" + formatStr } // Prints the formatted startup message. func printStartupMessage(endPoints []string) { printServerCommonMsg(endPoints) printCLIAccessMsg(endPoints[0]) printObjectAPIMsg() } // Prints common server startup message. Prints credential, region and browser access. func printServerCommonMsg(endPoints []string) { // Get saved credentials. cred := serverConfig.GetCredential() // Get saved region. region := serverConfig.GetRegion() endPointStr := strings.Join(endPoints, " ") // Colorize the message and print. console.Println(colorMagenta("\nEndpoint: ") + colorGreen(fmt.Sprintf(getFormatStr(len(endPointStr), 1), endPointStr))) console.Println(colorMagenta("AccessKey: ") + colorWhite(fmt.Sprintf("%s ", cred.AccessKeyID))) console.Println(colorMagenta("SecretKey: ") + colorWhite(fmt.Sprintf("%s ", cred.SecretAccessKey))) console.Println(colorMagenta("Region: ") + colorWhite(fmt.Sprintf(getFormatStr(len(region), 3), region))) console.Println(colorMagenta("\nBrowser Access:")) console.Println(colorGreen(fmt.Sprintf(getFormatStr(len(endPointStr), 3), endPointStr))) } // Prints startup message for command line access. Prints link to our documentation // and custom platform specific message. func printCLIAccessMsg(endPoint string) { // Get saved credentials. cred := serverConfig.GetCredential() // Configure 'mc', following block prints platform specific information for minio client. console.Println(colorMagenta("\nCommand-line Access: ") + colorWhite(mcQuickStartGuide)) if runtime.GOOS == "windows" { mcMessage := fmt.Sprintf("$ mc.exe config host add myminio %s %s %s", endPoint, cred.AccessKeyID, cred.SecretAccessKey) console.Println(fmt.Sprintf(getFormatStr(len(mcMessage), 3), mcMessage)) } else { mcMessage := fmt.Sprintf("$ ./mc config host add myminio %s %s %s", endPoint, cred.AccessKeyID, cred.SecretAccessKey) console.Println(fmt.Sprintf(getFormatStr(len(mcMessage), 3), mcMessage)) } } // Prints startup message for Object API acces, prints link to our SDK documentation. func printObjectAPIMsg() { console.Println("\nObject API (Amazon S3 compatible):") console.Println(" Go: " + fmt.Sprintf(getFormatStr(len(goQuickStartGuide), 8), goQuickStartGuide)) console.Println(" Java: " + fmt.Sprintf(getFormatStr(len(javaQuickStartGuide), 6), javaQuickStartGuide)) console.Println(" Python: " + fmt.Sprintf(getFormatStr(len(pyQuickStartGuide), 4), pyQuickStartGuide)) console.Println(" JavaScript: " + jsQuickStartGuide) }