Documentation
¶
Overview ¶
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved.
Licensed under the MIT License ¶
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index ¶
- Constants
- Variables
- func AddData(key string, data map[string]interface{})
- func AddJSON(key, jsonString string) error
- func BashUser()
- func CheckOrCreateUseConfig(externalUseCase string) (string, error)
- func ClearAll()
- func ClearAllData()
- func CreateImport(path string, pathToAdd string) error
- func CreateMirror(path string)
- func ExecPathFile(waitGroup *sync.WaitGroup, useWaitGroup bool, template configure.RunConfig, ...) int
- func ExecuteScriptLine(ShellToUse string, cmdArg []string, command string, callback func(string) bool, ...) (int, int, error)
- func ExecuteTemplateWorker(waitGroup *sync.WaitGroup, useWaitGroup bool, target string, ...)
- func ExistInStrMap(testStr string, check []string) bool
- func ExportTask(target string) (string, error)
- func FindTemplate() (string, bool)
- func FishCompletionUpdate(cmd *cobra.Command)
- func FishFunctionUpdate()
- func FishUpdate(cmd *cobra.Command)
- func GetArgQuotedEntries(oristr string) ([]string, bool)
- func GetData(key string) (bool, map[string]interface{})
- func GetDataKeys() []string
- func GetDefaultCmd() string
- func GetDefaultCmdOpts(ShellToUse string, cmdArg []string) []string
- func GetExecDefaults() (string, []string)
- func GetJSONPathResult(key, path string) (gjson.Result, bool)
- func GetJSONPathValueString(key, path string) string
- func GetLogger() *logrus.Logger
- func GetOriginMap() map[string]interface{}
- func GetPH(key string) string
- func GetPHExists(key string) (string, bool)
- func GetParsedTemplateSource(path string) (string, error)
- func GetPwdTemplate(path string) (configure.RunConfig, error)
- func GetTemplate() (configure.RunConfig, string, bool, error)
- func GetUseInfo(usecase, pathTouse string) (string, string)
- func HandleJSONMap(tmpl string, m map[string]interface{}) (string, error)
- func HandlePlaceHolder(line string) string
- func HandlePlaceHolderWithScope(line string, scopeVars map[string]string) string
- func HandleUsecase(externalUseCase string) string
- func ImportDataFromJSONFile(key string, filename string) error
- func ImportDataFromYAMLFile(key string, filename string) error
- func ImportFileContent(filename string) (string, error)
- func ImportFolder(path string, templatePath string) (map[string]interface{}, error)
- func ImportFolders(templatePath string, paths ...string) (string, error)
- func ImportJSONFile(fileName string) (map[string]interface{}, error)
- func ImportYAMLFile(filename string) (map[string]interface{}, error)
- func InitDefaultVars()
- func LintOut(leftcnt, rightcnt int, all bool, noOut bool) bool
- func ListUseCases(fullPath bool) ([]string, error)
- func LoadIncTempalte(path string) (string, bool)
- func MainExecute()
- func MergeVariableMap(mapin map[string]interface{}, maporigin map[string]interface{}) map[string]interface{}
- func ResetAllTaskInfos()
- func RunShared(targets string)
- func RunTargets(targets string, sharedRun bool)
- func SetIfNotExists(key, value string)
- func SetPH(key, value string)
- func SharedFolderExecuter(template configure.RunConfig, locationHandle func(string, string))
- func ShowAsYaml(fullparsed bool, trySupress bool, indent int)
- func SplitArgs(cmdList []string, prefix string, arghandler func(string, map[string]string)) []string
- func SplitQuoted(oristr string, sep string) []string
- func StringMatchTest(pattern, value string) bool
- func StringSplitArgs(argLine string, prefix string) (string, map[string]string)
- func StripContxtUseDir(path string) string
- func TaskExists(target string) bool
- func TaskRunning(target string) bool
- func TestTemplate() error
- func TryParse(script []string, regularScript func(string) (bool, int)) (bool, int, []string)
- func UpdateOriginMap(mapData map[string]interface{})
- func UpdateUseCase(fullPath string)
- func UserDirectory() (string, error)
- func WaitAtGroup(futures []Future) []interface{}
- func WaitForTasksDone(tasks []string, timeOut, tickTime time.Duration, stillWait func() bool, ...)
- func WriteFileIfNotExists(filename, content string) (int, error)
- func WriteTemplate()
- func YAMLToMap(source string) (map[string]interface{}, error)
- func ZshFuncDir() string
- func ZshUpdate(cmd *cobra.Command)
- func ZshUser()
- type CtxKey
- type Future
- type FutureStack
- type TaskDef
- type TaskGroup
- type TaskResult
- type TaskRuntimeState
- type TaskWatched
Constants ¶
const ( // ExitOk the process was executed without errors ExitOk = 0 // ExitByStopReason the process stopped because of a defined reason ExitByStopReason = 101 // ExitNoCode means there was no code associated ExitNoCode = 102 // ExitCmdError means the execution of the command fails. a error by the command itself ExitCmdError = 103 // ExitByRequirement means a requirement was not fulfills ExitByRequirement = 104 // ExitAlreadyRunning means the task is not started, because it is already created ExitAlreadyRunning = 105 )
const ( // DefaultExecFile is the filename of the script defaut file DefaultExecFile = "/.context.json" // DefaultExecYaml is the default yaml configuration file DefaultExecYaml = "/.contxt.yml" // TargetScript is script default target TargetScript = "script" // InitScript is script default target InitScript = "init" // ClearScript is script default target ClearScript = "clear" // TestScript is teh test target TestScript = "test" // DefaultCommandFallBack is used if no command is defined DefaultCommandFallBack = "bash" // On windows we have a different default DefaultCommandFallBackWindows = "powershell" )
Variables ¶
var Experimental = false
this flag is for the runner logic replacement that have still issues. this 'solution' is not nice but a different branch would be more difficult to handle
Functions ¶
func CheckOrCreateUseConfig ¶ added in v0.2.2
CheckOrCreateUseConfig get a usecase like swaros/ctx-git and checks if a local copy of them exists. if they not exists it creates the local directoy and uses git to clone the content. afterwards it writes a version.conf in the forlder above of content and stores the current hashes
func CreateImport ¶
CreateImport creates import settings
func ExecPathFile ¶
func ExecPathFile(waitGroup *sync.WaitGroup, useWaitGroup bool, template configure.RunConfig, target string) int
ExecPathFile executes the default exec file
func ExecuteScriptLine ¶
func ExecuteScriptLine(ShellToUse string, cmdArg []string, command string, callback func(string) bool, startInfo func(*os.Process)) (int, int, error)
ExecuteScriptLine executes a simple shell script returns internal exitsCode, process existcode, error
func ExecuteTemplateWorker ¶
func ExecuteTemplateWorker(waitGroup *sync.WaitGroup, useWaitGroup bool, target string, template configure.RunConfig)
ExecuteTemplateWorker runs ExecCurrentPathTemplate in context of a waitgroup
func ExistInStrMap ¶
func ExportTask ¶
func FindTemplate ¶
FindTemplate searchs for Template files in different spaces
func FishCompletionUpdate ¶
func FishFunctionUpdate ¶
func FishFunctionUpdate()
func FishUpdate ¶
func GetArgQuotedEntries ¶
func GetDefaultCmd ¶
func GetDefaultCmd() string
func GetDefaultCmdOpts ¶
func GetExecDefaults ¶
func GetJSONPathResult ¶
GetJSONPathResult returns the value depending key and path as string
func GetJSONPathValueString ¶
GetJSONPathValueString returns the value depending key and path as string
func GetOriginMap ¶
func GetOriginMap() map[string]interface{}
func GetPH ¶
GetPH the content of the key. but at least a empty string if not exists. so this is not usefull to test if the PH was set.
func GetPHExists ¶
GetPH the content of the key as string. if exists.
func GetParsedTemplateSource ¶
GetParsedTemplateSource Returns the soucecode of the template including parsing placeholders
func GetPwdTemplate ¶
GetPwdTemplate returns the template path if exists. it also parses the content of the template against imports and handles them
func GetTemplate ¶
GetTemplate return current template
func GetUseInfo ¶ added in v0.2.2
func HandleJSONMap ¶
HandleJSONMap parsing json content for text/template
func HandlePlaceHolder ¶
HandlePlaceHolder replaces all defined placeholders
func HandlePlaceHolderWithScope ¶ added in v0.2.2
func HandleUsecase ¶
func ImportDataFromJSONFile ¶
ImportDataFromJSONFile imports a map from a json file and assign it to a key
func ImportDataFromYAMLFile ¶
ImportDataFromYAMLFile imports a map from a json file and assign it to a key
func ImportFileContent ¶
ImportFileContent imports a file and returns content as string
func ImportFolder ¶
ImportFolder reads folder recursiv and reads all .json, .yml and .yaml files
func ImportFolders ¶
ImportFolders import a list of folders recusiv
func ImportJSONFile ¶
ImportJSONFile imports a json file for reading
func ImportYAMLFile ¶
ImportYAMLFile imports a yaml file as used for json map
func InitDefaultVars ¶
func InitDefaultVars()
func LintOut ¶
LintOut prints the source code and the parsed content in a table view, and marks configured and not configured entries with dfferent colors
func ListUseCases ¶
func LoadIncTempalte ¶
LoadIncTempalte check if .inc.contxt.yml files exists and if this is the case the content will be loaded and all defined paths used to get values for parsing the template file
func MergeVariableMap ¶
func MergeVariableMap(mapin map[string]interface{}, maporigin map[string]interface{}) map[string]interface{}
MergeVariableMap merges two maps
func RunTargets ¶
RunTargets executes multiple targets the targets string can have multiple targets seperated by comma
func SetIfNotExists ¶
func SetIfNotExists(key, value string)
func SharedFolderExecuter ¶
func ShowAsYaml ¶
ShowAsYaml prints the generated source of the task file
func SplitQuoted ¶
func StringMatchTest ¶
StringMatchTest test a pattern and a value. in this example: myvar: "=hello" the patter is "=hello" and the value should be "hello" for a match
func StringSplitArgs ¶ added in v0.2.2
func StripContxtUseDir ¶
func TaskRunning ¶
TaskRunning checks if a task is already running
func TestTemplate ¶ added in v0.2.2
func TestTemplate() error
func UpdateOriginMap ¶
func UpdateOriginMap(mapData map[string]interface{})
func UpdateUseCase ¶
func UpdateUseCase(fullPath string)
func UserDirectory ¶
func WaitAtGroup ¶ added in v0.2.2
func WaitAtGroup(futures []Future) []interface{}
WaitAtGroup wait until all Futures are executes
func WaitForTasksDone ¶
func WaitForTasksDone(tasks []string, timeOut, tickTime time.Duration, stillWait func() bool, isDone func(), timeOutHandle func(), notStartet func(string, string, map[string]string) bool)
WaitForTasksDone waits until all the task are done triggers a callback for any tick and one if the state DONE is reached there is an timeout as maximum time to wait if this time is reached the process will be continued and the timeout callback is triggered the callback for notStarted must return true if they handle this issue. on returning false it will be counted as isDone
func WriteFileIfNotExists ¶
func ZshFuncDir ¶ added in v0.2.2
func ZshFuncDir() string
try to get the best path by reading the permission because zsh seems not be used in windows, we stick to linux related permission check
Types ¶
type Future ¶ added in v0.2.2
type Future interface {
Await() interface{}
}
Future interface has the method signature for await
func ExecFuture ¶ added in v0.2.2
func ExecFuture(arg interface{}, f func() interface{}) Future
ExecFuture executes the async function and set the the argument
func ExecFutureGroup ¶ added in v0.2.2
func ExecFutureGroup(fg []FutureStack) []Future
ExecFutureGroup executes an group of Futures and returns assotiated future handler
type FutureStack ¶ added in v0.2.2
FutureStack struct contains the AwaitFunc and argurments
note: this mght not the best way to handle the argument delivery see: https://go.dev/blog/context#TOC_3.2.
func (FutureStack) Await ¶ added in v0.2.2
func (f FutureStack) Await() interface{}
Await creates the context including arfgument, and blocks til any execution is done.
type TaskDef ¶
type TaskDef struct {
// contains filtered or unexported fields
}
TaskDef holds information about running and finished tasks
type TaskGroup ¶ added in v0.2.2
type TaskGroup struct {
Awaits []Future // Future channels
// simple callback that can be used for regular output or loggings
LoggerFnc func(...interface{})
// contains filtered or unexported fields
}
func CreateMultipleTask ¶ added in v0.2.2
func CreateMultipleTask(tasks []string, modifyTask func(*TaskWatched)) *TaskGroup
func (*TaskGroup) AddTask ¶ added in v0.2.2
func (Tg *TaskGroup) AddTask(name string, wg TaskWatched) *TaskGroup
type TaskResult ¶ added in v0.2.2
type TaskResult struct {
Error error
Content interface{}
}
simple container used to get the result from task
func CreateTaskResult ¶ added in v0.2.2
func CreateTaskResult(err error) TaskResult
helper to creates a task result
func CreateTaskResultContent ¶ added in v0.2.2
func CreateTaskResultContent(err error, content interface{}) TaskResult
helper to creates a task result
type TaskRuntimeState ¶ added in v0.2.2
type TaskWatched ¶ added in v0.2.2
type TaskWatched struct {
// arguments for the task
TaskArgs map[string]string
// if true, no error will be raised, if the same task will tried to be executed twice
NoErrorIfBlocked bool
// maximum of allowed runtime for the task
TimeOutTiming time.Duration
// optional callback. if set, these function is called. that is ment to be informed and for doing some cleanups.
// but it can not interrupt the timeeout.
TimeOutHandler func()
// optional callback. this method can decide, if this task could be started again.
// so this method will be executed only on the second try to run this task.
CanRunAgain func(*TaskWatched) bool
// can be set to define a custom taskid by some logic
GetRunId func() string
// the main function that contains the logic
Exec func(*TaskWatched) TaskResult
// simple callback that can be used for regular output or loggings
LoggerFnc func(...interface{})
// if true, the task will be started async.
Async bool
// callback for the execution result
ResultFnc func(TaskResult)
// contains filtered or unexported fields
}
func (*TaskWatched) GetName ¶ added in v0.2.2
func (t *TaskWatched) GetName() string
func (*TaskWatched) Init ¶ added in v0.2.2
func (t *TaskWatched) Init(name string)
func (*TaskWatched) IsRunning ¶ added in v0.2.2
func (t *TaskWatched) IsRunning() bool
func (*TaskWatched) Log ¶ added in v0.2.2
func (t *TaskWatched) Log(msg ...interface{})
func (*TaskWatched) ReportDone ¶ added in v0.2.2
func (t *TaskWatched) ReportDone()
func (*TaskWatched) Run ¶ added in v0.2.2
func (t *TaskWatched) Run() TaskResult