@@ -275,13 +275,21 @@ protected override async Task<ManagerStatus> LoadManager()
275
275
string old_choco_path = Path . Join ( Environment . GetFolderPath ( Environment . SpecialFolder . LocalApplicationData ) , "Programs\\ WingetUI\\ choco-cli" ) ;
276
276
string new_choco_path = Path . Join ( CoreData . UniGetUIDataDirectory , "Chocolatey" ) ;
277
277
278
- if ( Directory . Exists ( old_choco_path ) )
278
+ if ( ! Directory . Exists ( old_choco_path ) )
279
+ Logger . Debug ( "Old chocolatey path does not exist, not migrating Chocolatey" ) ;
280
+ else if ( CoreTools . IsSymbolicLinkDir ( old_choco_path ) )
281
+ Logger . ImportantInfo ( "Old chocolatey path is a symbolic link, not migrating Chocolatey..." ) ;
282
+ else if ( Settings . Get ( "ChocolateySymbolicLinkCreated" ) )
283
+ Logger . Warn ( "The Choco path symbolic link has already been set to created!" ) ;
284
+ else
279
285
{
280
286
try
281
287
{
282
288
Logger . Info ( "Moving Bundled Chocolatey from old path to new path..." ) ;
283
289
284
- if ( Path . GetRelativePath ( Environment . GetEnvironmentVariable ( "chocolateyinstall" , EnvironmentVariableTarget . User ) ?? "" , old_choco_path ) == "." )
290
+ string current_env_var =
291
+ Environment . GetEnvironmentVariable ( "chocolateyinstall" , EnvironmentVariableTarget . User ) ?? "" ;
292
+ if ( current_env_var != "" && Path . GetRelativePath ( current_env_var , old_choco_path ) == "." )
285
293
{
286
294
Logger . ImportantInfo ( "Migrating ChocolateyInstall environment variable to new location" ) ;
287
295
Environment . SetEnvironmentVariable ( "chocolateyinstall" , new_choco_path , EnvironmentVariableTarget . User ) ;
@@ -335,7 +343,10 @@ protected override async Task<ManagerStatus> LoadManager()
335
343
Logger . Info ( "Deleting old Chocolatey directory " + old_choco_path ) ;
336
344
Directory . Delete ( old_choco_path ) ;
337
345
}
338
-
346
+
347
+ await CoreTools . CreateSymbolicLinkDir ( old_choco_path , new_choco_path ) ;
348
+ Settings . Set ( "ChocolateySymbolicLinkCreated" , true ) ;
349
+ Logger . Info ( $ "Symbolic link created successfully from { old_choco_path } to { new_choco_path } .") ;
339
350
340
351
}
341
352
catch ( Exception e )
0 commit comments