diff --git a/script-sign-rs/src/main.rs b/script-sign-rs/src/main.rs index bedb01c..93fd47f 100644 --- a/script-sign-rs/src/main.rs +++ b/script-sign-rs/src/main.rs @@ -3,9 +3,7 @@ use base64::engine::general_purpose::STANDARD as standard_base64; use base64::Engine; use digest::Digest; use regex::Regex; -use rust_util::{ - debugging, opt_result, opt_value_result, simple_error, util_cmd, XResult, -}; +use rust_util::{debugging, opt_result, opt_value_result, simple_error, util_cmd, XResult}; use serde::{Deserialize, Serialize}; use sha2::Sha256; use std::collections::HashMap; @@ -174,10 +172,20 @@ impl Script { } fn as_string(&self) -> String { + let mut joined_content_liens = self.content_lines.join("\n"); match &self.signature { - None => self.content_lines.join("\n"), + None => joined_content_liens, Some(signature) => { - self.content_lines.join("\n") + "\n\n" + &signature.as_string() + "\n" + if joined_content_liens.ends_with("\n\n") { + // SKIP add \n + } else if joined_content_liens.ends_with("\n") { + joined_content_liens.push('\n'); + } else { + joined_content_liens.push_str("\n\n"); + } + joined_content_liens.push_str(&signature.as_string()); + joined_content_liens.push('\n'); + joined_content_liens } } } diff --git a/script-sign-rs/test.js b/script-sign-rs/test.js index 6b69a81..7bfddab 100644 --- a/script-sign-rs/test.js +++ b/script-sign-rs/test.js @@ -1,4 +1,3 @@ console.log('hello world'); - -// @SCRIPT-SIGNATURE-V1: yk-r1.ES256.MEYCIQDA5+Em6mgx8F/D0Mu1JxhXtIs3nAQ/PCl7QZwO+6v+gwIhAK+mDCjGXqpKfhrZ/qvDKeHUgSgixpEKvkXPqLqpEtiQ +// @SCRIPT-SIGNATURE-V1: yk-r1.ES256.MEUCIQDiGI8XkLHLcslt/663ZAIIBVItcRLMRZOJ7kBlP96QfgIgQtOeDbj5Z1+o4UkuXV1Knq0X8DRIOTNkVGmyBsJQ6f4=