Skip to content

Commit 117fe47

Browse files
committed
print current version in the project manager window's title
1 parent 77d2801 commit 117fe47

4 files changed

Lines changed: 44 additions & 3 deletions

File tree

project-manager/Cargo.toml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ license = "MIT"
77
description = "Project manager for Fyrox engine"
88
keywords = ["fyrox", "project", "manager"]
99
categories = ["game-development"]
10-
include = ["/src/**/*", "/Cargo.toml", "/LICENSE", "/README.md", "/resources/**/*"]
10+
include = ["/src/**/*", "/Cargo.toml", "/LICENSE", "/README.md", "/resources/**/*", "/pm.version"]
1111
homepage = "https://fyrox.rs"
1212
repository = "https://github.com/FyroxEngine/Fyrox"
1313
rust-version = "1.87"
@@ -21,4 +21,7 @@ ron = "0.11.0"
2121
open = "5.0.1"
2222
cargo_metadata = "0.22.0"
2323
serde_json = "1.0.133"
24-
directories = "5.0.1"
24+
directories = "5.0.1"
25+
26+
[build-dependencies]
27+
toml_edit = "0.23.5"

project-manager/build.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
use std::{
2+
fs::File,
3+
io::{Read, Write},
4+
};
5+
use toml_edit::DocumentMut;
6+
7+
fn write_version_file(manifest_path: &str, version_file: &str) {
8+
let mut toml = String::new();
9+
File::open(manifest_path)
10+
.expect("Cargo.toml must exist!")
11+
.read_to_string(&mut toml)
12+
.expect("File must be readable");
13+
14+
let version = toml
15+
.parse::<DocumentMut>()
16+
.expect("must be valid toml")
17+
.get("package")
18+
.and_then(|i| i.as_table())
19+
.expect("package section must exist!")
20+
.get("version")
21+
.expect("version must be set!")
22+
.to_string()
23+
.replace('\"', "")
24+
.trim()
25+
.to_string();
26+
27+
File::create(version_file)
28+
.expect("version file must be accessible for writing!")
29+
.write_all(version.as_bytes())
30+
.expect("version file must be writable!");
31+
}
32+
33+
fn main() {
34+
write_version_file("./Cargo.toml", "./pm.version");
35+
}

project-manager/pm.version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1.0.0

project-manager/src/main.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ mod settings;
2828
mod upgrade;
2929
mod utils;
3030

31+
static CURRENT_VERSION: &str = include_str!("../pm.version");
32+
3133
use crate::{manager::ProjectManager, settings::DATA_DIR, utils::make_button};
3234
use fyrox::core::algebra::Vector2;
3335
use fyrox::{
@@ -75,7 +77,7 @@ fn main() {
7577
let mut window_attributes = WindowAttributes::default();
7678
window_attributes.inner_size = Some(PhysicalSize::new(720, 520).into());
7779
window_attributes.resizable = true;
78-
window_attributes.title = "Fyrox Project Manager".to_string();
80+
window_attributes.title = format!("Fyrox Project Manager - {}", CURRENT_VERSION);
7981

8082
let serialization_context = Arc::new(SerializationContext::new());
8183
let task_pool = Arc::new(TaskPool::new());

0 commit comments

Comments
 (0)