feat: rename gupax name references to gupaxx

This commit is contained in:
Louis-Marie Baer 2024-03-23 17:45:15 +01:00
parent 94ebd4ebae
commit 0827b4d84e
20 changed files with 164 additions and 163 deletions

4
Cargo.lock generated
View file

@ -2025,8 +2025,8 @@ dependencies = [
]
[[package]]
name = "gupax"
version = "1.3.6"
name = "gupaxx"
version = "0.1.0"
dependencies = [
"anyhow",
"benri",

View file

@ -52,6 +52,7 @@
- [ ] adapt doc for new code
- [x] cargo package metadata
- [x] pgp signatures
- [x] rename reference of gupax name to gupaxx
- [x] fix clippy
- [ ] optimizations
- [x] benchmarks table render only what is visible

View file

@ -283,7 +283,7 @@ impl App {
node_path: PathBuf::new(),
pool_path: PathBuf::new(),
version: GUPAX_VERSION,
name_version: format!("Gupax {}", GUPAX_VERSION),
name_version: format!("Gupaxx {}", GUPAX_VERSION),
};
//---------------------------------------------------------------------------------------------------- App init data that *could* panic
info!("App Init | Getting EXE path...");
@ -425,7 +425,7 @@ impl App {
Merge(e) => (e.to_string(), ErrorFerris::Error, ErrorButtons::ResetState),
Parse(e) => (e.to_string(), ErrorFerris::Panic, ErrorButtons::Quit),
};
app.error_state.set(format!("Gupax P2Pool Stats: {}\n\nTry deleting: {}\n\n(Warning: this will delete your P2Pool payout history...!)\n\n", e, app.gupax_p2pool_api_path.display()), ferris, button);
app.error_state.set(format!("Gupaxx P2Pool Stats: {}\n\nTry deleting: {}\n\n(Warning: this will delete your P2Pool payout history...!)\n\n", e, app.gupax_p2pool_api_path.display()), ferris, button);
}
}
info!("App Init | Reading Gupax-P2Pool API files...");
@ -447,7 +447,7 @@ impl App {
Merge(e) => (e.to_string(), ErrorFerris::Error, ErrorButtons::ResetState),
Parse(e) => (e.to_string(), ErrorFerris::Panic, ErrorButtons::Quit),
};
app.error_state.set(format!("Gupax P2Pool Stats: {}\n\nTry deleting: {}\n\n(Warning: this will delete your P2Pool payout history...!)\n\n", e, app.gupax_p2pool_api_path.display()), ferris, button);
app.error_state.set(format!("Gupaxx P2Pool Stats: {}\n\nTry deleting: {}\n\n(Warning: this will delete your P2Pool payout history...!)\n\n", e, app.gupax_p2pool_api_path.display()), ferris, button);
}
};
drop(gupax_p2pool_api);
@ -541,13 +541,13 @@ impl App {
app.admin = true;
} else {
error!("Windows | Admin user not detected!");
app.error_state.set(format!("Gupax was not launched as Administrator!\nBe warned, XMRig might have less hashrate!"), ErrorFerris::Sudo, ErrorButtons::WindowsAdmin);
app.error_state.set(format!("Gupaxx was not launched as Administrator!\nBe warned, XMRig might have less hashrate!"), ErrorFerris::Sudo, ErrorButtons::WindowsAdmin);
}
#[cfg(target_family = "unix")]
if sudo_check::check() != sudo_check::RunningAs::User {
let id = sudo_check::check();
error!("Unix | Regular user not detected: [{:?}]", id);
app.error_state.set(format!("Gupax was launched as: [{:?}]\nPlease launch Gupax with regular user permissions.", id), ErrorFerris::Panic, ErrorButtons::Quit);
app.error_state.set(format!("Gupaxx was launched as: [{:?}]\nPlease launch Gupax with regular user permissions.", id), ErrorFerris::Panic, ErrorButtons::Quit);
}
// macOS re-locates "dangerous" applications into some read-only "/private" directory.

View file

