@@ -45,7 +45,7 @@ async function pruneTask() {
45
45
} ,
46
46
list : {
47
47
type : 'boolean' ,
48
- description : 'List the <num> + 1 oldest entries . No entries are pruned.' ,
48
+ description : 'List entry prune candidates . No entries are pruned.' ,
49
49
} ,
50
50
} ) . argv ;
51
51
@@ -85,11 +85,6 @@ async function pruneTask() {
85
85
const json = await fs . readFile ( refcacheFile , 'utf8' ) ;
86
86
const entries = JSON . parse ( json ) ;
87
87
88
- if ( list ) {
89
- listOldest ( entries , n + 1 ) ;
90
- return ;
91
- }
92
-
93
88
const numEntriesWith4xxStatus = prune4xxEntriesAndReturnCount ( entries ) ;
94
89
95
90
// Create array of entries of prune candidates by date, sorted by LastSeen:
@@ -111,39 +106,32 @@ async function pruneTask() {
111
106
) ;
112
107
}
113
108
114
- if ( n == 0 ) {
109
+ var keysToPrune = pruneCandidatesByDate__sorted . map ( ( item ) => item [ 0 ] ) ;
110
+ if ( n > 0 ) keysToPrune = keysToPrune . slice ( 0 , n ) ;
111
+
112
+ if ( list ) {
113
+ listEntries ( keysToPrune , entries ) ;
114
+ return ;
115
+ } else if ( n == 0 ) {
115
116
console . log (
116
117
`WARN: num is ${ n } so no entries will be pruned by date. Specify number of entries to prune as --num <n>.` ,
117
118
) ;
118
119
if ( numEntriesWith4xxStatus == 0 ) return ;
119
120
}
120
121
121
- // Get keys of at most n entries to prune
122
- const keysToPrune = pruneCandidatesByDate__sorted
123
- . slice ( 0 , n )
124
- . map ( ( item ) => item [ 0 ] ) ;
125
122
keysToPrune . forEach ( ( key ) => delete entries [ key ] ) ;
126
123
console . log ( `INFO: ${ keysToPrune . length } entries pruned.` ) ;
127
-
128
124
const prettyJson = JSON . stringify ( entries , null , 2 ) + '\n' ;
129
125
await fs . writeFile ( refcacheFile , prettyJson , 'utf8' ) ;
130
126
} catch ( err ) {
131
127
console . error ( err ) ;
132
128
}
133
129
}
134
130
135
- function listOldest ( entries , numberOfEntries ) {
136
- const entriesArray = Object . keys ( entries )
137
- . map ( ( url ) => [ url , entries [ url ] . LastSeen , entries [ url ] . StatusCode ] )
138
- . sort ( ( a , b ) => new Date ( a [ 1 ] ) - new Date ( b [ 1 ] ) ) ;
139
- const oldestEntries = entriesArray . slice ( 0 , numberOfEntries ) ;
140
-
141
- if ( oldestEntries . length > 0 )
142
- console . log ( `Listing oldest ${ numberOfEntries } entries:` ) ;
143
-
144
- oldestEntries . forEach ( ( e ) => {
145
- const date = new Date ( e [ 1 ] ) ;
146
- console . log ( ` ${ formattedDate ( date ) } ${ formattedTime ( date ) } for ${ e [ 0 ] } ` ) ;
131
+ function listEntries ( keys , entries ) {
132
+ keys . forEach ( ( key ) => {
133
+ const date = new Date ( entries [ key ] . LastSeen ) ;
134
+ console . log ( ` ${ formattedDate ( date ) } ${ formattedTime ( date ) } for ${ key } ` ) ;
147
135
} ) ;
148
136
}
149
137
0 commit comments