-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
69 lines (50 loc) · 1.96 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
Copyright 2024 Oscar Pernia
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 (
"log"
"os"
"github.com/otaxhu/goyp/internal/cmd/build"
)
func main() {
log.SetFlags(0)
log.SetPrefix("goyp: ")
if len(os.Args) < 2 {
os.Stderr.WriteString(`Usage: goyp <command> [arguments...]
Description:
goyp is a build system for Golang that allows you to compile your code, with support for
Golang binary dependencies and Go Modules.
It uses the Go toolchain ('go' command) to perform all of the low level details. So it's required
to be installed and available in PATH environment variable.
Commands:
build Compile the specified Go Module, outputing a zipfile containing all of the binary code
generated from a non-main package, outputs a executable if it's main package.
dist-lib Decompress zipfile generated by 'build', to distribute your library through Go Modules.
help Prints help about the different commands.
install Install main package to $GOPATH/bin or $HOME/go/bin if $GOPATH is not specified
run Build and run the specified Go main package.
version Display the current version of goyp.
See 'goyp help' for more information.
`)
os.Exit(1)
}
command := os.Args[1]
switch command {
case "run", "version", "help", "dist-lib", "install":
log.Fatalf("TODO: '%s' command unimplemented", command)
case "build":
build.Build(os.Args[2:])
default:
log.Fatalf("invalid '%s' command", command)
}
}