@@ -47,27 +47,29 @@ func InstallKclvm(installRoot string) error {
4747
4848 kclvmVersionPath := filepath .Join (binPath , "kclvm.version" )
4949
50- ok , err := checkVersion (kclvmVersionPath )
50+ versionMatched , err := checkVersion (kclvmVersionPath )
5151
5252 if err != nil {
5353 return err
5454 }
5555
56- if ! ok {
57- // Install kclvm binary.
58- err = installBin (binPath , "kclvm_cli" , kclvmCliBin )
59- if err != nil {
60- return err
61- }
62- // Install kclvm libs.
63- err = installLib (binPath , "kclvm_cli_cdylib" )
64- if err != nil {
65- return err
66- }
56+ // Install kclvm binary.
57+ err = installBin (binPath , "kclvm_cli" , kclvmCliBin , versionMatched )
58+ if err != nil {
59+ return err
60+ }
61+ // Install kclvm libs.
62+ err = installLib (binPath , "kclvm_cli_cdylib" , versionMatched )
63+ if err != nil {
64+ return err
65+ }
66+
67+ if ! versionMatched {
6768 err = os .WriteFile (kclvmVersionPath , []byte (KCLVM_VERSION ), os .FileMode (os .O_WRONLY | os .O_TRUNC ))
6869 if err != nil {
6970 return err
7071 }
72+
7173 }
7274
7375 os .Setenv ("PATH" , os .Getenv ("PATH" )+ string (os .PathListSeparator )+ binPath )
@@ -84,43 +86,45 @@ func InstallKclvmPy(installRoot string) error {
8486
8587 kclvmVersionPath := filepath .Join (binPath , "kclvm.version" )
8688
87- ok , err := checkVersion (kclvmVersionPath )
89+ versionMatched , err := checkVersion (kclvmVersionPath )
8890
8991 if err != nil {
9092 return err
9193 }
9294
9395 os .Setenv ("PATH" , os .Getenv ("PATH" )+ string (os .PathListSeparator )+ binPath )
9496
95- if ! ok {
96- scripts := map [string ][]byte {
97- "kcl" : kclScript ,
98- "kclvm" : kclvmScript ,
99- "kcl-doc" : kclDocScript ,
100- "kcl-fmt" : kclFmtScript ,
101- "kcl-lint" : kclLintScript ,
102- "kcl-plugin" : kclPluginScript ,
103- "kcl-test" : kclTestScript ,
104- "kcl-vet" : kclVetScript ,
105- }
106- // Install binaries.
107- for n , script := range scripts {
108- err := installBin (binPath , n , script )
109- if err != nil {
110- return err
111- }
112- }
113- // Install kclvm libs.
114- err = installLib (binPath , "kclvm_cli_cdylib" )
97+ scripts := map [string ][]byte {
98+ "kcl" : kclScript ,
99+ "kclvm" : kclvmScript ,
100+ "kcl-doc" : kclDocScript ,
101+ "kcl-fmt" : kclFmtScript ,
102+ "kcl-lint" : kclLintScript ,
103+ "kcl-plugin" : kclPluginScript ,
104+ "kcl-test" : kclTestScript ,
105+ "kcl-vet" : kclVetScript ,
106+ }
107+ // Install binaries.
108+ for n , script := range scripts {
109+ err := installBin (binPath , n , script , versionMatched )
115110 if err != nil {
116111 return err
117112 }
113+ }
114+ // Install kclvm libs.
115+ err = installLib (binPath , "kclvm_cli_cdylib" , versionMatched )
116+ if err != nil {
117+ return err
118+ }
118119
120+ if ! versionMatched {
119121 err = os .WriteFile (kclvmVersionPath , []byte (KCLVM_VERSION ), os .FileMode (os .O_WRONLY | os .O_TRUNC ))
120122 if err != nil {
121123 return err
122124 }
125+
123126 }
127+
124128 os .Setenv ("PATH" , os .Getenv ("PATH" )+ string (os .PathListSeparator )+ binPath )
125129 return nil
126130}
@@ -137,9 +141,9 @@ func CleanInstall() {
137141 kclvmCliLib = nil
138142}
139143
140- func installBin (binDir , binName string , content []byte ) error {
144+ func installBin (binDir , binName string , content []byte , versionMatched bool ) error {
141145 binPath := findPath (binName )
142- if binPath == "" {
146+ if binPath == "" || ! versionMatched {
143147 if runtime .GOOS == "windows" {
144148 binName += ".exe"
145149 }
0 commit comments