@@ -31,7 +31,7 @@ use serde::{Serialize, Serializer};
3131use std:: collections:: { BTreeSet , BinaryHeap } ;
3232use std:: fmt;
3333use std:: fmt:: Write as _;
34- use std:: fs:: { self , OpenOptions } ;
34+ use std:: fs:: { self , File } ;
3535use std:: io:: prelude:: * ;
3636use std:: path:: { Path , PathBuf } ;
3737use std:: process:: Command ;
@@ -229,25 +229,10 @@ impl Drop for MetadataCollector {
229229 collect_renames ( & mut lints) ;
230230
231231 // Outputting json
232- if Path :: new ( JSON_OUTPUT_FILE ) . exists ( ) {
233- fs:: remove_file ( JSON_OUTPUT_FILE ) . unwrap ( ) ;
234- }
235- let mut file = OpenOptions :: new ( )
236- . write ( true )
237- . create ( true )
238- . open ( JSON_OUTPUT_FILE )
239- . unwrap ( ) ;
240- writeln ! ( file, "{}" , serde_json:: to_string_pretty( & lints) . unwrap( ) ) . unwrap ( ) ;
232+ fs:: write ( JSON_OUTPUT_FILE , serde_json:: to_string_pretty ( & lints) . unwrap ( ) ) . unwrap ( ) ;
241233
242234 // Outputting markdown
243- if Path :: new ( MARKDOWN_OUTPUT_FILE ) . exists ( ) {
244- fs:: remove_file ( MARKDOWN_OUTPUT_FILE ) . unwrap ( ) ;
245- }
246- let mut file = OpenOptions :: new ( )
247- . write ( true )
248- . create ( true )
249- . open ( MARKDOWN_OUTPUT_FILE )
250- . unwrap ( ) ;
235+ let mut file = File :: create ( MARKDOWN_OUTPUT_FILE ) . unwrap ( ) ;
251236 writeln ! (
252237 file,
253238 "<!--
@@ -261,17 +246,15 @@ Please use that command to update the file and do not edit it by hand.
261246 . unwrap ( ) ;
262247
263248 // Write configuration links to CHANGELOG.md
264- let mut changelog = std:: fs:: read_to_string ( CHANGELOG_PATH ) . unwrap ( ) ;
265- let mut changelog_file = OpenOptions :: new ( ) . read ( true ) . write ( true ) . open ( CHANGELOG_PATH ) . unwrap ( ) ;
266-
267- if let Some ( position) = changelog. find ( "<!-- begin autogenerated links to configuration documentation -->" ) {
268- // I know this is kinda wasteful, we just don't have regex on `clippy_lints` so... this is the best
269- // we can do AFAIK.
270- changelog = changelog[ ..position] . to_string ( ) ;
271- }
249+ let changelog = std:: fs:: read_to_string ( CHANGELOG_PATH ) . unwrap ( ) ;
250+ let mut changelog_file = File :: create ( CHANGELOG_PATH ) . unwrap ( ) ;
251+ let position = changelog
252+ . find ( "<!-- begin autogenerated links to configuration documentation -->" )
253+ . unwrap ( ) ;
272254 writeln ! (
273255 changelog_file,
274- "{changelog}<!-- begin autogenerated links to configuration documentation -->\n {}\n <!-- end autogenerated links to configuration documentation -->" ,
256+ "{}<!-- begin autogenerated links to configuration documentation -->\n {}\n <!-- end autogenerated links to configuration documentation -->" ,
257+ & changelog[ ..position] ,
275258 self . configs_to_markdown( ClippyConfiguration :: to_markdown_link)
276259 )
277260 . unwrap ( ) ;
0 commit comments