@@ -29,7 +29,7 @@ async function pruneTask() {
29
29
num : {
30
30
alias : 'n' ,
31
31
type : 'number' ,
32
- description : 'Maximum number of entries to prune.' ,
32
+ description : 'Maximum number of date-based entries to prune.' ,
33
33
default : n_default ,
34
34
} ,
35
35
before : {
@@ -102,7 +102,7 @@ async function pruneTask() {
102
102
pruneCandidatesByDate__sorted . length
103
103
} entries as prune candidates for before-date ${ formattedDate (
104
104
beforeDate ,
105
- ) } .`,
105
+ ) } . Number of date-based entries to delete: ${ n } . `,
106
106
) ;
107
107
}
108
108
@@ -112,15 +112,15 @@ async function pruneTask() {
112
112
if ( list ) {
113
113
listEntries ( keysToPrune , entries ) ;
114
114
return ;
115
- } else if ( n == 0 ) {
115
+ } else if ( n == 0 && numEntriesWith4xxStatus == 0 ) {
116
116
console . log (
117
- `WARN: num is ${ n } so no entries will be pruned by date. Specify number of entries to prune as --num <n>. For more info use --info` ,
117
+ `WARN: num is ${ n } so no date-based entries will be pruned by date. Specify number of entries to prune as --num <n>. For more info use --info` ,
118
118
) ;
119
- if ( numEntriesWith4xxStatus == 0 ) return ;
120
119
}
121
120
122
- keysToPrune . forEach ( ( key ) => delete entries [ key ] ) ;
123
- console . log ( `INFO: ${ keysToPrune . length } entries pruned.` ) ;
121
+ if ( n > 0 ) keysToPrune . forEach ( ( key ) => delete entries [ key ] ) ;
122
+ const deleteCount = Math . min ( n , keysToPrune . length ) + numEntriesWith4xxStatus ;
123
+ console . log ( `INFO: ${ deleteCount } entries pruned.` ) ;
124
124
const prettyJson = JSON . stringify ( entries , null , 2 ) + '\n' ;
125
125
await fs . writeFile ( refcacheFile , prettyJson , 'utf8' ) ;
126
126
} catch ( err ) {
0 commit comments