Add more flexibility around the prefixes available

This allows you to specify a custom prefix, or a tmp prefix which is
chosen automatically.
This commit is contained in:
James Shubin
2016-08-29 02:54:04 -04:00
parent d429795737
commit db4de12767
9 changed files with 48 additions and 13 deletions

23
main.go
View File

@@ -122,10 +122,18 @@ func run(c *cli.Context) error {
return cli.NewExitError("", 1)
}
if c.IsSet("prefix") && c.Bool("tmp-prefix") {
log.Println("Main: Error: combining --prefix and the request for a tmp prefix is illogical!")
return cli.NewExitError("", 1)
}
if s := c.String("prefix"); c.IsSet("prefix") && s != "" {
prefix = s
}
// make sure the working directory prefix exists
if err := os.MkdirAll(prefix, 0770); err != nil {
if c.Bool("allow-tmp-prefix") {
if prefix, err = ioutil.TempDir("", program); err != nil {
if c.Bool("tmp-prefix") || os.MkdirAll(prefix, 0770) != nil {
if c.Bool("tmp-prefix") || c.Bool("allow-tmp-prefix") {
if prefix, err = ioutil.TempDir("", program+"-"); err != nil {
log.Printf("Main: Error: Can't create temporary prefix!")
return cli.NewExitError("", 1)
}
@@ -487,6 +495,15 @@ func main() {
Name: "no-caching",
Usage: "don't allow remote caching of remote execution binary",
},
cli.StringFlag{
Name: "prefix",
Usage: "specify a path to the working prefix directory",
EnvVar: "MGMT_PREFIX",
},
cli.BoolFlag{
Name: "tmp-prefix",
Usage: "request a pseudo-random, temporary prefix to be used",
},
cli.BoolFlag{
Name: "allow-tmp-prefix",
Usage: "allow creation of a new temporary prefix if main prefix is unavailable",