Skip to content

Commit fea7d78

Browse files
committed
Correct file perm
1 parent 359934c commit fea7d78

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

components/ide/jetbrains/launcher/main.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ func serve(launchCtx *LaunchContext) {
246246
options = deduplicateVMOption(options, debugOptions, func(l, r string) bool {
247247
return strings.HasPrefix(l, debugAgentPrefix) && strings.HasPrefix(r, debugAgentPrefix)
248248
})
249-
err = writeVMOptions(launchCtx.vmOptionsFile, options)
249+
err = writeVMOptions(launchCtx.vmOptionsFile, options, 0)
250250
if err != nil {
251251
log.WithError(err).Error("failed to configure debug agent")
252252
http.Error(w, err.Error(), http.StatusInternalServerError)
@@ -801,15 +801,15 @@ func configureVMOptions(config *gitpod.GitpodConfig, alias string, vmOptionsPath
801801
return err
802802
}
803803
newOptions := updateVMOptions(config, alias, options)
804-
return writeVMOptions(vmOptionsPath, newOptions)
804+
return writeVMOptions(vmOptionsPath, newOptions, 0)
805805
}
806806

807807
func configureClientSideVMOptions(launchCtx *LaunchContext) error {
808808
if launchCtx.alias != "pycharm" {
809809
return nil
810810
}
811811
vmOptionsPath := launchCtx.clientVMOptionsFile
812-
if err := os.MkdirAll(filepath.Dir(vmOptionsPath), 0755); err != nil {
812+
if err := os.MkdirAll(filepath.Dir(vmOptionsPath), os.ModePerm); err != nil {
813813
return err
814814
}
815815
options, err := readVMOptions(vmOptionsPath)
@@ -825,7 +825,7 @@ func configureClientSideVMOptions(launchCtx *LaunchContext) error {
825825
newOptions := deduplicateVMOption(options, []string{"-Dide.browser.jcef.enabled=false"}, func(l, r string) bool {
826826
return l == r
827827
})
828-
return writeVMOptions(vmOptionsPath, newOptions)
828+
return writeVMOptions(vmOptionsPath, newOptions, 0o644)
829829
}
830830

831831
func readVMOptions(vmOptionsPath string) ([]string, error) {
@@ -836,10 +836,10 @@ func readVMOptions(vmOptionsPath string) ([]string, error) {
836836
return strings.Fields(string(content)), nil
837837
}
838838

839-
func writeVMOptions(vmOptionsPath string, vmoptions []string) error {
839+
func writeVMOptions(vmOptionsPath string, vmoptions []string, perm os.FileMode) error {
840840
// vmoptions file should end with a newline
841841
content := strings.Join(vmoptions, "\n") + "\n"
842-
return os.WriteFile(vmOptionsPath, []byte(content), 0)
842+
return os.WriteFile(vmOptionsPath, []byte(content), perm)
843843
}
844844

845845
// deduplicateVMOption append new VMOptions onto old VMOptions and remove any duplicated leftmost options

components/ide/jetbrains/launcher/main_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,12 @@ func TestUpdateVMOptions(t *testing.T) {
5050
{"idea64.vmoptions (GITPOD_CPU_COUNT 2)", "intellij", map[string]string{"INTELLIJ_VMOPTIONS": "-Xmx4096m", "GITPOD_CPU_COUNT": "12"}, "-Xms128m\n-Xmx2g\n-Dsun.tools.attach.tmp.only=true", "-Xms128m\n-Xmx4096m\n-Dsun.tools.attach.tmp.only=true\n-XX:+UseContainerSupport\n-XX:ActiveProcessorCount=12\n-Dfreeze.reporter.profiling=false\n-Dgtw.disable.exit.dialog=true\n-Djdk.configure.existing=true"},
5151
{"goland64.vmoptions", "goland", nil, "-Xms128m\n-Xmx750m\n-Dsun.tools.attach.tmp.only=true", "-Xms128m\n-Xmx750m\n-Dsun.tools.attach.tmp.only=true\n-XX:+UseContainerSupport\n-Dfreeze.reporter.profiling=false\n-Dgtw.disable.exit.dialog=true"},
5252
{"idea64.vmoptions", "intellij", nil, "-Xms128m\n-Xmx750m\n-Dsun.tools.attach.tmp.only=true", "-Xms128m\n-Xmx750m\n-Dsun.tools.attach.tmp.only=true\n-XX:+UseContainerSupport\n-Dfreeze.reporter.profiling=false\n-Dgtw.disable.exit.dialog=true\n-Djdk.configure.existing=true"},
53-
{"idea64.vmoptions (INTELLIJ_VMOPTIONS env set)", "intellij", map[string]string{"INTELLIJ_VMOPTIONS": "-Xmx2048m"}, "-Xms128m\n-Xmx750m\n-Dsun.tools.attach.tmp.only=true", "-Xms128m\n-Xmx2048m\n-Dsun.tools.attach.tmp.only=true\n-XX:+UseContainerSupport\n-Dfreeze.reporter.profiling=false\n-Dgtw.disable.exit.dialog=true\n-Djdk.configure.existing=true"},
54-
{"idea64.vmoptions (INTELLIJ_VMOPTIONS env set)", "intellij", map[string]string{"INTELLIJ_VMOPTIONS": "-Xmx4096m"}, "-Xms128m\n-Xmx2g\n-Dsun.tools.attach.tmp.only=true", "-Xms128m\n-Xmx4096m\n-Dsun.tools.attach.tmp.only=true\n-XX:+UseContainerSupport\n-Dfreeze.reporter.profiling=false\n-Dgtw.disable.exit.dialog=true\n-Djdk.configure.existing=true"},
55-
{"idea64.vmoptions (INTELLIJ_VMOPTIONS env set)", "intellij", map[string]string{"INTELLIJ_VMOPTIONS": "-Xmx4096m -XX:MaxRAMPercentage=75"}, "-Xms128m\n-Xmx2g\n-Dsun.tools.attach.tmp.only=true", "-Xms128m\n-Xmx4096m\n-XX:MaxRAMPercentage=75\n-Dsun.tools.attach.tmp.only=true\n-XX:+UseContainerSupport\n-Dfreeze.reporter.profiling=false\n-Dgtw.disable.exit.dialog=true\n-Djdk.configure.existing=true"},
56-
{"goland64.vmoptions (GOLAND_VMOPTIONS env set with conflicting options)", "goland", map[string]string{"GOLAND_VMOPTIONS": "-ea -XX:+IgnoreUnrecognizedVMOptions -XX:MaxRAMPercentage=75 -XX:MaxRAMPercentage=50"}, "-Xms128m\n-Xmx2g\n-Dsun.tools.attach.tmp.only=true", "-Xms128m\n-Xmx2g\n-Dsun.tools.attach.tmp.only=true\n-Dfreeze.reporter.profiling=false\n-Dgtw.disable.exit.dialog=true\n-ea\n-XX:+IgnoreUnrecognizedVMOptions\n-XX:+UseContainerSupport\n-XX:MaxRAMPercentage=50"},
53+
{"idea64.vmoptions (INTELLIJ_VMOPTIONS env set)", "intellij", map[string]string{"GITPOD_CPU_COUNT": "", "INTELLIJ_VMOPTIONS": "-Xmx2048m"}, "-Xms128m\n-Xmx750m\n-Dsun.tools.attach.tmp.only=true", "-Xms128m\n-Xmx2048m\n-Dsun.tools.attach.tmp.only=true\n-XX:+UseContainerSupport\n-Dfreeze.reporter.profiling=false\n-Dgtw.disable.exit.dialog=true\n-Djdk.configure.existing=true"},
54+
{"idea64.vmoptions (INTELLIJ_VMOPTIONS env set)", "intellij", map[string]string{"GITPOD_CPU_COUNT": "", "INTELLIJ_VMOPTIONS": "-Xmx4096m"}, "-Xms128m\n-Xmx2g\n-Dsun.tools.attach.tmp.only=true", "-Xms128m\n-Xmx4096m\n-Dsun.tools.attach.tmp.only=true\n-XX:+UseContainerSupport\n-Dfreeze.reporter.profiling=false\n-Dgtw.disable.exit.dialog=true\n-Djdk.configure.existing=true"},
55+
{"idea64.vmoptions (INTELLIJ_VMOPTIONS env set)", "intellij", map[string]string{"GITPOD_CPU_COUNT": "", "INTELLIJ_VMOPTIONS": "-Xmx4096m -XX:MaxRAMPercentage=75"}, "-Xms128m\n-Xmx2g\n-Dsun.tools.attach.tmp.only=true", "-Xms128m\n-Xmx4096m\n-XX:MaxRAMPercentage=75\n-Dsun.tools.attach.tmp.only=true\n-XX:+UseContainerSupport\n-Dfreeze.reporter.profiling=false\n-Dgtw.disable.exit.dialog=true\n-Djdk.configure.existing=true"},
56+
{"goland64.vmoptions (GOLAND_VMOPTIONS env set with conflicting options)", "goland", map[string]string{"GITPOD_CPU_COUNT": "", "GOLAND_VMOPTIONS": "-ea -XX:+IgnoreUnrecognizedVMOptions -XX:MaxRAMPercentage=75 -XX:MaxRAMPercentage=50"}, "-Xms128m\n-Xmx2g\n-Dsun.tools.attach.tmp.only=true", "-Xms128m\n-Xmx2g\n-Dsun.tools.attach.tmp.only=true\n-Dfreeze.reporter.profiling=false\n-Dgtw.disable.exit.dialog=true\n-ea\n-XX:+IgnoreUnrecognizedVMOptions\n-XX:+UseContainerSupport\n-XX:MaxRAMPercentage=50"},
5757
}
58+
os.Unsetenv("GITPOD_CPU_COUNT")
5859
for _, test := range tests {
5960
// compare vmoptions string content equality (i.e. split into slices and compare ignore order)
6061
lessFunc := func(a, b string) bool { return a < b }

0 commit comments

Comments
 (0)