github.com/swaros/contxt/module/taskrun@v0.0.0-20240305083542-3dbd4436ac40/pwrshell.go (about) 1 // MIT License 2 // 3 // Copyright (c) 2020 Thomas Ziegler <thomas.zglr@googlemail.com>. All rights reserved. 4 // 5 // Permission is hereby granted, free of charge, to any person obtaining a copy 6 // of this software and associated documentation files (the Software), to deal 7 // in the Software without restriction, including without limitation the rights 8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 // copies of the Software, and to permit persons to whom the Software is 10 // furnished to do so, subject to the following conditions: 11 // 12 // The above copyright notice and this permission notice shall be included in all 13 // copies or substantial portions of the Software. 14 // 15 // THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 // SOFTWARE. 22 23 // AINC-NOTE-0815 24 25 package taskrun 26 27 import "os" 28 29 const ( 30 PWRSHELL_CMD_VERSION = "$PSVersionTable.PSVersion.Major" // powershell cmd to get actual version 31 PWRSHELL_CMD_PROFILE = "$PROFILE" // powershell cmd to get actual profile 32 PWRSHELL_CMD_TEST_PROFILE = `Test-Path -Path $PROFILE.CurrentUserCurrentHost` // powershell cmd to test if profile exists 33 PWRSHELL_CMD_PROFILE_CREATE = `New-Item -Path $PROFILE.CurrentUserCurrentHost -ItemType File -Force` // powershell cmd to create profile 34 ) 35 36 func PwrShellExec(cmd string) string { 37 cmdArg := []string{"-nologo", "-noprofile"} // these the arguments for powrshell 38 result := "" 39 ExecuteScriptLine(GetDefaultCmd(), cmdArg, cmd, func(s string, e error) bool { 40 result = s 41 return true 42 }, func(p *os.Process) { 43 44 }) 45 return result 46 }