Skip to content

Instantly share code, notes, and snippets.

@KillerGoldFisch
Last active March 31, 2016 17:16
Show Gist options
  • Save KillerGoldFisch/eec3f9c14730cede910e01f0b8f6f56f to your computer and use it in GitHub Desktop.
Save KillerGoldFisch/eec3f9c14730cede910e01f0b8f6f56f to your computer and use it in GitHub Desktop.
Modify Windows variables in Groovy
/*
// EXAMPLE:
GroovyShell shell = new GroovyShell()
def v = shell.parse(new File(/H:\scripts\winvars.groovy/))
println v.addPATH([
/H:\Software\gradle-2.10\bin/,
/H:\Software\groovy-2.4.5\bin/,
/H:\Software\kotlinc\bin/,
/H:\Software\emsdk-1.35.0-portable-64bit/,
/H:\Software\LLVM\bin/,
/C:\Users\kst-kg\AppData\Local\Android\Sdk\platform-tools/,
/C:\Users\kst-kg\AppData\Local\Android\Sdk\ndk/,
])
// Used for VSCode:
println v.setVAR('http_proxy', 'http://134.130.4.241:3128/')
println v.setVAR('https_proxy', 'https://134.130.4.241:3128/')
println "DONE"
*/
String getVAR(String var) {
//def lines = "cmd /c set $var".execute().text.split("\n")
return ($/powershell -NoLogo -Noninteractive -InputFormat none -Command [environment]::GetEnvironmentVariable('$var','User');/$).execute().text.replace("\n", "").replace("\r", "")
}
String setVAR(String var, String path) {
command = ($/powershell -NoLogo -Noninteractive -InputFormat none -Command "[Environment]::SetEnvironmentVariable('$var', '$path','User')";/$)
println command
command.execute().text
}
String addPATH(v) {
def vars = getVAR('PATH').split(";").toList()
println vars
vars.addAll(v)
//def vars = v
vars = vars.unique { a, b -> a <=> b }
vars = vars.each { it.trim() }
vars = vars.toSorted().findAll {it.length() > 0}
println vars.join("\n")
setVAR('PATH', vars.join(";"))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment