Avoid adding extra newline for script with non-empty prelude (#6366)

Closes #6364
This commit is contained in:
Jo 2024-08-22 04:57:08 +08:00 committed by GitHub
parent 7fdd26c81f
commit 1377c6807d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 63 additions and 7 deletions

View file

@ -80,11 +80,15 @@ impl Pep723Script {
let metadata = Pep723Metadata::from_str(&default_metadata)?;
// Extract the shebang and script content.
let (prelude, postlude) = extract_shebang(&contents)?;
let (shebang, postlude) = extract_shebang(&contents)?;
Ok(Self {
path: file.as_ref().to_path_buf(),
prelude,
prelude: if shebang.is_empty() {
String::new()
} else {
format!("{shebang}\n")
},
metadata,
postlude,
})
@ -94,11 +98,7 @@ impl Pep723Script {
pub async fn write(&self, metadata: &str) -> Result<(), Pep723Error> {
let content = format!(
"{}{}{}",
if self.prelude.is_empty() {
String::new()
} else {
format!("{}\n", self.prelude)
},
self.prelude,
serialize_metadata(metadata),
self.postlude
);