@@ -16,7 +16,6 @@ use ostree_ext::ostree;
16
16
use ostree_ext:: sysroot:: SysrootLock ;
17
17
use std:: ffi:: OsString ;
18
18
use std:: os:: unix:: process:: CommandExt ;
19
- use tokio:: sync:: mpsc:: Receiver ;
20
19
21
20
/// Perform an upgrade operation
22
21
#[ derive( Debug , Parser ) ]
@@ -131,51 +130,6 @@ pub(crate) async fn get_locked_sysroot() -> Result<ostree_ext::sysroot::SysrootL
131
130
Ok ( sysroot)
132
131
}
133
132
134
- /// Print the status of a layer fetch to stdout.
135
- pub ( crate ) async fn handle_layer_progress_print (
136
- mut layers : Receiver < ostree_container:: store:: ImportProgress > ,
137
- mut layer_bytes : tokio:: sync:: watch:: Receiver < Option < ostree_container:: store:: LayerProgress > > ,
138
- ) {
139
- let style = indicatif:: ProgressStyle :: default_bar ( ) ;
140
- let pb = indicatif:: ProgressBar :: new ( 100 ) ;
141
- pb. set_style (
142
- style
143
- . template ( "{prefix} {bytes} [{bar:20}] ({eta}) {msg}" )
144
- . unwrap ( ) ,
145
- ) ;
146
- loop {
147
- tokio:: select! {
148
- // Always handle layer changes first.
149
- biased;
150
- layer = layers. recv( ) => {
151
- if let Some ( l) = layer {
152
- if l. is_starting( ) {
153
- pb. set_position( 0 ) ;
154
- } else {
155
- pb. finish( ) ;
156
- }
157
- pb. set_message( ostree_ext:: cli:: layer_progress_format( & l) ) ;
158
- } else {
159
- // If the receiver is disconnected, then we're done
160
- break
161
- } ;
162
- } ,
163
- r = layer_bytes. changed( ) => {
164
- if r. is_err( ) {
165
- // If the receiver is disconnected, then we're done
166
- break
167
- }
168
- let bytes = layer_bytes. borrow( ) ;
169
- if let Some ( bytes) = & * bytes {
170
- pb. set_length( bytes. total) ;
171
- pb. set_position( bytes. fetched) ;
172
- }
173
- }
174
-
175
- }
176
- }
177
- }
178
-
179
133
/// Wrapper for pulling a container image, wiring up status output.
180
134
async fn pull (
181
135
repo : & ostree:: Repo ,
@@ -192,14 +146,14 @@ async fn pull(
192
146
PrepareResult :: Ready ( p) => p,
193
147
} ;
194
148
if let Some ( warning) = prep. deprecated_warning ( ) {
195
- crate :: cli:: print_deprecated_warning ( warning) . await ;
149
+ ostree_ext :: cli:: print_deprecated_warning ( warning) . await ;
196
150
}
197
- crate :: cli:: print_layer_status ( & prep) ;
151
+ ostree_ext :: cli:: print_layer_status ( & prep) ;
198
152
let printer = ( !quiet) . then ( || {
199
153
let layer_progress = imp. request_progress ( ) ;
200
154
let layer_byte_progress = imp. request_layer_progress ( ) ;
201
155
tokio:: task:: spawn ( async move {
202
- handle_layer_progress_print ( layer_progress, layer_byte_progress) . await
156
+ ostree_ext :: cli :: handle_layer_progress_print ( layer_progress, layer_byte_progress) . await
203
157
} )
204
158
} ) ;
205
159
let import = imp. import ( prep) . await ;
@@ -215,30 +169,6 @@ async fn pull(
215
169
Ok ( import)
216
170
}
217
171
218
- /// Print to stdout how many layers are already stored versus need to be fetched, and
219
- /// their size.
220
- pub ( crate ) fn print_layer_status ( prep : & ostree_container:: store:: PreparedImport ) {
221
- let ( stored, to_fetch, to_fetch_size) =
222
- prep. all_layers ( )
223
- . fold ( ( 0u32 , 0u32 , 0u64 ) , |( stored, to_fetch, sz) , v| {
224
- if v. commit . is_some ( ) {
225
- ( stored + 1 , to_fetch, sz)
226
- } else {
227
- ( stored, to_fetch + 1 , sz + v. size ( ) )
228
- }
229
- } ) ;
230
- if to_fetch > 0 {
231
- let size = glib:: format_size ( to_fetch_size) ;
232
- println ! ( "layers stored: {stored} needed: {to_fetch} ({size})" )
233
- }
234
- }
235
-
236
- /// Output a deprecation warning with a sleep time to ensure it's visible.
237
- pub ( crate ) async fn print_deprecated_warning ( msg : & str ) {
238
- eprintln ! ( "warning: {msg}" ) ;
239
- tokio:: time:: sleep ( std:: time:: Duration :: from_secs ( 3 ) ) . await ;
240
- }
241
-
242
172
/// Stage (queue deployment of) a fetched container image.
243
173
async fn stage (
244
174
sysroot : & SysrootLock ,
0 commit comments