mirror of
https://github.com/minio/minio.git
synced 2025-04-27 05:15:01 -04:00
Commands implemented $ minio put <objectname> <file> $ minio encode <objectname> $ minio get <objectname> $ minio list TODO : $ minio init $ minio verify ... ...
104 lines
2.0 KiB
Go
104 lines
2.0 KiB
Go
package minio
|
|
|
|
import (
|
|
"errors"
|
|
"log"
|
|
"os"
|
|
"os/user"
|
|
"path"
|
|
"strconv"
|
|
"strings"
|
|
|
|
"github.com/codegangsta/cli"
|
|
"github.com/minio-io/minio/pkgs/strbyteconv"
|
|
)
|
|
|
|
// config representing cli input
|
|
type inputConfig struct {
|
|
k int
|
|
m int
|
|
blockSize uint64
|
|
rootDir string
|
|
stagingDir string
|
|
}
|
|
|
|
// parses input and returns an inputConfig with parsed input
|
|
func parseInput(c *cli.Context) (inputConfig, error) {
|
|
var k, m int
|
|
if c.String("protection-level") != "" {
|
|
protectionLevel := c.String("protection-level")
|
|
protectionLevelSplit := strings.Split(protectionLevel, ",")
|
|
if len(protectionLevelSplit) != 2 {
|
|
return inputConfig{}, errors.New("Malformed input for protection-level")
|
|
}
|
|
|
|
var err error
|
|
k, err = strconv.Atoi(protectionLevelSplit[0])
|
|
if err != nil {
|
|
return inputConfig{}, err
|
|
}
|
|
m, err = strconv.Atoi(protectionLevelSplit[1])
|
|
if err != nil {
|
|
return inputConfig{}, err
|
|
}
|
|
}
|
|
|
|
var blockSize uint64
|
|
blockSize = 0
|
|
if c.String("block-size") != "" {
|
|
if c.String("block-size") != "full" {
|
|
var err error
|
|
blockSize, err = strbyteconv.StringToBytes(c.String("block-size"))
|
|
if err != nil {
|
|
return inputConfig{}, err
|
|
}
|
|
}
|
|
}
|
|
|
|
var rootDir string
|
|
if c.String("root") != "" {
|
|
rootDir = c.String("root")
|
|
}
|
|
|
|
var stagingDir string
|
|
if c.String("staging") != "" {
|
|
stagingDir = c.String("staging")
|
|
}
|
|
|
|
config := inputConfig{
|
|
k: k,
|
|
m: m,
|
|
blockSize: blockSize,
|
|
rootDir: rootDir,
|
|
stagingDir: stagingDir,
|
|
}
|
|
return config, nil
|
|
}
|
|
|
|
func Getobjectdir(basename string) string {
|
|
user, err := user.Current()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
homePath := user.HomeDir
|
|
minioPath := path.Join(homePath, basename)
|
|
err = _initDir(minioPath)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
return minioPath
|
|
}
|
|
|
|
func _initDir(dirPath string) error {
|
|
_, err := os.Lstat(dirPath)
|
|
if err != nil {
|
|
log.Printf("%s not found, creating a new-one for the first time",
|
|
dirPath)
|
|
err = os.MkdirAll(dirPath, 0700)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|