git.iko.soy/typeable/octopod
on master help sign in
Merge pull request #78 from Aviora/utils-metadata

Write sha256 hashes of utils and b2b-helm to stdout

commit89c36d90376c2fa1ae56194cbaad6111cc25b0d0 authorandor0 <aaorlov1@gmail.com> dateFri 10 Jul 2020, 15:01 (6 years ago) parentc8c7bc1dd8de9c
8 files changed+54−5
utils/b2b-utils/.gitignore+1 utils/b2b-utils/Makefile+1 utils/b2b-utils/src/bin/check.rs+2 utils/b2b-utils/src/bin/cleanup.rs+3 utils/b2b-utils/src/bin/create.rs+16−3 utils/b2b-utils/src/bin/delete.rs+3 utils/b2b-utils/src/bin/update.rs+15−2 utils/b2b-utils/src/lib.rs+13
utils/b2b-utils/.gitignore+1
@@ -1 +1,2 @@
11/target
2+src/version
utils/b2b-utils/Makefile+1
@@ -1,6 +1,7 @@
11.PHONY: install-musl-target build-musl
22
33build-musl:
4+ git rev-parse HEAD > src/version
45 cargo build --release --target x86_64-unknown-linux-musl
56
67install-musl-target:
utils/b2b-utils/src/bin/check.rs+2
@@ -30,6 +30,8 @@ fn main() -> std::io::Result<()> {
3030 .expect("could not get namepace");
3131 let name = matches.value_of("name").expect("could not get name");
3232
33+ print_utils_version();
34+
3335 println!("namespace: {:?}", namespace);
3436 println!("name: {:?}", name);
3537
utils/b2b-utils/src/bin/cleanup.rs+3
@@ -32,6 +32,9 @@ fn main() -> std::io::Result<()> {
3232 let project_name = matches.value_of("project-name").expect("get project-name");
3333 let namespace = matches.value_of("namespace").expect("get namepace");
3434 let name = matches.value_of("name").expect("get name");
35+
36+ print_utils_version();
37+
3538 println!("project_name: {:?}", project_name);
3639 println!("namespace: {:?}", namespace);
3740 println!("name: {:?}", name);
utils/b2b-utils/src/bin/create.rs+16−3
@@ -65,6 +65,8 @@ fn main() -> std::io::Result<()> {
6565 .map(|e| e.try_into().expect("get valid key=value"))
6666 .collect::<Vec<EnvPair>>();
6767
68+ print_utils_version();
69+
6870 println!("project_name: {:?}", project_name);
6971 println!("base_domain: {:?}", base_domain);
7072 println!("namespace: {:?}", namespace);
@@ -95,6 +97,17 @@ fn main() -> std::io::Result<()> {
9597 let success = output.status.success();
9698 print_command_result(output);
9799
100+ let output = Command::new("git")
101+ .args(&["rev-parse", "HEAD"])
102+ .current_dir(&work_dir)
103+ .output()
104+ .expect("get hash of HEAD");
105+ let success2 = output.status.success();
106+ println!(
107+ "b2b-helm sha256: {}",
108+ String::from_utf8(output.stdout).expect("get sha256 of HEAD")
109+ );
110+
98111 fs::copy(&b2b_heml, Path::new(&work_dir).join("b2b-helm"))?;
99112
100113 let output = Command::new("b2b-helm")
@@ -102,7 +115,7 @@ fn main() -> std::io::Result<()> {
102115 .current_dir(&work_dir)
103116 .output()
104117 .expect("create infra");
105− let success2 = output.status.success();
118+ let success3 = output.status.success();
106119 print_command_result(output);
107120
108121 let output = Command::new("b2b-helm")
@@ -110,10 +123,10 @@ fn main() -> std::io::Result<()> {
110123 .current_dir(&work_dir)
111124 .output()
112125 .expect("create app");
113− let success3 = output.status.success();
126+ let success4 = output.status.success();
114127 print_command_result(output);
115128
116− if !(success && success2 && success3) {
129+ if !(success && success2 && success3 && success4) {
117130 exit(1)
118131 }
119132
utils/b2b-utils/src/bin/delete.rs+3
@@ -32,6 +32,9 @@ fn main() -> std::io::Result<()> {
3232 let project_name = matches.value_of("project-name").expect("get project-name");
3333 let namespace = matches.value_of("namespace").expect("get namepace");
3434 let name = matches.value_of("name").expect("get name");
35+
36+ print_utils_version();
37+
3538 println!("project_name: {:?}", project_name);
3639 println!("namespace: {:?}", namespace);
3740 println!("name: {:?}", name);
utils/b2b-utils/src/bin/update.rs+15−2
@@ -65,6 +65,8 @@ fn main() -> std::io::Result<()> {
6565 .map(|e| e.try_into().expect("get valid key=value"))
6666 .collect::<Vec<EnvPair>>();
6767
68+ print_utils_version();
69+
6870 println!("project_name: {:?}", project_name);
6971 println!("base_domain: {:?}", base_domain);
7072 println!("namespace: {:?}", namespace);
@@ -95,6 +97,17 @@ fn main() -> std::io::Result<()> {
9597 let success = output.status.success();
9698 print_command_result(output);
9799
100+ let output = Command::new("git")
101+ .args(&["rev-parse", "HEAD"])
102+ .current_dir(&work_dir)
103+ .output()
104+ .expect("get hash of HEAD");
105+ let success2 = output.status.success();
106+ println!(
107+ "b2b-helm sha256: {}",
108+ String::from_utf8(output.stdout).expect("get sha256 of HEAD")
109+ );
110+
98111 fs::copy(&b2b_heml, Path::new(&work_dir).join("b2b-helm"))?;
99112
100113 let output = Command::new("b2b-helm")
@@ -102,10 +115,10 @@ fn main() -> std::io::Result<()> {
102115 .current_dir(&work_dir)
103116 .output()
104117 .expect("create app");
105− let success2 = output.status.success();
118+ let success3 = output.status.success();
106119 print_command_result(output);
107120
108− if !(success && success2) {
121+ if !(success && success2 && success3) {
109122 exit(1)
110123 }
111124
utils/b2b-utils/src/lib.rs+13
@@ -57,6 +57,19 @@ pub fn whereis(cmd: &str) -> Option<String> {
5757 })
5858}
5959
60+pub fn print_utils_version() {
61+ println!(
62+ "utils sha256: {}",
63+ String::from_utf8(version().to_vec()).expect("get version")
64+ );
65+}
66+
67+pub fn version() -> &'static [u8] {
68+ // version file can create so:
69+ // $ git rev-parse HEAD > src/version
70+ include_bytes!("version")
71+}
72+
6073pub fn print_command_result(output: Output) {
6174 println!("status: {}", output.status);
6275 println!(