Compare commits
4 Commits
7e4f845821
...
ed493b012a
Author | SHA1 | Date |
---|---|---|
Alexander Andreev | ed493b012a | |
Alexander Andreev | 7cb5d35e6a | |
Alexander Andreev | 3d492e26ae | |
Alexander Andreev | 32dba480ee |
2
Makefile
2
Makefile
|
@ -8,7 +8,7 @@ endif
|
|||
DESTDIR:=
|
||||
PREFIX:=/usr/local
|
||||
|
||||
VERSION=0.1.1
|
||||
VERSION=0.1.2
|
||||
|
||||
FLAGS:=-buildmode=pie -modcacherw -mod=readonly -trimpath
|
||||
LDFLAGS:= -ldflags "-s -w -X main.programVersion=${VERSION}"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Maintainer: Alexander "Arav" Andreev <me@arav.su>
|
||||
pkgname=mccl
|
||||
pkgver=0.1.1
|
||||
pkgver=0.1.2
|
||||
pkgrel=1
|
||||
pkgdesc="Console Minecraft launcher"
|
||||
arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64')
|
||||
|
|
132
cmd/mccl/main.go
132
cmd/mccl/main.go
|
@ -31,7 +31,7 @@ func main() {
|
|||
|
||||
if len(os.Args) < 2 {
|
||||
usage()
|
||||
os.Exit(0)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
var cmd commands.Command
|
||||
|
@ -90,8 +90,8 @@ func usage() {
|
|||
" \033[1mlist|l\033[0m directory\n"+
|
||||
" List all installed versions in directory\n"+
|
||||
"Explanation of arguments and options for commands:\n"+
|
||||
" version minecraft's version \n"+
|
||||
" directory a path to where Minecraft will be installed\n"+
|
||||
" version version of a game (name of a dir inside versions dir)\n"+
|
||||
" directory a path to where Minecraft will be installed / or will be runned from\n"+
|
||||
" -u,--username username\n"+
|
||||
" player's username (Anonymous by default)\n"+
|
||||
" -U,--uuid UUID\n"+
|
||||
|
@ -101,7 +101,7 @@ func usage() {
|
|||
" --profile\n"+
|
||||
" load/save username, UUID, and -Xmx from/to a file.\n"+
|
||||
" Once saved, you can ommit -u,-U and --java-Xmx,\n"+
|
||||
" since they are stored in", mcclprofile.ProfileFileName)
|
||||
" since they will be stored in", mcclprofile.ProfileFileName)
|
||||
}
|
||||
|
||||
type arguments struct {
|
||||
|
@ -131,101 +131,49 @@ func parseArguments(args []string) (parsed arguments, err error) {
|
|||
parsed.Username = "Anonymous"
|
||||
parsed.Directory = "."
|
||||
parsed.Uuid = "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
for i := 0; i < len(args); i++ {
|
||||
if len(args[i]) > 2 && args[i][0] == '-' && args[i][1] == '-' {
|
||||
switch args[i][2:] {
|
||||
case "version":
|
||||
parsed.ShowVersion = true
|
||||
case "help":
|
||||
parsed.ShowHelp = true
|
||||
case "demand-press-enter":
|
||||
parsed.DemandPressEnter = true
|
||||
case "username":
|
||||
if len(args) == i+1 || args[i+1][0] == '-' {
|
||||
err = errNoOptArg{ArgName: args[i]}
|
||||
return
|
||||
}
|
||||
parsed.Username = args[i+1]
|
||||
i++
|
||||
case "uuid":
|
||||
if len(args) == i+1 || args[i+1][0] == '-' {
|
||||
err = errNoOptArg{ArgName: args[i]}
|
||||
return
|
||||
}
|
||||
parsed.Uuid = args[i+1]
|
||||
i++
|
||||
case "java-Xmx":
|
||||
if len(args) == i+1 || args[i+1][0] == '-' {
|
||||
err = errNoOptArg{ArgName: args[i]}
|
||||
return
|
||||
}
|
||||
parsed.JavaXmx = args[i+1]
|
||||
i++
|
||||
case "profile":
|
||||
parsed.UseProfile = true
|
||||
default:
|
||||
err = fmt.Errorf("an unknown option %s was provided", args[i])
|
||||
switch args[i] {
|
||||
case "-v":
|
||||
fallthrough
|
||||
case "--version":
|
||||
parsed.ShowVersion = true
|
||||
case "-h":
|
||||
fallthrough
|
||||
case "--help":
|
||||
parsed.ShowHelp = true
|
||||
case "--demand-press-enter":
|
||||
parsed.DemandPressEnter = true
|
||||
case "-u":
|
||||
fallthrough
|
||||
case "--username":
|
||||
if len(args) == i+1 || args[i+1][0] == '-' {
|
||||
err = errNoOptArg{ArgName: args[i]}
|
||||
return
|
||||
}
|
||||
} else if args[i][0] == '-' && len(args[i]) > 1 {
|
||||
for _, option := range args[i][1:] {
|
||||
switch option {
|
||||
case 'v':
|
||||
parsed.ShowVersion = true
|
||||
case 'h':
|
||||
parsed.ShowHelp = true
|
||||
case 'u':
|
||||
if len(args) == i+1 || args[i+1][0] == '-' {
|
||||
err = errNoOptArg{ArgName: args[i]}
|
||||
return
|
||||
}
|
||||
parsed.Username = args[i+1]
|
||||
i++
|
||||
case 'U':
|
||||
if len(args) == i+1 || args[i+1][0] == '-' {
|
||||
err = errNoOptArg{ArgName: args[i]}
|
||||
return
|
||||
}
|
||||
parsed.Uuid = args[i+1]
|
||||
i++
|
||||
default:
|
||||
err = fmt.Errorf("an unknown option %c was provided", option)
|
||||
return
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if parsed.Command != "" {
|
||||
err = fmt.Errorf("only one command should present")
|
||||
parsed.Username = args[i+1]
|
||||
i++
|
||||
case "-U":
|
||||
fallthrough
|
||||
case "--uuid":
|
||||
if len(args) == i+1 || args[i+1][0] == '-' {
|
||||
err = errNoOptArg{ArgName: args[i]}
|
||||
return
|
||||
}
|
||||
switch parsed.Command = args[i]; parsed.Command {
|
||||
case "i":
|
||||
fallthrough
|
||||
case "install":
|
||||
fallthrough
|
||||
case "r":
|
||||
fallthrough
|
||||
case "run":
|
||||
if len(args) <= i+3 || args[i+1][0] == '-' || args[i+2][0] == '-' {
|
||||
err = fmt.Errorf("not enough arguments was provided")
|
||||
return
|
||||
}
|
||||
parsed.GameVersion = args[i+1]
|
||||
parsed.Directory = args[i+2]
|
||||
i += 2
|
||||
case "l":
|
||||
fallthrough
|
||||
case "list":
|
||||
if len(args) <= i+2 || args[i+1][0] == '-' {
|
||||
err = fmt.Errorf("not enough arguments was provided")
|
||||
return
|
||||
}
|
||||
parsed.Directory = args[i+1]
|
||||
i++
|
||||
default:
|
||||
err = fmt.Errorf("an unknown command %s was provided", parsed.Command)
|
||||
parsed.Uuid = args[i+1]
|
||||
i++
|
||||
case "--java-Xmx":
|
||||
if len(args) == i+1 || args[i+1][0] == '-' {
|
||||
err = errNoOptArg{ArgName: args[i]}
|
||||
return
|
||||
}
|
||||
parsed.JavaXmx = args[i+1]
|
||||
i++
|
||||
case "--profile":
|
||||
parsed.UseProfile = true
|
||||
default:
|
||||
err = fmt.Errorf("an unknown option %s was provided", args[i])
|
||||
return
|
||||
}
|
||||
}
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue