Rewrited for kingpin command line arguments parser
This commit is contained in:
parent
2e9a8018da
commit
c86a80d702
@ -31,9 +31,10 @@ If you already have Go, Qemu, Vagrant and Docker installed, there's cross-platfo
|
|||||||
$ rm -rf {Debian,CentOS,Ubuntu/{14.04,18.04}} # speed up :)
|
$ rm -rf {Debian,CentOS,Ubuntu/{14.04,18.04}} # speed up :)
|
||||||
$ ./bootstrap.sh
|
$ ./bootstrap.sh
|
||||||
$ # wait several hours...
|
$ # wait several hours...
|
||||||
|
$ export OUT_OF_TREE_KERNELS_CONFIG=$GOPATH/src/github.com/jollheef/out-of-tree/tools/kernel-factory/output/kernels.toml
|
||||||
$ cd ../../examples/kernel-exploit
|
$ cd ../../examples/kernel-exploit
|
||||||
$ # test kernel exploit
|
$ # test kernel exploit
|
||||||
$ out-of-tree
|
$ out-of-tree pew
|
||||||
$ cd ../kernel-module
|
$ cd ../kernel-module
|
||||||
$ # test kernel module
|
$ # test kernel module
|
||||||
$ out-of-tree
|
$ out-of-tree pew
|
||||||
|
45
main.go
45
main.go
@ -21,6 +21,7 @@ import (
|
|||||||
"github.com/naoina/toml"
|
"github.com/naoina/toml"
|
||||||
"github.com/otiai10/copy"
|
"github.com/otiai10/copy"
|
||||||
"github.com/remeh/sizedwaitgroup"
|
"github.com/remeh/sizedwaitgroup"
|
||||||
|
kingpin "gopkg.in/alecthomas/kingpin.v2"
|
||||||
|
|
||||||
qemu "github.com/jollheef/out-of-tree/qemu"
|
qemu "github.com/jollheef/out-of-tree/qemu"
|
||||||
)
|
)
|
||||||
@ -404,16 +405,7 @@ func exists(path string) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func oldmain() {
|
||||||
ka, err := readArtifactConfig(".out-of-tree.toml")
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalln(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if ka.SourcePath == "" {
|
|
||||||
ka.SourcePath = "."
|
|
||||||
}
|
|
||||||
|
|
||||||
kcfgEnv := "OUT_OF_TREE_KERNELS_CONFIG"
|
kcfgEnv := "OUT_OF_TREE_KERNELS_CONFIG"
|
||||||
kcfgPath := os.Getenv(kcfgEnv)
|
kcfgPath := os.Getenv(kcfgEnv)
|
||||||
if !exists(kcfgPath) {
|
if !exists(kcfgPath) {
|
||||||
@ -424,6 +416,18 @@ func main() {
|
|||||||
log.Fatalln("Please specify kernels config path in " + kcfgEnv)
|
log.Fatalln("Please specify kernels config path in " + kcfgEnv)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func pewHandler(workPath, kcfgPath string) (err error) {
|
||||||
|
ka, err := readArtifactConfig(workPath + "/.out-of-tree.toml")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalln(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if ka.SourcePath == "" {
|
||||||
|
ka.SourcePath = workPath
|
||||||
|
}
|
||||||
|
|
||||||
kcfg, err := readKernelConfig(kcfgPath)
|
kcfg, err := readKernelConfig(kcfgPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalln(err)
|
log.Fatalln(err)
|
||||||
@ -433,4 +437,25 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalln(err)
|
log.Fatalln(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
pewCommand := kingpin.Command("pew", "Build, run and test module/exploit")
|
||||||
|
path := pewCommand.Arg(
|
||||||
|
"path", "Path to work directory").Default(".").ExistingDir()
|
||||||
|
kernelsConfig := pewCommand.Flag(
|
||||||
|
"kernels-config", "Path to kernels config").Envar(
|
||||||
|
"OUT_OF_TREE_KERNELS_CONFIG").Required().ExistingFile()
|
||||||
|
|
||||||
|
var err error
|
||||||
|
switch kingpin.Parse() {
|
||||||
|
case "pew":
|
||||||
|
err = pewHandler(*path, *kernelsConfig)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user