@ -26,7 +26,7 @@ impl Gupax {
ui: &mut egui::Ui,
) {
// Update button + Progress bar
debug!("Gupax Tab | Rendering [Update] button + progress bar");
debug!("Gupaxx Tab | Rendering [Update] button + progress bar");
ui.group(|ui| {
let button = if self.simple {
size.y / 5.0
@ -75,7 +75,7 @@ impl Gupax {
});
});
debug!("Gupax Tab | Rendering bool buttons");
debug!("Gupaxx Tab | Rendering bool buttons");
ui.horizontal(|ui| {
ui.group(|ui| {
let width = (size.x - SPACE * 12.0) / 6.0;
@ -116,7 +116,7 @@ impl Gupax {
return;
}
debug!("Gupax Tab | Rendering P2Pool/XMRig path selection");
debug!("Gupaxx Tab | Rendering P2Pool/XMRig path selection");
// P2Pool/XMRig binary path selection
let height = size.y / 28.0;
let text_edit = (ui.available_width() / 10.0) - SPACE;
@ -129,7 +129,7 @@ impl Gupax {
.color(LIGHT_GRAY),
),
)
.on_hover_text("Gupax is online");
.on_hover_text("Gupaxx is online");
ui.separator();
ui.horizontal(|ui| {
if self.p2pool_path.is_empty() {
@ -220,7 +220,7 @@ impl Gupax {
let height = ui.available_height() / 6.0;
// Saved [Tab]
debug!("Gupax Tab | Rendering [Tab] selector");
debug!("Gupaxx Tab | Rendering [Tab] selector");
ui.group(|ui| {
let width = (size.x / 6.0) - (SPACE * 1.93);
let size = vec2(width, height);
@ -251,7 +251,7 @@ impl Gupax {
}
ui.separator();
if ui
.add_sized(size, SelectableLabel::new(self.tab == Tab::Gupax, "Gupax"))
.add_sized(size, SelectableLabel::new(self.tab == Tab::Gupax, "Gupaxx"))
.on_hover_text(GUPAX_TAB_GUPAX)
.clicked()
{
@ -287,7 +287,7 @@ impl Gupax {
});
// Gupax App resolution sliders
debug!("Gupax Tab | Rendering resolution sliders");
debug!("Gupaxx Tab | Rendering resolution sliders");
ui.group(|ui| {
ui.add_sized(
[ui.available_width(), height / 2.0],

View file

@ -180,7 +180,7 @@ impl P2pool {
[size.x, height / 2.0],
Hyperlink::from_label_and_url(
"WARNING: It is recommended to run/use your own Monero Node (hover for details)",
"https://github.com/hinto-janai/gupax#running-a-local-monero-node",
"https://github.com/Cyrix126/gupaxx#running-a-local-monero-node",
),
)
.on_hover_text(P2POOL_COMMUNITY_NODE_WARNING);

View file

@ -65,17 +65,17 @@ impl Status {
fn gupax(ui: &mut Ui, min_height: f32, width: f32, height: f32, sys: &Arc<Mutex<Sys>>) {
ui.group(|ui| {
ui.vertical(|ui| {
debug!("Status Tab | Rendering [Gupax]");
debug!("Status Tab | Rendering [Gupaxx]");
ui.set_min_height(min_height);
ui.add_sized(
[width, height],
Label::new(
RichText::new("[Gupax]")
RichText::new("[Gupaxx]")
.color(LIGHT_GRAY)
.text_style(TextStyle::Name("MonospaceLarge".into())),
),
)
.on_hover_text("Gupax is online");
.on_hover_text("Gupaxx is online");
let sys = lock!(sys);
ui.add_sized(
[width, height],
@ -85,13 +85,13 @@ fn gupax(ui: &mut Ui, min_height: f32, width: f32, height: f32, sys: &Arc<Mutex<
ui.add_sized([width, height], Label::new(sys.gupax_uptime.to_string()));
ui.add_sized(
[width, height],
Label::new(RichText::new("Gupax CPU").underline().color(BONE)),
Label::new(RichText::new("Gupaxx CPU").underline().color(BONE)),
)
.on_hover_text(STATUS_GUPAX_CPU_USAGE);
ui.add_sized([width, height], Label::new(sys.gupax_cpu_usage.to_string()));
ui.add_sized(
[width, height],
Label::new(RichText::new("Gupax Memory").underline().color(BONE)),
Label::new(RichText::new("Gupaxx Memory").underline().color(BONE)),
)
.on_hover_text(STATUS_GUPAX_MEMORY_USAGE);
ui.add_sized(

View file

@ -151,7 +151,7 @@ impl crate::app::App {
if cfg!(windows) && self.error_state.buttons == ErrorButtons::WindowsAdmin {
ui.add_sized([width, height], Hyperlink::from_label_and_url(
"[Why does Gupax need to be Admin? (on Windows)]",
"https://github.com/hinto-janai/gupax/tree/main/src#why-does-gupax-need-to-be-admin-on-windows"
"https://github.com/Cyrix126/gupaxx/tree/main/src#why-does-gupax-need-to-be-admin-on-windows"
));
ui.add_sized([width, height], Label::new(&self.error_state.msg))
} else {

View file

@ -1,4 +1,4 @@
// Gupax - GUI Uniting P2Pool And XMRig
// Gupaxx - GUI Uniting P2Pool And XMRig
//
// Copyright (c) 2022-2023 hinto-janai
//
@ -65,7 +65,7 @@ pub enum Ratio {
None,
}
//---------------------------------------------------------------------------------------------------- Gupax
//---------------------------------------------------------------------------------------------------- Gupaxx
impl Gupax {
// Checks if a path is a valid path to a file.
pub fn path_is_file(path: &str) -> bool {
@ -88,11 +88,11 @@ impl Gupax {
lock!(file_window).thread = true;
thread::spawn(move || {
match rfd::FileDialog::new()
.set_title(format!("Select {} Binary for Gupax", name))
.set_title(format!("Select {} Binary for Gupaxx", name))
.pick_file()
{
Some(path) => {
info!("Gupax | Path selected for {} ... {}", name, path.display());
info!("Gupaxx | Path selected for {} ... {}", name, path.display());
match file_type {
P2pool => {
lock!(file_window).p2pool_path = path.display().to_string();
@ -104,7 +104,7 @@ impl Gupax {
}
};
}
None => info!("Gupax | No path selected for {}", name),
None => info!("Gupaxx | No path selected for {}", name),
};
lock!(file_window).thread = false;
});

View file

@ -80,15 +80,15 @@ use zip::ZipArchive;
// - XMRig separates the hash and signature
// - P2Pool hashes are in UPPERCASE
const GUPAX_METADATA: &str = "https://api.github.com/repos/hinto-janai/gupax/releases/latest";
const GUPAX_METADATA: &str = "https://api.github.com/repos/Cyrix126/gupaxx/releases/latest";
const P2POOL_METADATA: &str = "https://api.github.com/repos/SChernykh/p2pool/releases/latest";
const XMRIG_METADATA: &str = "https://api.github.com/repos/xmrig/xmrig/releases/latest";
const GUPAX_PREFIX: &str = "https://github.com/hinto-janai/gupax/releases/download/";
const GUPAX_PREFIX: &str = "https://github.com/Cyrix126/gupaxx/releases/download/";
const P2POOL_PREFIX: &str = "https://github.com/SChernykh/p2pool/releases/download/";
const XMRIG_PREFIX: &str = "https://github.com/xmrig/xmrig/releases/download/";
const GUPAX_SUFFIX: &str = "/gupax-";
const GUPAX_SUFFIX: &str = "/gupaxx-";
const P2POOL_SUFFIX: &str = "/p2pool-";
const XMRIG_SUFFIX: &str = "/xmrig-";
@ -101,12 +101,12 @@ mod impl_platform {
pub(super) const GUPAX_EXTENSION: &str = "-windows-x64-standalone.zip";
pub(super) const P2POOL_EXTENSION: &str = "-windows-x64.zip";
pub(super) const XMRIG_EXTENSION: &str = "-msvc-win64.zip";
pub(super) const GUPAX_BINARY: &str = "Gupax.exe";
pub(super) const GUPAX_BINARY: &str = "Gupaxx.exe";
pub(super) const P2POOL_BINARY: &str = "p2pool.exe";
pub(super) const XMRIG_BINARY: &str = "xmrig.exe";
pub(super) const VALID_GUPAX_1: &str = "GUPAX.exe";
pub(super) const VALID_GUPAX_2: &str = "Gupax.exe";
pub(super) const VALID_GUPAX_3: &str = "gupax.exe";
pub(super) const VALID_GUPAX_1: &str = "GUPAXX.exe";
pub(super) const VALID_GUPAX_2: &str = "Gupaxx.exe";
pub(super) const VALID_GUPAX_3: &str = "gupaxx.exe";
pub(super) const VALID_XMRIG_1: &str = "XMRIG.exe";
pub(super) const VALID_XMRIG_2: &str = "XMRig.exe";
pub(super) const VALID_XMRIG_3: &str = "Xmrig.exe";
@ -119,12 +119,12 @@ mod impl_platform {
#[cfg(target_family = "unix")]
mod impl_unix {
pub(super) const GUPAX_BINARY: &str = "gupax";
pub(super) const GUPAX_BINARY: &str = "gupaxx";
// pub(super) const P2POOL_BINARY: &str = "p2pool";
// pub(super) const XMRIG_BINARY: &str = "xmrig";
pub(super) const VALID_GUPAX_1: &str = "GUPAX";
pub(super) const VALID_GUPAX_2: &str = "Gupax";
pub(super) const VALID_GUPAX_3: &str = "gupax";
pub(super) const VALID_GUPAX_1: &str = "GUPAXX";
pub(super) const VALID_GUPAX_2: &str = "Gupaxx";
pub(super) const VALID_GUPAX_3: &str = "gupaxx";
pub(super) const VALID_XMRIG_1: &str = "XMRIG";
pub(super) const VALID_XMRIG_2: &str = "XMRig";
pub(super) const VALID_XMRIG_3: &str = "Xmrig";
@ -221,8 +221,7 @@ const MSG_UPGRADE: &str = "Upgrading packages";
pub const MSG_SUCCESS: &str = "Update successful";
pub const MSG_FAILED: &str = "Update failed";
pub const MSG_FAILED_HELP: &str =
"Consider manually replacing your executable from: https://gupax.io/downloads";
"Consider manually replacing your executable from github releases: https://github.com/Cyrix126/gupaxx/releases";
const INIT: &str = "------------------- Init -------------------";
const METADATA: &str = "----------------- Metadata -----------------";
const COMPARE: &str = "----------------- Compare ------------------";
@ -316,9 +315,9 @@ impl Update {
.collect();
let base = get_exe_dir()?;
#[cfg(target_os = "windows")]
let tmp_dir = format!("{}{}{}{}", base, r"\gupax_update_", rand_string, r"\");
let tmp_dir = format!("{}{}{}{}", base, r"\gupaxx_update_", rand_string, r"\");
#[cfg(target_family = "unix")]
let tmp_dir = format!("{}{}{}{}", base, "/gupax_update_", rand_string, "/");
let tmp_dir = format!("{}{}{}{}", base, "/gupaxx_update_", rand_string, "/");
info!("Update | Temporary directory ... {}", tmp_dir);
Ok(tmp_dir)
}
@ -518,10 +517,10 @@ impl Update {
restart: Arc<Mutex<Restart>>,
) -> Result<(), anyhow::Error> {
#[cfg(feature = "distro")]
error!("Update | This is the [Linux distro] version of Gupax, updates are disabled");
error!("Update | This is the [Linux distro] version of Gupaxx, updates are disabled");
#[cfg(feature = "distro")]
return Err(anyhow!(
"This is the [Linux distro] version of Gupax, updates are disabled"
"This is the [Linux distro] version of Gupaxx, updates are disabled"
));
//---------------------------------------------------------------------------------------------------- Init
@ -652,7 +651,7 @@ impl Update {
// using the old version (even though the underlying binary was updated).
old_ver = lock!(state_ver).gupax.clone();
diff = old_ver != new_ver && GUPAX_VERSION != new_ver;
name = "Gupax";
name = "Gupaxx";
}
P2pool => {
old_ver = lock!(state_ver).p2pool.clone();
@ -835,7 +834,7 @@ impl Update {
#[cfg(target_os = "windows")]
if path.exists() {
let tmp_windows = match name {
Gupax => tmp_dir.clone() + "gupax_old.exe",
Gupax => tmp_dir.clone() + "gupaxx_old.exe",
P2pool => tmp_dir.clone() + "p2pool_old.exe",
Xmrig => tmp_dir.clone() + "xmrig_old.exe",
};

View file

@ -4,11 +4,11 @@ pub const ERROR: &str = "Disk error";
pub const PATH_ERROR: &str = "PATH for state directory could not be not found";
#[cfg(target_os = "windows")]
pub const DIRECTORY: &str = r#"Gupax\"#;
pub const DIRECTORY: &str = r#"Gupaxx\"#;
#[cfg(target_os = "macos")]
pub const DIRECTORY: &str = "Gupax/";
pub const DIRECTORY: &str = "Gupaxx/";
#[cfg(target_os = "linux")]
pub const DIRECTORY: &str = "gupax/";
pub const DIRECTORY: &str = "gupaxx/";
// File names
pub const STATE_TOML: &str = "state.toml";

View file

@ -66,9 +66,9 @@ pub mod tests;
pub fn get_gupax_data_path() -> Result<PathBuf, TomlError> {
// Get OS data folder
// Linux | $XDG_DATA_HOME or $HOME/.local/share/gupax | /home/alice/.local/state/gupax
// macOS | $HOME/Library/Application Support/Gupax | /Users/Alice/Library/Application Support/Gupax
// Windows | {FOLDERID_RoamingAppData}\Gupax | C:\Users\Alice\AppData\Roaming\Gupax
// Linux | $XDG_DATA_HOME or $HOME/.local/share/gupaxx | /home/alice/.local/state/gupaxx
// macOS | $HOME/Library/Application Support/Gupaxx | /Users/Alice/Library/Application Support/Gupaxx
// Windows | {FOLDERID_RoamingAppData}\Gupaxx | C:\Users\Alice\AppData\Roaming\Gupaxx
match dirs::data_dir() {
Some(mut path) => {
path.push(DIRECTORY);

View file

@ -87,12 +87,12 @@ mod test {
api_ip = "localhost"
api_port = "18088"
name = "linux"
rig = "Gupax"
rig = "Gupaxx"
ip = "192.168.1.122"
port = "3333"
selected_index = 1
selected_name = "linux"
selected_rig = "Gupax"
selected_rig = "Gupaxx"
selected_ip = "192.168.1.122"
selected_port = "3333"
token = "testtoken"
@ -136,17 +136,17 @@ mod test {
fn serde_custom_pool() {
let pool = r#"
['Local P2Pool']
rig = "Gupax_v1.0.0"
rig = "Gupaxx_v1.0.0"
ip = "localhost"
port = "3333"
['aaa xx .. -']
rig = "Gupax"
rig = "Gupaxx"
ip = "192.168.22.22"
port = "1"
[' a']
rig = "Gupax_v1.0.0"
rig = "Gupaxx_v1.0.0"
ip = "127.0.0.1"
port = "65535"
"#;
@ -212,12 +212,12 @@ mod test {
api_ip = "localhost"
api_port = "18088"
name = "Local P2Pool"
rig = "Gupax_v1.0.0"
rig = "Gupaxx_v1.0.0"
ip = "localhost"
port = "3333"
selected_index = 0
selected_name = "Local P2Pool"
selected_rig = "Gupax_v1.0.0"
selected_rig = "Gupaxx_v1.0.0"
selected_ip = "localhost"
selected_port = "3333"

View file

@ -170,11 +170,11 @@ pub fn init_auto(app: &mut App) {
// [Auto-P2Pool]
if app.state.gupax.auto_p2pool {
if !Regexes::addr_ok(&app.state.p2pool.address) {
warn!("Gupax | P2Pool address is not valid! Skipping auto-p2pool...");
warn!("Gupaxx | P2Pool address is not valid! Skipping auto-p2pool...");
} else if !Gupax::path_is_file(&app.state.gupax.p2pool_path) {
warn!("Gupax | P2Pool path is not a file! Skipping auto-p2pool...");
warn!("Gupaxx | P2Pool path is not a file! Skipping auto-p2pool...");
} else if !crate::components::update::check_p2pool_path(&app.state.gupax.p2pool_path) {
warn!("Gupax | P2Pool path is not valid! Skipping auto-p2pool...");
warn!("Gupaxx | P2Pool path is not valid! Skipping auto-p2pool...");
} else {
let backup_hosts = app.gather_backup_hosts();
Helper::start_p2pool(
@ -191,9 +191,9 @@ pub fn init_auto(app: &mut App) {
// [Auto-XMRig]
if app.state.gupax.auto_xmrig {
if !Gupax::path_is_file(&app.state.gupax.xmrig_path) {
warn!("Gupax | XMRig path is not an executable! Skipping auto-xmrig...");
warn!("Gupaxx | XMRig path is not an executable! Skipping auto-xmrig...");
} else if !crate::components::update::check_xmrig_path(&app.state.gupax.xmrig_path) {
warn!("Gupax | XMRig path is not valid! Skipping auto-xmrig...");
warn!("Gupaxx | XMRig path is not valid! Skipping auto-xmrig...");
} else if cfg!(windows) {
Helper::start_xmrig(
&app.helper,

View file

@ -19,7 +19,7 @@ pub fn parse_args<S: Into<String>>(mut app: App, panic: S) -> App {
exit(0);
}
"--version" => {
println!("Gupax {} [OS: {}, Commit: {}]\nThis Gupax was originally bundled with:\n - P2Pool {}\n - XMRig {}\n\n{}", GUPAX_VERSION, OS_NAME, &COMMIT[..40], P2POOL_VERSION, XMRIG_VERSION, ARG_COPYRIGHT);
println!("Gupaxx {} [OS: {}, Commit: {}]\nThis Gupax was originally bundled with:\n - P2Pool {}\n - XMRig {}\n\n{}", GUPAX_VERSION, OS_NAME, &COMMIT[..40], P2POOL_VERSION, XMRIG_VERSION, ARG_COPYRIGHT);
exit(0);
}
"--ferris" => {

View file

@ -1,4 +1,4 @@
// Gupax - GUI Uniting P2Pool And XMRig
// Gupaxx - GUI Uniting P2Pool And XMRig
//
// Copyright (c) 2022-2023 hinto-janai
//
@ -22,7 +22,7 @@ pub const COMMIT: &str = env!("COMMIT"); // set in build.rs
// e.g: Gupax_v1_0_0
// Would have been [Gupax_v1.0.0] but P2Pool truncates everything after [.]
pub const GUPAX_VERSION_UNDERSCORE: &str = concat!(
"Gupax_v",
"Gupaxx_v",
env!("CARGO_PKG_VERSION_MAJOR"),
"_",
env!("CARGO_PKG_VERSION_MINOR"),
@ -45,7 +45,7 @@ pub const APP_DEFAULT_SCALE: f32 = 1.0;
// Constants specific for Linux distro packaging of Gupax
#[cfg(feature = "distro")]
pub const DISTRO_NO_UPDATE: &str = r#"This [Gupax] was compiled for use as a Linux distro package. Built-in updates are disabled. The below settings [Update-via-Tor] & [Auto-Update] will not do anything. Please use your package manager to update [Gupax/P2Pool/XMRig]."#;
pub const DISTRO_NO_UPDATE: &str = r#"This [Gupaxx] was compiled for use as a Linux distro package. Built-in updates are disabled. The below settings [Update-via-Tor] & [Auto-Update] will not do anything. Please use your package manager to update [Gupaxx/P2Pool/XMRig]."#;
// Use macOS shaped icon for macOS
#[cfg(target_os = "macos")]
@ -146,7 +146,7 @@ pub const OS: &str = " Windows";
#[cfg(target_os = "windows")]
pub const OS_NAME: &str = "Windows";
#[cfg(target_os = "windows")]
pub const WINDOWS_NOT_ADMIN: &str = "XMRig will most likely mine slower than normal without Administrator permissions. Please consider restarting Gupax as an Administrator.";
pub const WINDOWS_NOT_ADMIN: &str = "XMRig will most likely mine slower than normal without Administrator permissions. Please consider restarting Gupaxx as an Administrator.";
#[cfg(target_os = "macos")]
pub const OS: &str = " macOS";
@ -160,10 +160,11 @@ pub const OS_NAME: &str = "Linux";
// Tooltips
// Status
pub const STATUS_GUPAX_UPTIME: &str = "How long Gupax has been online";
pub const STATUS_GUPAX_UPTIME: &str = "How long Gupaxx has been online";
pub const STATUS_GUPAX_CPU_USAGE: &str =
"How much CPU Gupax is currently using. This accounts for all your threads (it is out of 100%)";
pub const STATUS_GUPAX_MEMORY_USAGE: &str = "How much memory Gupax is currently using in Megabytes";
"How much CPU Gupaxx is currently using. This accounts for all your threads (it is out of 100%)";
pub const STATUS_GUPAX_MEMORY_USAGE: &str =
"How much memory Gupaxx is currently using in Megabytes";
pub const STATUS_GUPAX_SYSTEM_CPU_USAGE: &str = "How much CPU your entire system is currently using. This accounts for all your threads (it is out of 100%)";
pub const STATUS_GUPAX_SYSTEM_MEMORY: &str =
"How much memory your entire system has (including swap) and is currently using in Gigabytes";
@ -201,12 +202,12 @@ pub const STATUS_XVB_BLOCK_REWARD: &str = "Block reward";
pub const STATUS_XVB_YEARLY: &str = "Estimated Reward (Yearly)";
// Status Submenus
pub const STATUS_SUBMENU_PROCESSES: &str =
"View the status of process related data for [Gupax|P2Pool|XMRig]";
"View the status of process related data for [Gupaxx|P2Pool|XMRig]";
pub const STATUS_SUBMENU_P2POOL: &str = "View P2Pool specific data";
pub const STATUS_SUBMENU_HASHRATE: &str = "Compare your CPU hashrate with others";
//-- P2Pool
pub const STATUS_SUBMENU_PAYOUT: &str = "The total amount of payouts received via P2Pool across all time. This includes all payouts you have ever received using Gupax and P2Pool.";
pub const STATUS_SUBMENU_XMR: &str = "The total of XMR mined via P2Pool across all time. This includes all the XMR you have ever mined using Gupax and P2Pool.";
pub const STATUS_SUBMENU_PAYOUT: &str = "The total amount of payouts received via P2Pool across all time. This includes all payouts you have ever received using Gupaxx and P2Pool.";
pub const STATUS_SUBMENU_XMR: &str = "The total of XMR mined via P2Pool across all time. This includes all the XMR you have ever mined using Gupaxx and P2Pool.";
pub const STATUS_SUBMENU_LATEST: &str = "Sort the payouts from latest to oldest";
pub const STATUS_SUBMENU_OLDEST: &str = "Sort the payouts from oldest to latest";
pub const STATUS_SUBMENU_BIGGEST: &str = "Sort the payouts from biggest to smallest";
@ -236,9 +237,9 @@ pub const STATUS_SUBMENU_YOUR_P2POOL_DOMINANCE: &str =
"The percent of hashrate you account for in P2Pool";
pub const STATUS_SUBMENU_YOUR_MONERO_DOMINANCE: &str =
"The percent of hashrate you account for in the entire Monero network";
pub const STATUS_SUBMENU_PROGRESS_BAR: &str = "The next time Gupax will update P2Pool stats. Each [*] is 900ms (updates roughly every 54 seconds)";
pub const STATUS_SUBMENU_PROGRESS_BAR: &str = "The next time Gupaxx will update P2Pool stats. Each [*] is 900ms (updates roughly every 54 seconds)";
//-- Benchmarks
pub const STATUS_SUBMENU_YOUR_CPU: &str = "The CPU detected by Gupax";
pub const STATUS_SUBMENU_YOUR_CPU: &str = "The CPU detected by Gupaxx";
pub const STATUS_SUBMENU_YOUR_BENCHMARKS: &str =
"How many benchmarks your CPU has had uploaded to [https://xmrig.com/benchmark] ";
pub const STATUS_SUBMENU_YOUR_RANK: &str =
@ -259,49 +260,49 @@ pub const STATUS_SUBMENU_OTHER_RANK: &str = "The rank of this CPU out of [1567]
pub const STATUS_SUBMENU_OTHER_BENCHMARKS: &str =
"How many benchmarks this CPU has had posted to [https://xmrig.com/benchmark]";
// Gupax
// Gupaxx
pub const GUPAX_UPDATE: &str =
"Check for updates on Gupax, P2Pool, and XMRig via GitHub's API and upgrade automatically";
"Check for updates on Gupaxx, P2Pool, and XMRig via GitHub's API and upgrade automatically";
pub const GUPAX_AUTO_UPDATE: &str = "Automatically check for updates at startup";
pub const GUPAX_SHOULD_RESTART: &str =
"Gupax was updated. A restart is recommended but not required";
"Gupaxx was updated. A restart is recommended but not required";
// #[cfg(not(target_os = "macos"))]
// pub const GUPAX_UPDATE_VIA_TOR: &str = "Update through the Tor network. Tor is embedded within Gupax; a Tor system proxy is not required";
// #[cfg(target_os = "macos")] // Arti library has issues on macOS
// pub const GUPAX_UPDATE_VIA_TOR: &str = "WARNING: This option is unstable on macOS. Update through the Tor network. Tor is embedded within Gupax; a Tor system proxy is not required";
pub const GUPAX_ASK_BEFORE_QUIT: &str = "Ask before quitting Gupax";
pub const GUPAX_ASK_BEFORE_QUIT: &str = "Ask before quitting Gupaxx";
pub const GUPAX_SAVE_BEFORE_QUIT: &str = "Automatically save any changed settings before quitting";
pub const GUPAX_AUTO_P2POOL: &str = "Automatically start P2Pool on Gupax startup. If you are using [P2Pool Simple], this will NOT wait for your [Auto-Ping] to finish, it will start P2Pool on the pool you already have selected. This option will fail if your P2Pool settings aren't valid!";
pub const GUPAX_AUTO_XMRIG: &str = "Automatically start XMRig on Gupax startup. This option will fail if your XMRig settings aren't valid!";
pub const GUPAX_AUTO_XVB: &str = "Automatically start XvB on Gupax startup. This option will fail if your XvB settings aren't valid!";
pub const GUPAX_ADJUST: &str = "Adjust and set the width/height of the Gupax window";
pub const GUPAX_WIDTH: &str = "Set the width of the Gupax window";
pub const GUPAX_HEIGHT: &str = "Set the height of the Gupax window";
pub const GUPAX_AUTO_P2POOL: &str = "Automatically start P2Pool on Gupaxx startup. If you are using [P2Pool Simple], this will NOT wait for your [Auto-Ping] to finish, it will start P2Pool on the pool you already have selected. This option will fail if your P2Pool settings aren't valid!";
pub const GUPAX_AUTO_XMRIG: &str = "Automatically start XMRig on Gupaxx startup. This option will fail if your XMRig settings aren't valid!";
pub const GUPAX_AUTO_XVB: &str = "Automatically start XvB on Gupaxx startup. This option will fail if your XvB settings aren't valid!";
pub const GUPAX_ADJUST: &str = "Adjust and set the width/height of the Gupaxx window";
pub const GUPAX_WIDTH: &str = "Set the width of the Gupaxx window";
pub const GUPAX_HEIGHT: &str = "Set the height of the Gupaxx window";
pub const GUPAX_SCALE: &str =
"Set the resolution scaling of the Gupax window (resize window to re-apply scaling)";
"Set the resolution scaling of the Gupaxx window (resize window to re-apply scaling)";
pub const GUPAX_LOCK_WIDTH: &str =
"Automatically match the HEIGHT against the WIDTH in a 4:3 ratio";
pub const GUPAX_LOCK_HEIGHT: &str =
"Automatically match the WIDTH against the HEIGHT in a 4:3 ratio";
pub const GUPAX_NO_LOCK: &str = "Allow individual selection of width and height";
pub const GUPAX_SET: &str = "Set the width/height of the Gupax window to the current values";
pub const GUPAX_TAB: &str = "Set the default tab Gupax starts on";
pub const GUPAX_TAB_ABOUT: &str = "Set the tab Gupax starts on to: About";
pub const GUPAX_TAB_STATUS: &str = "Set the tab Gupax starts on to: Status";
pub const GUPAX_TAB_GUPAX: &str = "Set the tab Gupax starts on to: Gupax";
pub const GUPAX_TAB_P2POOL: &str = "Set the tab Gupax starts on to: P2Pool";
pub const GUPAX_TAB_XMRIG: &str = "Set the tab Gupax starts on to: XMRig";
pub const GUPAX_TAB_XVB: &str = "Set the tab Gupax starts on to: XvB";
pub const GUPAX_SET: &str = "Set the width/height of the Gupaxx window to the current values";
pub const GUPAX_TAB: &str = "Set the default tab Gupaxx starts on";
pub const GUPAX_TAB_ABOUT: &str = "Set the tab Gupaxx starts on to: About";
pub const GUPAX_TAB_STATUS: &str = "Set the tab Gupaxx starts on to: Status";
pub const GUPAX_TAB_GUPAX: &str = "Set the tab Gupaxx starts on to: Gupaxx";
pub const GUPAX_TAB_P2POOL: &str = "Set the tab Gupaxx starts on to: P2Pool";
pub const GUPAX_TAB_XMRIG: &str = "Set the tab Gupaxx starts on to: XMRig";
pub const GUPAX_TAB_XVB: &str = "Set the tab Gupaxx starts on to: XvB";
pub const GUPAX_SIMPLE: &str = r#"Use simple Gupax settings:
pub const GUPAX_SIMPLE: &str = r#"Use simple Gupaxx settings:
- Update button
- Basic toggles"#;
pub const GUPAX_ADVANCED: &str = r#"Use advanced Gupax settings:
pub const GUPAX_ADVANCED: &str = r#"Use advanced Gupaxx settings:
- Update button
- Basic toggles
- P2Pool/XMRig binary path selector
- Gupax resolution sliders
- Gupax start-up tab selector"#;
- Gupaxx resolution sliders
- Gupaxx start-up tab selector"#;
pub const GUPAX_SELECT: &str = "Open a file explorer to select a file";
pub const GUPAX_PATH_P2POOL: &str = "The location of the P2Pool binary: Both absolute and relative paths are accepted; A red [X] will appear if there is no file found at the given path";
pub const GUPAX_PATH_XMRIG: &str = "The location of the XMRig binary: Both absolute and relative paths are accepted; A red [X] will appear if there is no file found at the given path";
@ -312,7 +313,7 @@ pub const P2POOL_MINI: &str = "Use the P2Pool mini-chain. This
pub const P2POOL_OUT: &str = "How many out-bound peers to connect to? (you connecting to others)";
pub const P2POOL_IN: &str = "How many in-bound peers to allow? (others connecting to you)";
pub const P2POOL_LOG: &str = "Verbosity of the console log";
pub const P2POOL_AUTO_NODE: &str = "Automatically ping the remote Monero nodes at Gupax startup";
pub const P2POOL_AUTO_NODE: &str = "Automatically ping the remote Monero nodes at Gupaxx startup";
pub const P2POOL_AUTO_SELECT: &str =
"Automatically select the fastest remote Monero node after pinging";
pub const P2POOL_BACKUP_HOST_SIMPLE: &str = r#"Automatically switch to the other nodes listed if the current one is down.
@ -334,7 +335,7 @@ You may encounter connection issues with remote nodes which may cause mining per
Running and using your own local Monero node improves privacy and ensures your connection is as stable as your own internet connection. This comes at the cost of downloading and syncing Monero's blockchain yourself (currently 170GB). If you have the disk space, consider using the [Advanced] tab and connecting to your own Monero node.
For a simple guide, see the [Running a Local Monero Node] section on Gupax s GitHub by clicking this message."#;
For a simple guide, see the [Running a Local Monero Node] section on Gupaxx s GitHub by clicking this message."#;
pub const P2POOL_INPUT: &str = "Send a command to P2Pool";
pub const P2POOL_ARGUMENTS: &str = r#"WARNING: Use [--no-color] and make sure to set [--data-api <PATH>] & [--local-api] so that the [Status] tab can work!
@ -356,10 +357,10 @@ pub const P2POOL_NAME: &str = "Add a unique name to identify this node; Only [A-
pub const P2POOL_NODE_IP: &str = "Specify the Monero Node IP to connect to with P2Pool; It must be a valid IPv4 address or a valid domain name; Max length = 255 characters";
pub const P2POOL_RPC_PORT: &str = "Specify the RPC port of the Monero node; [1-65535]";
pub const P2POOL_ZMQ_PORT: &str = "Specify the ZMQ port of the Monero node; [1-65535]";
pub const P2POOL_PATH_NOT_FILE: &str = "P2Pool binary not found at the given PATH in the Gupax tab! To fix: goto the [Gupax Advanced] tab, select [Open] and specify where P2Pool is located.";
pub const P2POOL_PATH_NOT_VALID: &str = "P2Pool binary at the given PATH in the Gupax tab doesn't look like P2Pool! To fix: goto the [Gupax Advanced] tab, select [Open] and specify where P2Pool is located.";
pub const P2POOL_PATH_NOT_FILE: &str = "P2Pool binary not found at the given PATH in the Gupaxx tab! To fix: goto the [Gupaxx Advanced] tab, select [Open] and specify where P2Pool is located.";
pub const P2POOL_PATH_NOT_VALID: &str = "P2Pool binary at the given PATH in the Gupaxx tab doesn't look like P2Pool! To fix: goto the [Gupaxx Advanced] tab, select [Open] and specify where P2Pool is located.";
pub const P2POOL_PATH_OK: &str = "P2Pool was found at the given PATH";
pub const P2POOL_PATH_EMPTY: &str = "P2Pool PATH is empty! To fix: goto the [Gupax Advanced] tab, select [Open] and specify where P2Pool is located.";
pub const P2POOL_PATH_EMPTY: &str = "P2Pool PATH is empty! To fix: goto the [Gupaxx Advanced] tab, select [Open] and specify where P2Pool is located.";
// Node/Pool list
pub const LIST_ADD: &str = "Add the current values to the list";
@ -400,10 +401,10 @@ pub const XMRIG_API_PORT: &str =
pub const XMRIG_TLS: &str = "Enable SSL/TLS connections (needs pool support)";
pub const XMRIG_KEEPALIVE: &str = "Send keepalive packets to prevent timeout (needs pool support)";
pub const XMRIG_THREADS: &str = "Number of CPU threads to use for mining";
pub const XMRIG_PATH_NOT_FILE: &str = "XMRig binary not found at the given PATH in the Gupax tab! To fix: goto the [Gupax Advanced] tab, select [Open] and specify where XMRig is located.";
pub const XMRIG_PATH_NOT_VALID: &str = "XMRig binary at the given PATH in the Gupax tab doesn't look like XMRig! To fix: goto the [Gupax Advanced] tab, select [Open] and specify where XMRig is located.";
pub const XMRIG_PATH_NOT_FILE: &str = "XMRig binary not found at the given PATH in the Gupaxxtab! To fix: goto the [Gupaxx Advanced] tab, select [Open] and specify where XMRig is located.";
pub const XMRIG_PATH_NOT_VALID: &str = "XMRig binary at the given PATH in the Gupaxxtab doesn't look like XMRig! To fix: goto the [Gupaxx Advanced] tab, select [Open] and specify where XMRig is located.";
pub const XMRIG_PATH_OK: &str = "XMRig was found at the given PATH";
pub const XMRIG_PATH_EMPTY: &str = "XMRig PATH is empty! To fix: goto the [Gupax Advanced] tab, select [Open] and specify where XMRig is located.";
pub const XMRIG_PATH_EMPTY: &str = "XMRig PATH is empty! To fix: goto the [GupaxxAdvanced] tab, select [Open] and specify where XMRig is located.";
// XvB
pub const XVB_HELP: &str = "You need to register an account by clicking on the link above to get your token with the same p2pool XMR address you use for payment.";
@ -437,26 +438,26 @@ pub const XVB_ROUND_DONOR_WHALE_MIN_HR: u32 = 100000;
pub const XVB_ROUND_DONOR_MEGA_MIN_HR: u32 = 1000000;
// CLI argument messages
pub const ARG_HELP: &str = r#"USAGE: ./gupax [--flag]
pub const ARG_HELP: &str = r#"USAGE: ./gupaxx [--flag]
--help Print this help message
--version Print version and build info
--state Print Gupax state
--state Print Gupaxxstate
--nodes Print the manual node list
--payouts Print the P2Pool payout log, payout count, and total XMR mined
--no-startup Disable all auto-startup settings for this instance (auto-update, auto-ping, etc)
--reset-state Reset all Gupax state (your settings)
--reset-state Reset all Gupaxxstate (your settings)
--reset-nodes Reset the manual node list in the [P2Pool] tab
--reset-pools Reset the manual pool list in the [XMRig] tab
--reset-payouts Reset the permanent P2Pool stats that appear in the [Status] tab
--reset-all Reset the state, manual node list, manual pool list, and P2Pool stats
To view more detailed console debug information, start Gupax with
To view more detailed console debug information, start Gupaxxwith
the environment variable [RUST_LOG] set to a log level like so:
RUST_LOG=(trace|debug|info|warn|error) ./gupax"#;
pub const ARG_COPYRIGHT: &str = r#"Gupax is licensed under GPLv3.
RUST_LOG=(trace|debug|info|warn|error) ./gupaxx"#;
pub const ARG_COPYRIGHT: &str = r#"Gupaxxis licensed under GPLv3.
For more information, see link below:
<https://github.com/Cyrix126/gupax>"#;
<https://github.com/Cyrix126/gupaxx>"#;
// Unknown Data, replace HumanNumlber::unknown()
pub const UNKNOWN_DATA: &str = "???";

View file

@ -20,7 +20,7 @@ info:
OS | {OS_NAME}
args | {args:?}
commit | {COMMIT}
gupax | {GUPAX_VERSION}
gupaxx | {GUPAX_VERSION}
p2pool | {P2POOL_VERSION} (bundled)
xmrig | {XMRIG_VERSION} (bundled)
uptime | {uptime} seconds

View file

@ -110,8 +110,8 @@ pub fn reset(
Err(_) => code = 1,
}
match code {
0 => println!("\nGupax reset ... OK"),
_ => eprintln!("\nGupax reset ... FAIL"),
0 => println!("\nGupaxx reset ... OK"),
_ => eprintln!("\nGupaxx reset ... FAIL"),
}
exit(code);
}

View file

@ -2,13 +2,13 @@
# Sets up a packaging environment in [/tmp]
# Make sure we're in the [gupax/utils] directory
# Make sure we're in the [gupaxx/utils] directory
set -ex
[[ $PWD = */gupax ]]
[[ $PWD = */gupaxx ]]
# Make sure the folder doesn't already exist
GIT_COMMIT=$(cat .git/refs/heads/main)
FOLDER="gupax_${GIT_COMMIT}"
FOLDER="gupaxx_${GIT_COMMIT}"
[[ ! -e /tmp/${FOLDER} ]]
mkdir /tmp/${FOLDER}

View file

@ -29,22 +29,22 @@ cd skel; check "CD into skel"
# Check that [skel] directory contains everything
# and that the naming schemes are correct
title "Linux folder check"
[[ -f linux/gupax ]]; check "linux/gupax"
[[ -f linux/Gupax.AppImage ]]; check "linux/Gupax.AppImage"
OUTPUT=$(cat linux/Gupax.AppImage)
[[ $OUTPUT = "./gupax" ]]; check "linux/Gupax.AppImage = ./gupax"
[[ -f linux/gupaxx ]]; check "linux/gupaxx"
[[ -f linux/Gupaxx.AppImage ]]; check "linux/Gupaxx.AppImage"
OUTPUT=$(cat linux/Gupaxx.AppImage)
[[ $OUTPUT = "./gupaxx" ]]; check "linux/Gupaxx.AppImage = ./gupaxx"
[[ -f linux/p2pool/p2pool ]]; check "linux/p2pool/p2pool"
[[ -f linux/xmrig/xmrig ]]; check "linux/xmrig/xmrig"
title "macOS-x64 folder check"
[[ -d macos-x64/Gupax.app ]]; check "macos-x64/Gupax.app"
[[ -f macos-x64/Gupax.app/Contents/MacOS/p2pool/p2pool ]]; check "macos-x64/p2pool/p2pool"
[[ -f macos-x64/Gupax.app/Contents/MacOS/xmrig/xmrig ]]; check "macos-x64/xmrig/xmrig"
[[ -d macos-x64/Gupaxx.app ]]; check "macos-x64/Gupaxx.app"
[[ -f macos-x64/Gupaxx.app/Contents/MacOS/p2pool/p2pool ]]; check "macos-x64/p2pool/p2pool"
[[ -f macos-x64/Gupaxx.app/Contents/MacOS/xmrig/xmrig ]]; check "macos-x64/xmrig/xmrig"
title "macOS-arm64 folder check"
[[ -d macos-arm64/Gupax.app ]]; check "macos-arm64/Gupax.app"
[[ -f macos-arm64/Gupax.app/Contents/MacOS/p2pool/p2pool ]]; check "macos-arm64/p2pool/p2pool"
[[ -f macos-arm64/Gupax.app/Contents/MacOS/xmrig/xmrig ]]; check "macos-arm64/xmrig/xmrig"
[[ -d macos-arm64/Gupaxx.app ]]; check "macos-arm64/Gupaxx.app"
[[ -f macos-arm64/Gupaxx.app/Contents/MacOS/p2pool/p2pool ]]; check "macos-arm64/p2pool/p2pool"
[[ -f macos-arm64/Gupaxx.app/Contents/MacOS/xmrig/xmrig ]]; check "macos-arm64/xmrig/xmrig"
title "Windows folder check"
[[ -f windows/Gupax.exe ]]; check "windows/Gupax.exe"
[[ -f windows/Gupaxx.exe ]]; check "windows/Gupaxx.exe"
[[ -f windows/P2Pool/p2pool.exe ]]; check "windows/P2Pool/p2pool.exe"
[[ -f windows/XMRig/xmrig.exe ]]; check "windows/XMRig/xmrig.exe"
@ -54,57 +54,57 @@ DATE=$(date -d @${RNG}); check "DATE ... $DATE"
# Tar Linux Bundle
title "Tar Linux"
mv linux "gupax-$NEW_VER-linux-x64-bundle"; check "linux -> gupax-$NEW_VER-linux-x64-bundle"
tar -czpf "gupax-${NEW_VER}-linux-x64-bundle.tar.gz" "gupax-$NEW_VER-linux-x64-bundle" --owner=hinto --group=hinto --mtime="$DATE"; check "tar linux-bundle"
mv linux "gupaxx-$NEW_VER-linux-x64-bundle"; check "linux -> gupaxx-$NEW_VER-linux-x64-bundle"
tar -czpf "gupaxx-${NEW_VER}-linux-x64-bundle.tar.gz" "gupaxx-$NEW_VER-linux-x64-bundle" --owner=lm --group=lm --mtime="$DATE"; check "tar linux-bundle"
# Tar Linux Standalone
mv "gupax-$NEW_VER-linux-x64-bundle" "gupax-$NEW_VER-linux-x64-standalone"; check "gupax-$NEW_VER-linux-x64-bundle -> gupax-$NEW_VER-linux-x64-standalone"
rm -r "gupax-$NEW_VER-linux-x64-standalone/p2pool"; check "rm gupax-$NEW_VER-linux-x64-standalone/p2pool"
rm -r "gupax-$NEW_VER-linux-x64-standalone/xmrig"; check "rm gupax-$NEW_VER-linux-x64-standalone/xmrig"
tar -czpf "gupax-${NEW_VER}-linux-x64-standalone.tar.gz" "gupax-$NEW_VER-linux-x64-standalone" --owner=hinto --group=hinto --mtime="$DATE"; check "tar linux-standalone"
mv "gupaxx-$NEW_VER-linux-x64-bundle" "gupaxx-$NEW_VER-linux-x64-standalone"; check "gupaxx-$NEW_VER-linux-x64-bundle -> gupaxx-$NEW_VER-linux-x64-standalone"
rm -r "gupaxx-$NEW_VER-linux-x64-standalone/p2pool"; check "rm gupaxx-$NEW_VER-linux-x64-standalone/p2pool"
rm -r "gupaxx-$NEW_VER-linux-x64-standalone/xmrig"; check "rm gupaxx-$NEW_VER-linux-x64-standalone/xmrig"
tar -czpf "gupaxx-${NEW_VER}-linux-x64-standalone.tar.gz" "gupaxx-$NEW_VER-linux-x64-standalone" --owner=lm --group=lm --mtime="$DATE"; check "tar linux-standalone"
# Remove dir
rm -r "gupax-$NEW_VER-linux-x64-standalone"; check "rm linux dir"
rm -r "gupaxx-$NEW_VER-linux-x64-standalone"; check "rm linux dir"
# x64
# Tar macOS Bundle
title "Tar macOS-x64"
mv macos-x64 "gupax-$NEW_VER-macos-x64-bundle"; check "macos-x64 -> gupax-$NEW_VER-macos-x64-bundle"
tar -czpf "gupax-${NEW_VER}-macos-x64-bundle.tar.gz" "gupax-$NEW_VER-macos-x64-bundle" --owner=hinto --group=hinto --mtime="$DATE"; check "tar macos-bundle"
mv macos-x64 "gupaxx-$NEW_VER-macos-x64-bundle"; check "macos-x64 -> gupaxx-$NEW_VER-macos-x64-bundle"
tar -czpf "gupaxx-${NEW_VER}-macos-x64-bundle.tar.gz" "gupaxx-$NEW_VER-macos-x64-bundle" --owner=lm --group=lm --mtime="$DATE"; check "tar macos-bundle"
# Tar macOS Standalone
mv "gupax-$NEW_VER-macos-x64-bundle" "gupax-$NEW_VER-macos-x64-standalone"; check "gupax-$NEW_VER-macos-x64-bundle -> gupax-$NEW_VER-macos-x64-standalone"
rm -r "gupax-$NEW_VER-macos-x64-standalone/Gupax.app/Contents/MacOS/p2pool"; check "rm gupax-$NEW_VER-macos-x64-standalone/Gupax.app/Contents/MacOS/p2pool"
rm -r "gupax-$NEW_VER-macos-x64-standalone/Gupax.app/Contents/MacOS/xmrig"; check "rm gupax-$NEW_VER-macos-x64-standalone/Gupax.app/Contents/MacOS/xmrig/xmrig"
tar -czpf "gupax-${NEW_VER}-macos-x64-standalone.tar.gz" "gupax-$NEW_VER-macos-x64-standalone" --owner=hinto --group=hinto --mtime="$DATE"; check "tar macos-x64-standalone"
mv "gupaxx-$NEW_VER-macos-x64-bundle" "gupaxx-$NEW_VER-macos-x64-standalone"; check "gupaxx-$NEW_VER-macos-x64-bundle -> gupaxx-$NEW_VER-macos-x64-standalone"
rm -r "gupaxx-$NEW_VER-macos-x64-standalone/Gupaxx.app/Contents/MacOS/p2pool"; check "rm gupaxx-$NEW_VER-macos-x64-standalone/Gupaxx.app/Contents/MacOS/p2pool"
rm -r "gupaxx-$NEW_VER-macos-x64-standalone/Gupaxx.app/Contents/MacOS/xmrig"; check "rm gupaxx-$NEW_VER-macos-x64-standalone/Gupaxx.app/Contents/MacOS/xmrig/xmrig"
tar -czpf "gupaxx-${NEW_VER}-macos-x64-standalone.tar.gz" "gupaxx-$NEW_VER-macos-x64-standalone" --owner=lm --group=lm --mtime="$DATE"; check "tar macos-x64-standalone"
# Remove dir
rm -r "gupax-$NEW_VER-macos-x64-standalone"; check "rm macos-x64 dir"
rm -r "gupaxx-$NEW_VER-macos-x64-standalone"; check "rm macos-x64 dir"
# ARM
# Tar macOS Bundle
title "Tar macOS-arm64"
mv macos-arm64 "gupax-$NEW_VER-macos-arm64-bundle"; check "macos-arm64 -> gupax-$NEW_VER-macos-arm64-bundle"
tar -czpf "gupax-${NEW_VER}-macos-arm64-bundle.tar.gz" "gupax-$NEW_VER-macos-arm64-bundle" --owner=hinto --group=hinto --mtime="$DATE"; check "tar macos-arm64-bundle"
mv macos-arm64 "gupaxx-$NEW_VER-macos-arm64-bundle"; check "macos-arm64 -> gupaxx-$NEW_VER-macos-arm64-bundle"
tar -czpf "gupaxx-${NEW_VER}-macos-arm64-bundle.tar.gz" "gupaxx-$NEW_VER-macos-arm64-bundle" --owner=lm --group=lm --mtime="$DATE"; check "tar macos-arm64-bundle"
# Tar macOS Standalone
mv "gupax-$NEW_VER-macos-arm64-bundle" "gupax-$NEW_VER-macos-arm64-standalone"; check "gupax-$NEW_VER-macos-arm64-bundle -> gupax-$NEW_VER-macos-arm64-standalone"
rm -r "gupax-$NEW_VER-macos-arm64-standalone/Gupax.app/Contents/MacOS/p2pool"; check "rm gupax-$NEW_VER-macos-arm64-standalone/Gupax.app/Contents/MacOS/p2pool"
rm -r "gupax-$NEW_VER-macos-arm64-standalone/Gupax.app/Contents/MacOS/xmrig"; check "rm gupax-$NEW_VER-macos-arm64-standalone/Gupax.app/Contents/MacOS/xmrig/xmrig"
tar -czpf "gupax-${NEW_VER}-macos-arm64-standalone.tar.gz" "gupax-$NEW_VER-macos-arm64-standalone" --owner=hinto --group=hinto --mtime="$DATE"; check "tar macos-arm64-standalone"
mv "gupaxx-$NEW_VER-macos-arm64-bundle" "gupaxx-$NEW_VER-macos-arm64-standalone"; check "gupaxx-$NEW_VER-macos-arm64-bundle -> gupaxx-$NEW_VER-macos-arm64-standalone"
rm -r "gupaxx-$NEW_VER-macos-arm64-standalone/Gupaxx.app/Contents/MacOS/p2pool"; check "rm gupaxx-$NEW_VER-macos-arm64-standalone/Gupaxx.app/Contents/MacOS/p2pool"
rm -r "gupaxx-$NEW_VER-macos-arm64-standalone/Gupaxx.app/Contents/MacOS/xmrig"; check "rm gupaxx-$NEW_VER-macos-arm64-standalone/Gupaxx.app/Contents/MacOS/xmrig/xmrig"
tar -czpf "gupaxx-${NEW_VER}-macos-arm64-standalone.tar.gz" "gupaxx-$NEW_VER-macos-arm64-standalone" --owner=lm --group=lm --mtime="$DATE"; check "tar macos-arm64-standalone"
# Remove dir
rm -r "gupax-$NEW_VER-macos-arm64-standalone"; check "rm macos dir"
rm -r "gupaxx-$NEW_VER-macos-arm64-standalone"; check "rm macos dir"
# Zip Windows Bundle
title "Zip Windows"
mv windows "gupax-$NEW_VER-windows-x64-bundle"; check "windows -> gupax-$NEW_VER-windows-x64-bundle"
zip -qr "gupax-${NEW_VER}-windows-x64-bundle.zip" "gupax-$NEW_VER-windows-x64-bundle"; check "zip windows-bundle"
mv windows "gupaxx-$NEW_VER-windows-x64-bundle"; check "windows -> gupaxx-$NEW_VER-windows-x64-bundle"
zip -qr "gupaxx-${NEW_VER}-windows-x64-bundle.zip" "gupaxx-$NEW_VER-windows-x64-bundle"; check "zip windows-bundle"
# Zip Windows Standalone
mv "gupax-$NEW_VER-windows-x64-bundle" "gupax-$NEW_VER-windows-x64-standalone"; check "gupax-$NEW_VER-windows-x64-bundle -> gupax-$NEW_VER-windows-x64-standalone"
rm -r "gupax-$NEW_VER-windows-x64-standalone/P2Pool"; check "rm gupax-$NEW_VER-windows-x64-standalone/p2pool"
rm -r "gupax-$NEW_VER-windows-x64-standalone/XMRig"; check "rm gupax-$NEW_VER-windows-x64-standalone/xmrig"
zip -qr "gupax-${NEW_VER}-windows-x64-standalone.zip" "gupax-$NEW_VER-windows-x64-standalone"; check "zip windows-standalone"
mv "gupaxx-$NEW_VER-windows-x64-bundle" "gupaxx-$NEW_VER-windows-x64-standalone"; check "gupaxx-$NEW_VER-windows-x64-bundle -> gupaxx-$NEW_VER-windows-x64-standalone"
rm -r "gupaxx-$NEW_VER-windows-x64-standalone/P2Pool"; check "rm gupaxx-$NEW_VER-windows-x64-standalone/p2pool"
rm -r "gupaxx-$NEW_VER-windows-x64-standalone/XMRig"; check "rm gupaxx-$NEW_VER-windows-x64-standalone/xmrig"
zip -qr "gupaxx-${NEW_VER}-windows-x64-standalone.zip" "gupaxx-$NEW_VER-windows-x64-standalone"; check "zip windows-standalone"
# Remove dir
rm -r "gupax-$NEW_VER-windows-x64-standalone"; check "rm windows dir"
rm -r "gupaxx-$NEW_VER-windows-x64-standalone"; check "rm windows dir"
# SHA256SUMS + Sign
title "Hash + Sign"
SHA256SUMS=$(sha256sum gupax* | gpg --clearsign --local-user 31C5145AAFA5A8DF1C1DB2A6D47CE05FA175A499); check "Hash + Sign"
SHA256SUMS=$(sha256sum gupaxx* | gpg --clearsign --local-user 8EFFE4A8C0FD4B6D21C3AAB2EC6E5BB401C6362D); check "Hash + Sign"
echo "${SHA256SUMS}" > SHA256SUMS; check "Create SHA256SUMS file"
sha256sum -c SHA256SUMS; check "Verify SHA"
gpg --verify SHA256SUMS; check "Verify GPG"
@ -113,7 +113,7 @@ gpg --verify SHA256SUMS; check "Verify GPG"
title "Clipboard"
clipboard() {
grep -B999 -m1 "^$" CHANGELOG.md
echo "## SHA256SUM & [PGP Signature](https://github.com/hinto-janai/gupax/blob/main/pgp/hinto-janai.asc)"
echo "## SHA256SUM & [PGP Signature](https://github.com/cyrix126/gupaxx/blob/main/pgp/cyrix126.asc)"
echo '```'
cat SHA256SUMS
echo '```'

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash
# prepare new [gupax] version in:
# prepare new [gupaxx] version in:
# 1. README.md
# 2. CHANGELOG.md
# 3. Cargo.toml
@ -9,7 +9,7 @@
set -ex
sudo -v
[[ $1 = v* ]]
[[ $PWD = */gupax ]]
[[ $PWD = */gupaxx ]]
# get old GUPAX_VER
OLD_VER="v$(grep -m1 "version" Cargo.toml | grep -o "[0-9].[0-9].[0-9]")"