Added self updates
This commit is contained in:
parent
3d1bee87b6
commit
11fcca4a78
5 changed files with 1142 additions and 49 deletions
1098
Cargo.lock
generated
1098
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
15
Cargo.toml
15
Cargo.toml
|
@ -1,16 +1,16 @@
|
|||
[package]
|
||||
name = "DRP_Creative"
|
||||
version = "0.1.3"
|
||||
name = "drp_creative"
|
||||
version = "0.1.4"
|
||||
edition = "2021"
|
||||
author = "https://djkato.net"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
discord-rich-presence = "0.2.2"
|
||||
regex = "1.6.0"
|
||||
tray-item = "0.7.0"
|
||||
lazy_static = "1.4.0"
|
||||
self_update = {version= "0.36.0", features= ["archive-zip"]}
|
||||
win-msgbox = "0.1.2"
|
||||
|
||||
[dependencies.windows]
|
||||
version = "0.39.0"
|
||||
|
@ -23,4 +23,9 @@ features = [
|
|||
]
|
||||
|
||||
[target.'cfg(windows)'.build-dependencies]
|
||||
windres = "0.2.2"
|
||||
windres = "0.2.2"
|
||||
|
||||
# prefix binary with x86_64-pc-windows-msvc for self_updater
|
||||
[[bin]]
|
||||
name = "DRP_Creative--x86_64-pc-windows-msvc"
|
||||
path = "src/main.rs"
|
23
README.md
23
README.md
|
@ -8,19 +8,38 @@ Examples:
|
|||

|
||||
|
||||
## how to install:
|
||||
1. Grab the latest version from the [Releases](https://github.com/djkato/DRP_Creative/releases) page, then make a folder in `C:/Program Files/` and call it whatever, for example `DRP Creative`.
|
||||
1. Grab the latest version from the [Releases](https://github.com/djkato/DRP_Creative/releases) page, then make a folder in `C:/Program Files/` and call it whatever, for example `DRP Creative`.
|
||||
3. Do `[WindowsButton] + R`, type `Shell:StartUp`, hit enter. A folder will open.
|
||||
4. Put the exe file inside this folder(Now the app will start on pc start)
|
||||
5. If you want to run it now, double click it
|
||||
6. Enjoy!
|
||||
|
||||
## How to use:
|
||||
|
||||
- App updates will be notified and suggested on startup via popup window.
|
||||
- When it's running, you'll notice a new icon appear on your Taskbar. If you want to exclude the **currently open project** from showing up, click on the icon and click on `Don't show current project`.
|
||||

|
||||
|
||||
- To change the portfolio website or remove excluded projects and words from the program, run the program at least once, and a `.drp_config` file will appear. You can open this with any text editor and rewrite the lines there. be gentle though, program expects a certain format for the file ^^'
|
||||
- To disable the portfolio row, there's a "HIDE_PORTFOLIO_ROW" setting.
|
||||
|
||||
Example `.drp_config`:
|
||||
```json
|
||||
SHOULD_EXCLUDE_BE_ANONYMOUS:{
|
||||
n
|
||||
}
|
||||
|
||||
PORTFOLIO_LINK:{
|
||||
djkato.net
|
||||
}
|
||||
|
||||
EXCLUDE_CHARACTERS_LIST:{
|
||||
no_drp
|
||||
}
|
||||
|
||||
HIDE_PORTFOLIO_ROW:{
|
||||
no
|
||||
}
|
||||
```
|
||||
### Currently supported programs:
|
||||
**Full support:**
|
||||
- Cinema 4D
|
||||
|
|
|
@ -1,15 +1,24 @@
|
|||
#![windows_subsystem = "windows"] //UNCOMMENT ONLY WHEN BUILDING FOR RELEASE TO NOT SHOW TERMINAL WINDOW!
|
||||
#[macro_use]
|
||||
extern crate self_update;
|
||||
|
||||
pub mod app;
|
||||
pub mod config;
|
||||
pub mod program_status;
|
||||
pub mod self_updater;
|
||||
pub mod tray_icon;
|
||||
use crate::config::Config;
|
||||
use crate::program_status::*;
|
||||
use crate::self_updater::try_update;
|
||||
use app::{App, Apps};
|
||||
use discord_rich_presence::{activity, DiscordIpc, DiscordIpcClient};
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
use std::{thread, time};
|
||||
fn main() {
|
||||
match try_update() {
|
||||
Ok(_) => {}
|
||||
Err(e) => println!("Failed to update! {e}"),
|
||||
}
|
||||
let apps = Apps::construct_apps();
|
||||
let mut config = Config::load();
|
||||
|
||||
|
|
46
src/self_updater.rs
Normal file
46
src/self_updater.rs
Normal file
|
@ -0,0 +1,46 @@
|
|||
use windows::w;
|
||||
|
||||
pub fn try_update() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let build = self_update::backends::github::Update::configure()
|
||||
.repo_owner("djkato")
|
||||
.repo_name("DRP_Creative")
|
||||
.bin_name("DRP_Creative")
|
||||
.no_confirm(true)
|
||||
.current_version(cargo_crate_version!())
|
||||
.build()?;
|
||||
|
||||
let latest_release = build.get_latest_release()?;
|
||||
if self_update::version::bump_is_greater(
|
||||
build.current_version().as_str(),
|
||||
latest_release.version.as_str(),
|
||||
)? {
|
||||
let body: windows::core::HSTRING = format!(
|
||||
"Found update! \nCurrent version: {}\nFound Version: {}\nUpdate?",
|
||||
build.current_version(),
|
||||
latest_release.version
|
||||
)
|
||||
.into();
|
||||
if let Ok(response) = win_msgbox::MessageBox::<win_msgbox::OkayCancel>::new(body.as_ptr())
|
||||
.title(w!("DRP Creative Updater").as_ptr())
|
||||
.show()
|
||||
{
|
||||
match response {
|
||||
win_msgbox::OkayCancel::Cancel => {}
|
||||
win_msgbox::OkayCancel::Okay => {
|
||||
build.update()?;
|
||||
win_msgbox::MessageBox::<win_msgbox::Okay>::new(
|
||||
w!("Update successful, restart app to apply").as_ptr(),
|
||||
)
|
||||
.title(w!("DRP Creative").as_ptr())
|
||||
.icon(win_msgbox::Icon::Information)
|
||||
.show()
|
||||
.expect("Failed to show update successful window");
|
||||
return Ok(());
|
||||
}
|
||||
}
|
||||
};
|
||||
} else {
|
||||
return Err("No updates found".into());
|
||||
}
|
||||
Err("Something got skipped".into())
|
||||
}
|
Loading…
Reference in a new issue