server: Move all the top level files into cmd folder. (#2490)

This change brings a change which was done for the 'mc'
package to allow for clean repo and have a cleaner
github drop in experience.
This commit is contained in:
Harshavardhana 2016-08-18 16:23:42 -07:00 committed by Anand Babu (AB) Periasamy
parent 73d1a46f3e
commit bccf549463
187 changed files with 425 additions and 419 deletions

View File

@ -71,19 +71,19 @@ verifiers: vet fmt lint cyclo spelling
vet:
@echo "Running $@:"
@GO15VENDOREXPERIMENT=1 go tool vet -all *.go
@GO15VENDOREXPERIMENT=1 go tool vet -all ./cmd
@GO15VENDOREXPERIMENT=1 go tool vet -all ./pkg
@GO15VENDOREXPERIMENT=1 go tool vet -shadow=true *.go
@GO15VENDOREXPERIMENT=1 go tool vet -shadow=true ./cmd
@GO15VENDOREXPERIMENT=1 go tool vet -shadow=true ./pkg
fmt:
@echo "Running $@:"
@GO15VENDOREXPERIMENT=1 gofmt -s -l *.go
@GO15VENDOREXPERIMENT=1 gofmt -s -l cmd
@GO15VENDOREXPERIMENT=1 gofmt -s -l pkg
lint:
@echo "Running $@:"
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/golint *.go
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/golint github.com/minio/minio/cmd...
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/golint github.com/minio/minio/pkg...
ineffassign:
@ -92,7 +92,7 @@ ineffassign:
cyclo:
@echo "Running $@:"
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/gocyclo -over 65 *.go
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/gocyclo -over 65 cmd
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/gocyclo -over 65 pkg
build: getdeps verifiers $(UI_ASSETS)
@ -101,12 +101,12 @@ deadcode:
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/deadcode
spelling:
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/misspell -error *.go
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/misspell -error cmd/**/*
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/misspell -error pkg/**/*
test: build
@echo "Running all minio testing:"
@GO15VENDOREXPERIMENT=1 go test $(GOFLAGS) .
@GO15VENDOREXPERIMENT=1 go test $(GOFLAGS) github.com/minio/minio/cmd...
@GO15VENDOREXPERIMENT=1 go test $(GOFLAGS) github.com/minio/minio/pkg...
coverage: build
@ -139,8 +139,6 @@ experimental: verifiers
clean:
@echo "Cleaning up all the generated files:"
@rm -fv minio minio.test cover.out
@find . -name '*.test' | xargs rm -fv
@rm -rf isa-l
@rm -rf build
@rm -rf release

View File

@ -22,7 +22,7 @@ install:
# to run your custom scripts instead of automatic MSBuild
build_script:
- go test -race .
- go test -race github.com/minio/minio/cmd...
- go test -race github.com/minio/minio/pkg...
- go test -coverprofile=coverage.txt -covermode=atomic
- go run buildscripts/gen-ldflags.go > temp.txt

View File

@ -28,11 +28,11 @@ import (
func genLDFlags(version string) string {
var ldflagsStr string
ldflagsStr = "-X main.minioVersion=" + version
ldflagsStr += " -X main.minioReleaseTag=" + releaseTag(version)
ldflagsStr += " -X main.minioCommitID=" + commitID()
ldflagsStr += " -X main.minioShortCommitID=" + commitID()[:12]
ldflagsStr += " -X main.minioGOPATH=" + os.Getenv("GOPATH")
ldflagsStr = "-X github.com/minio/minio/cmd.Version=" + version
ldflagsStr += " -X github.com/minio/minio/cmd.ReleaseTag=" + releaseTag(version)
ldflagsStr += " -X github.com/minio/minio/cmd.CommitID=" + commitID()
ldflagsStr += " -X github.com/minio/minio/cmd.ShortCommitID=" + commitID()[:12]
ldflagsStr += " -X github.com/minio/minio/cmd.GOPATH=" + os.Getenv("GOPATH")
return ldflagsStr
}

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"crypto/rand"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"encoding/xml"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"encoding/xml"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"
@ -44,7 +44,7 @@ func generateRequestID() []byte {
func setCommonHeaders(w http.ResponseWriter) {
// Set unique request ID for each reply.
w.Header().Set("X-Amz-Request-Id", string(generateRequestID()))
w.Header().Set("Server", ("Minio/" + minioReleaseTag + " (" + runtime.GOOS + "; " + runtime.GOARCH + ")"))
w.Header().Set("Server", ("Minio/" + ReleaseTag + " (" + runtime.GOOS + "; " + runtime.GOARCH + ")"))
w.Header().Set("Accept-Ranges", "bytes")
}

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"testing"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"net/url"

View File

@ -14,9 +14,9 @@
* limitations under the License.
*/
// File carries any specific responses constructed/necessary in
// Package cmd file carries any specific responses constructed/necessary in
// multipart operations.
package main
package cmd
import "net/http"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"encoding/xml"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import router "github.com/gorilla/mux"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"net/http"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"encoding/xml"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"encoding/xml"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -1,4 +1,4 @@
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "strings"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "testing"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,9 +14,9 @@
* limitations under the License.
*/
// This file implements AWS Access Policy Language parser in
// Package cmd This file implements AWS Access Policy Language parser in
// accordance with http://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html
package main
package cmd
import (
"encoding/json"

View File

@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -1,5 +1,5 @@
/*
* Minio Cloud Storage, (C) 2015 Minio, Inc.
* Minio Cloud Storage, (C) 2015, 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.
@ -14,20 +14,20 @@
* limitations under the License.
*/
package main
package cmd
// DO NOT EDIT THIS FILE DIRECTLY. These are build-time constants
// set through buildscripts/gen-ldflags.go.
var (
// minioGOPATH - GOPATH value at the time of build.
minioGOPATH = ""
// GOPATH - GOPATH value at the time of build.
GOPATH = ""
// minioVersion - version time.RFC3339.
minioVersion = "DEVELOPMENT.GOGET"
// minioReleaseTag - release tag in TAG.%Y-%m-%dT%H-%M-%SZ.
minioReleaseTag = "DEVELOPMENT.GOGET"
// minioCommitID - latest commit id.
minioCommitID = "DEVELOPMENT.GOGET"
// minioShortCommitID - first 12 characters from minioCommitID.
minioShortCommitID = minioCommitID[:12]
// Version - version time.RFC3339.
Version = "DEVELOPMENT.GOGET"
// ReleaseTag - release tag in TAG.%Y-%m-%dT%H-%M-%SZ.
ReleaseTag = "DEVELOPMENT.GOGET"
// CommitID - latest commit id.
CommitID = "DEVELOPMENT.GOGET"
// ShortCommitID - first 12 characters from CommitID.
ShortCommitID = CommitID[:12]
)

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"os"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"os"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"fmt"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"fmt"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "github.com/minio/cli"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"errors"

View File

@ -1,4 +1,4 @@
package main
package cmd
import (
"os"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"os"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"os"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"fmt"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "net/http"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"math"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"math"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"encoding/hex"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "encoding/hex"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"encoding/hex"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "testing"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
// Simulates disk returning errFaultyDisk on all methods of StorageAPI
// interface after successCount number of successes.

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"encoding/json"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "io"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "errors"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"encoding/json"
@ -98,7 +98,7 @@ func newFSMetaV1() (fsMeta fsMetaV1) {
fsMeta = fsMetaV1{}
fsMeta.Version = "1.0.0"
fsMeta.Format = "fs"
fsMeta.Minio.Release = minioReleaseTag
fsMeta.Minio.Release = ReleaseTag
return fsMeta
}

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"os"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"encoding/json"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"crypto/md5"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"crypto/md5"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"os"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"net/http"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"github.com/fatih/color"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"io"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"net"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "testing"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"fmt"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "testing"

View File

@ -5,7 +5,7 @@
// Package leaktest provides tools to detect leaked goroutines in tests.
// To use it, call "defer leaktest.AfterTest(t)()" at the beginning of each
// test that may use goroutines.
package main
package cmd
import (
"runtime"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"io/ioutil"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"fmt"

View File

@ -16,7 +16,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"fmt"

View File

@ -16,7 +16,7 @@
* limitations under the License.
*/
package main
package cmd
type syslogLogger struct {
Enable bool `json:"enable"`

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bufio"
@ -56,7 +56,7 @@ func stackInfo() string {
stackBuf.ReadFrom(rawStack)
// Strip GOPATH of the build system and return.
return strings.Replace(stackBuf.String(), minioGOPATH+"/src/", "", -1)
return strings.Replace(stackBuf.String(), GOPATH+"/src/", "", -1)
}
// errorIf synonymous with fatalIf but doesn't exit on error != nil

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

193
cmd/main.go Normal file
View File

@ -0,0 +1,193 @@
/*
* Minio Cloud Storage, (C) 2015, 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 cmd
import (
"fmt"
"os"
"sort"
"github.com/minio/cli"
"github.com/minio/mc/pkg/console"
"github.com/pkg/profile"
)
var (
// global flags for minio.
minioFlags = []cli.Flag{
cli.BoolFlag{
Name: "help, h",
Usage: "Show help.",
},
}
)
// Help template for minio.
var minioHelpTemplate = `NAME:
{{.Name}} - {{.Usage}}
DESCRIPTION:
{{.Description}}
USAGE:
minio {{if .Flags}}[flags] {{end}}command{{if .Flags}}{{end}} [arguments...]
COMMANDS:
{{range .Commands}}{{join .Names ", "}}{{ "\t" }}{{.Usage}}
{{end}}{{if .Flags}}
FLAGS:
{{range .Flags}}{{.}}
{{end}}{{end}}
VERSION:
` + Version +
`{{ "\n"}}`
// init - check the environment before main starts
func init() {
// Check if minio was compiled using a supported version of Golang.
checkGoVersion()
// Set global trace flag.
globalTrace = os.Getenv("MINIO_TRACE") == "1"
}
func migrate() {
// Migrate config file
migrateConfig()
// Migrate other configs here.
}
func enableLoggers() {
// Enable all loggers here.
enableConsoleLogger()
enableFileLogger()
// Add your logger here.
}
func findClosestCommands(command string) []string {
var closestCommands []string
for _, value := range commandsTree.PrefixMatch(command) {
closestCommands = append(closestCommands, value.(string))
}
sort.Strings(closestCommands)
// Suggest other close commands - allow missed, wrongly added and
// even transposed characters
for _, value := range commandsTree.walk(commandsTree.root) {
if sort.SearchStrings(closestCommands, value.(string)) < len(closestCommands) {
continue
}
// 2 is arbitrary and represents the max
// allowed number of typed errors
if DamerauLevenshteinDistance(command, value.(string)) < 2 {
closestCommands = append(closestCommands, value.(string))
}
}
return closestCommands
}
func registerApp() *cli.App {
// Register all commands.
registerCommand(serverCmd)
registerCommand(versionCmd)
registerCommand(updateCmd)
registerCommand(controlCmd)
// Set up app.
app := cli.NewApp()
app.Name = "Minio"
app.Author = "Minio.io"
app.Usage = "Cloud Storage Server."
app.Description = `Minio is an Amazon S3 compatible object storage server. Use it to store photos, videos, VMs, containers, log files, or any blob of data as objects.`
app.Flags = append(minioFlags, globalFlags...)
app.Commands = commands
app.CustomAppHelpTemplate = minioHelpTemplate
app.CommandNotFound = func(ctx *cli.Context, command string) {
msg := fmt.Sprintf("%s is not a minio sub-command. See minio --help.", command)
closestCommands := findClosestCommands(command)
if len(closestCommands) > 0 {
msg += fmt.Sprintf("\n\nDid you mean one of these?\n")
for _, cmd := range closestCommands {
msg += fmt.Sprintf(" %s\n", cmd)
}
}
console.Fatalln(msg)
}
return app
}
func checkMainSyntax(c *cli.Context) {
configPath, err := getConfigPath()
if err != nil {
console.Fatalf("Unable to obtain user's home directory. \nError: %s\n", err)
}
if configPath == "" {
console.Fatalln("Config folder cannot be empty, please specify --config-dir <foldername>.")
}
}
// Main - main for minio server.
func Main() {
app := registerApp()
app.Before = func(c *cli.Context) error {
// Sets new config folder.
setGlobalConfigPath(c.GlobalString("config-dir"))
// Valid input arguments to main.
checkMainSyntax(c)
// Migrate any old version of config / state files to newer format.
migrate()
// Initialize config.
err := initConfig()
fatalIf(err, "Unable to initialize minio config.")
// Enable all loggers by now.
enableLoggers()
// Set global quiet flag.
globalQuiet = c.Bool("quiet") || c.GlobalBool("quiet")
// Do not print update messages, if quiet flag is set.
if !globalQuiet {
// Do not print any errors in release update function.
noError := true
updateMsg := getReleaseUpdate(minioUpdateStableURL, noError)
if updateMsg.Update {
console.Println(updateMsg)
}
}
return nil
}
// Set ``MINIO_PROFILE_DIR`` to the directory where profiling information should be persisted
profileDir := os.Getenv("MINIO_PROFILE_DIR")
// Enable profiler if ``MINIO_PROFILER`` is set. Supported options are [cpu, mem, block].
switch os.Getenv("MINIO_PROFILER") {
case "cpu":
defer profile.Start(profile.CPUProfile, profile.ProfilePath(profileDir)).Stop()
case "mem":
defer profile.Start(profile.MemProfile, profile.ProfilePath(profileDir)).Stop()
case "block":
defer profile.Start(profile.BlockProfile, profile.ProfilePath(profileDir)).Stop()
}
// Run the app - exit on error.
app.RunAndExitOnError()
}

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"testing"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"errors"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "testing"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"errors"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "testing"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"io/ioutil"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"errors"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"io/ioutil"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"path/filepath"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "time"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"errors"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"net/http"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"encoding/hex"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import (
"bytes"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package main
package cmd
import "io"

Some files were not shown because too many files have changed in this diff Show More