initial commit [ci skip]
This commit is contained in:
85
engine/compiler/os.go
Normal file
85
engine/compiler/os.go
Normal file
@@ -0,0 +1,85 @@
|
||||
// Copyright 2019 Drone.IO Inc. All rights reserved.
|
||||
// Use of this source code is governed by the Polyform License
|
||||
// that can be found in the LICENSE file.
|
||||
|
||||
package compiler
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/drone/runner-go/shell/bash"
|
||||
"github.com/drone/runner-go/shell/powershell"
|
||||
)
|
||||
|
||||
// helper function returns the base temporary directory based
|
||||
// on the target platform.
|
||||
func tempdir(os string) string {
|
||||
dir := fmt.Sprintf("drone-%s", random())
|
||||
switch os {
|
||||
case "windows":
|
||||
return join(os, "C:\\Windows\\Temp", dir)
|
||||
default:
|
||||
return join(os, "/tmp", dir)
|
||||
}
|
||||
}
|
||||
|
||||
// helper function joins the file paths.
|
||||
func join(os string, paths ...string) string {
|
||||
switch os {
|
||||
case "windows":
|
||||
return strings.Join(paths, "\\")
|
||||
default:
|
||||
return strings.Join(paths, "/")
|
||||
}
|
||||
}
|
||||
|
||||
// helper function returns the shell extension based on the
|
||||
// target platform.
|
||||
func getExt(os, file string) (s string) {
|
||||
switch os {
|
||||
case "windows":
|
||||
return file + ".ps1"
|
||||
default:
|
||||
return file
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// TODO(bradrydzewski) can we remove the below functions?
|
||||
//
|
||||
|
||||
// helper function returns the shell command and arguments
|
||||
// based on the target platform to invoke the script
|
||||
func getCommand(os, script string) (string, []string) {
|
||||
cmd, args := bash.Command()
|
||||
switch os {
|
||||
case "windows":
|
||||
cmd, args = powershell.Command()
|
||||
}
|
||||
return cmd, append(args, script)
|
||||
}
|
||||
|
||||
// helper function returns the netrc file name based on the
|
||||
// target platform.
|
||||
func getNetrc(os string) string {
|
||||
switch os {
|
||||
case "windows":
|
||||
return "_netrc"
|
||||
default:
|
||||
return ".netrc"
|
||||
}
|
||||
}
|
||||
|
||||
// helper function generates and returns a shell script to
|
||||
// execute the provided shell commands. The shell scripting
|
||||
// language (bash vs pwoershell) is determined by the operating
|
||||
// system.
|
||||
func genScript(os string, commands []string) string {
|
||||
switch os {
|
||||
case "windows":
|
||||
return powershell.Script(commands)
|
||||
default:
|
||||
return bash.Script(commands)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user