11// Copyright 2025 - Nym Technologies SA <[email protected] > 22// SPDX-License-Identifier: Apache-2.0
33
4- use crate :: constants:: LOCALNET_NYXD_IMAGE_NAME ;
54use crate :: helpers:: monorepo_root_path;
65use crate :: orchestrator:: LocalnetOrchestrator ;
76use crate :: orchestrator:: container_helpers:: {
87 default_nym_binaries_image_tag, remove_container_image,
98} ;
109use crate :: orchestrator:: context:: LocalnetContext ;
10+ use anyhow:: Context ;
1111use std:: path:: PathBuf ;
1212
1313struct LocalnetPurge {
@@ -41,12 +41,16 @@ impl LocalnetOrchestrator {
4141 ) -> anyhow:: Result < ( ) > {
4242 ctx. begin_next_step ( "removing all built images" , "🔥" ) ;
4343 if !ctx. data . remove_images {
44- ctx. println ( "\t NOT ENABLED - SKIPPING" )
44+ ctx. println ( "\t NOT ENABLED - SKIPPING" ) ;
45+ return Ok ( ( ) ) ;
4546 }
4647
4748 let nym_binaries_tag = default_nym_binaries_image_tag ( & ctx. data . monorepo_root ) ?;
4849
49- for tag in [ nym_binaries_tag, LOCALNET_NYXD_IMAGE_NAME . to_string ( ) ] {
50+ // TODO: we need to dynamically determine tag for this
51+ // LOCALNET_NYXD_IMAGE_NAME.to_string()
52+
53+ for tag in [ nym_binaries_tag] {
5054 ctx. execute_cmd_with_stdout ( "docker" , [ "image" , "rm" , & tag] )
5155 . await ?;
5256 remove_container_image ( ctx, & tag) . await ?;
@@ -58,7 +62,8 @@ impl LocalnetOrchestrator {
5862 fn remove_build_cache ( & self , ctx : & mut LocalnetContext < LocalnetPurge > ) -> anyhow:: Result < ( ) > {
5963 ctx. begin_next_step ( "removing build cache" , "🔥" ) ;
6064 if !ctx. data . remove_cache {
61- ctx. println ( "\t NOT ENABLED - SKIPPING" )
65+ ctx. println ( "\t NOT ENABLED - SKIPPING" ) ;
66+ return Ok ( ( ) ) ;
6267 }
6368
6469 self . storage . data_cache ( ) . clear ( )
@@ -70,17 +75,18 @@ impl LocalnetOrchestrator {
7075 ) -> anyhow:: Result < ( ) > {
7176 ctx. begin_next_step ( "removing storage data" , "🔥" ) ;
7277
73- std:: fs:: remove_dir_all ( self . storage . localnet_directory ( ) ) ?;
78+ std:: fs:: remove_dir_all ( self . storage . localnet_directory ( ) )
79+ . context ( "missing main storage directory" ) ?;
7480 let storage_db = self . storage . into_orchestrator_storage ( ) ;
7581 let db_path = storage_db. stop ( ) . await ?;
76- std:: fs:: remove_dir_all ( db_path) ?;
82+ std:: fs:: remove_file ( db_path) . context ( "missing database path" ) ?;
7783
7884 Ok ( ( ) )
7985 }
8086
8187 pub ( crate ) async fn purge_localnet ( self , config : Config ) -> anyhow:: Result < ( ) > {
8288 let purge = LocalnetPurge :: new ( config) ?;
83- let mut ctx = LocalnetContext :: new ( purge, 4 , "\n purging localnet" ) ;
89+ let mut ctx = LocalnetContext :: new ( purge, 3 , "\n purging localnet" ) ;
8490
8591 // 1. stop the localnet
8692 self . stop_localnet ( ) . await ?;
0 commit comments