@@ -15,18 +15,9 @@ import { OS } from '@codifycli/schemas';
1515import fs from 'node:fs/promises' ;
1616
1717import {
18+ JetBrainsCommon ,
1819 JetBrainsPluginsParameter ,
1920 JetBrainsProductInfo ,
20- findConfigDir ,
21- getOrCreateConfigDir ,
22- installLinux ,
23- installMacOS ,
24- isInstalled ,
25- readVmOptions ,
26- removeVmOptions ,
27- uninstallLinux ,
28- uninstallMacOS ,
29- writeVmOptions ,
3021} from '../common/jetbrains-common.js' ;
3122
3223const PRODUCT : JetBrainsProductInfo = {
@@ -127,14 +118,14 @@ export class ClionResource extends Resource<ClionConfig> {
127118 }
128119
129120 override async refresh ( parameters : Partial < ClionConfig > ) : Promise < Partial < ClionConfig > | null > {
130- const installed = await isInstalled ( PRODUCT ) ;
121+ const installed = await JetBrainsCommon . isInstalled ( PRODUCT ) ;
131122 if ( ! installed ) return null ;
132123
133124 const result : Partial < ClionConfig > = { } ;
134125
135- const configDir = await findConfigDir ( PRODUCT ) ;
126+ const configDir = await JetBrainsCommon . findConfigDir ( PRODUCT ) ;
136127 if ( configDir ) {
137- const vmOptions = await readVmOptions ( PRODUCT , configDir ) ;
128+ const vmOptions = await JetBrainsCommon . readVmOptions ( PRODUCT , configDir ) ;
138129 if ( parameters . jvmMaxHeapSize != null ) result . jvmMaxHeapSize = vmOptions . maxHeap ;
139130 if ( parameters . jvmMinHeapSize != null ) result . jvmMinHeapSize = vmOptions . minHeap ;
140131 }
@@ -144,9 +135,9 @@ export class ClionResource extends Resource<ClionConfig> {
144135
145136 override async create ( plan : CreatePlan < ClionConfig > ) : Promise < void > {
146137 if ( Utils . isMacOS ( ) ) {
147- await installMacOS ( PRODUCT ) ;
138+ await JetBrainsCommon . installMacOS ( PRODUCT ) ;
148139 } else {
149- await installLinux ( PRODUCT ) ;
140+ await JetBrainsCommon . installLinux ( PRODUCT ) ;
150141 }
151142
152143 const { settingsZip, importSettings = true , jvmMaxHeapSize, jvmMinHeapSize } = plan . desiredConfig ;
@@ -156,40 +147,40 @@ export class ClionResource extends Resource<ClionConfig> {
156147 }
157148
158149 if ( jvmMaxHeapSize != null || jvmMinHeapSize != null ) {
159- const configDir = await getOrCreateConfigDir ( PRODUCT ) ;
150+ const configDir = await JetBrainsCommon . getOrCreateConfigDir ( PRODUCT ) ;
160151 if ( configDir ) {
161- await writeVmOptions ( PRODUCT , configDir , jvmMaxHeapSize , jvmMinHeapSize ) ;
152+ await JetBrainsCommon . writeVmOptions ( PRODUCT , configDir , jvmMaxHeapSize , jvmMinHeapSize ) ;
162153 }
163154 }
164155 }
165156
166157 override async modify ( pc : ParameterChange < ClionConfig > , plan : ModifyPlan < ClionConfig > ) : Promise < void > {
167158 if ( pc . name !== 'jvmMaxHeapSize' && pc . name !== 'jvmMinHeapSize' ) return ;
168159
169- const configDir = await getOrCreateConfigDir ( PRODUCT ) ;
160+ const configDir = await JetBrainsCommon . getOrCreateConfigDir ( PRODUCT ) ;
170161 if ( ! configDir ) return ;
171162
172163 const { jvmMaxHeapSize, jvmMinHeapSize } = plan . desiredConfig ;
173164
174165 if ( jvmMaxHeapSize == null && jvmMinHeapSize == null ) {
175- await removeVmOptions ( PRODUCT , configDir ) ;
166+ await JetBrainsCommon . removeVmOptions ( PRODUCT , configDir ) ;
176167 } else {
177- await writeVmOptions ( PRODUCT , configDir , jvmMaxHeapSize , jvmMinHeapSize ) ;
168+ await JetBrainsCommon . writeVmOptions ( PRODUCT , configDir , jvmMaxHeapSize , jvmMinHeapSize ) ;
178169 }
179170 }
180171
181172 override async destroy ( plan : DestroyPlan < ClionConfig > ) : Promise < void > {
182173 const { jvmMaxHeapSize, jvmMinHeapSize } = plan . currentConfig ;
183174
184175 if ( jvmMaxHeapSize != null || jvmMinHeapSize != null ) {
185- const configDir = await findConfigDir ( PRODUCT ) ;
186- if ( configDir ) await removeVmOptions ( PRODUCT , configDir ) ;
176+ const configDir = await JetBrainsCommon . findConfigDir ( PRODUCT ) ;
177+ if ( configDir ) await JetBrainsCommon . removeVmOptions ( PRODUCT , configDir ) ;
187178 }
188179
189180 if ( Utils . isMacOS ( ) ) {
190- await uninstallMacOS ( PRODUCT ) ;
181+ await JetBrainsCommon . uninstallMacOS ( PRODUCT ) ;
191182 } else {
192- await uninstallLinux ( PRODUCT ) ;
183+ await JetBrainsCommon . uninstallLinux ( PRODUCT ) ;
193184 }
194185 }
195186
@@ -201,7 +192,7 @@ export class ClionResource extends Resource<ClionConfig> {
201192 await Utils . installViaPkgMgr ( 'unzip' ) ;
202193 }
203194
204- const configDir = await getOrCreateConfigDir ( PRODUCT ) ;
195+ const configDir = await JetBrainsCommon . getOrCreateConfigDir ( PRODUCT ) ;
205196 if ( ! configDir ) {
206197 throw new Error ( 'Cannot determine CLion config directory for settings import.' ) ;
207198 }
0 commit comments