Commit graph

124 commits

Author SHA1 Message Date
hinto.janai
bf9c1eea19
Edit name 2023-02-26 11:44:25 -05:00
hinto-janaiyo
296e6c2413
v1.1.2 2023-02-06 21:55:33 -05:00
hinto-janaiyo
c592f0c9af
only use wgpu backend for Windows 2023-02-06 19:41:17 -05:00
hinto-janaiyo
703b16c324
switch eframe rendering backend from glow to wgpu
The `glow` backend crashes on certain CPU-based graphics, particularly,
Windows running a CPU with integrated graphics using the basic
Microsoft Display Adapter driver.

`wgpu` seems to work everywhere.
2023-02-06 12:40:14 -05:00
hinto-janaiyo
55f8c24cc7
helper: localhost into 127.0.0.1 for xmrig 2023-02-06 09:17:09 -05:00
hinto-janaiyo
3fd5edc314
Remote Node: fix UI and backend functions for remote nodes 2023-01-25 22:42:47 -05:00
hinto-janaiyo
786b300623
main: reduce top/bottom bar size
This should generally help some spacing issues with the UI and
prevent the [Status/P2Pool] square from expanding out.
2023-01-22 21:30:21 -05:00
hinto-janaiyo
5c6b11a0d4
Merge pull request #10 from maddymodd/update-text-removal
Remove the up-to-date text
2023-01-06 16:21:04 +00:00
rosedaler
35fd98d0ca Update main.rs 2023-01-04 11:55:05 -05:00
rosedaler
6b3ae3ea5e Fix spelling of a term, also update gitignore 2023-01-04 10:24:35 -05:00
hinto-janaiyo
de033260e6
v1.1.0 2023-01-03 15:42:09 -05:00
hinto-janaiyo
1301d1a283
v1.1.0: Merge 'status' branch 2023-01-03 12:21:22 -05:00
hinto-janaiyo
6430146fe5
Status Submenu: add [--payouts] & [--reset-payouts]
Prints and resets the GupaxP2poolApi [p2pool] files.
2023-01-02 13:32:55 -05:00
hinto-janaiyo
af688427c7
Status Submenu: fix some clippy warnings 2023-01-01 18:57:11 -05:00
hinto-janaiyo
f97935d1e8
Status Submenu: remove [Monero] submenu, fix [P2Pool] spacing
There's not much interesting data I could display that regular
Monero GUI or a block explorer can't do, so I'm scrapping the
[Monero] tab. Maybe it'll come back if I rewrite [Status] to include
graphs (never).

The [P2Pool] submenu is pretty much done, this changed the spacing
to make the logs larger and so all the elements fit correctly.
2023-01-01 14:51:30 -05:00
hinto-janaiyo
e42e776f00
main: update absolute paths before starting processes
Some situations won't update the path and so starting processes
didn't do anything and failed, this makes sure we have a valid
path before starting.
2022-12-30 19:29:30 -05:00
hinto-janaiyo
e8751842ce
Status Submenu: Add [Status/P2Pool] UI and data 2022-12-30 19:22:43 -05:00
hinto-janaiyo
04d270b37f
main: properly show "Okay|Panic" after initial disk error
When Gupax can't read disk files at startup, it will [Error],
with an option to reset the state file, the user is given two
options [Yes] or [No].

Gupax's global error screen system ignores new errors from
overriding the current IF the current is a [Panic]. This makes
sure the worst errors stay on screen.

This also means after clicking [Yes], it will get ignored and the
screen won't change. So, allow for certain buttons to pass through.

I should probably re-make this whole global error screen system,
it's pretty much a global variable anyone can mutate randomly.
2022-12-29 17:23:49 -05:00
hinto-janaiyo
553081d2aa
Status Submenu: add basic [PayoutView] GUI <-> API UI 2022-12-29 17:03:29 -05:00
hinto-janaiyo
30d8968dd8
Submenu Status: make regex more precise 2022-12-28 22:46:52 -05:00
hinto-janaiyo
19b5a2790b
Status Submenu: add macros!()
Writing [a.lock().unwrap().b.lock().unwrap()] sucks, so these are
some macros that are for common situations. This commit also has
a [sed] replace on all previous code that _could_ have been a macro,
which they all are now.

Hopefully nothing breaks :D
2022-12-28 22:03:45 -05:00
hinto-janaiyo
46b528ecbe
Status Submenu: separate [Regex], [AtomicUnit], [PayoutOrd]
This fixes some funcs, tests and separates some structs into separate files.
2022-12-28 16:04:26 -05:00
hinto-janaiyo
a66e52bee5
Status Submenu: add submenu UI to [Status] tab 2022-12-27 16:29:12 -05:00
hinto-janaiyo
6b74e20347
Status Submenu: add [Status] to [disk::State] 2022-12-27 12:58:46 -05:00
hinto-janaiyo
a6222bfa73
Status Submenu: add new API reads in P2Pool watchdog loop
This adds all necessary functions/conversions/serde/tests for the
new APIs. It also includes the actual reads inside the watchdog loop.

Every loop, [tick] will increment by 1. At [60], the watchdog
will attempt to read and parse the [network] & [pool] APIs.
Since the loop is [900ms], this means this will occur around
every 54 seconds. [tick] gets reset upon successful read/parsing.
2022-12-27 09:38:02 -05:00
hinto-janaiyo
2846441049
Status Submenu: add [GupaxP2poolApi] to [disk.rs], add to [App] 2022-12-26 17:37:45 -05:00
hinto-janaiyo
7d552c1fb8
Status Submenu: separate [Human*] from helper into [human.rs] 2022-12-26 14:02:27 -05:00
hinto-janaiyo
9d66a20360
status: enable p2pool/xmrig "Image" stats
These couldn't be fit in before since there wasn't enough space.
They still can't all fit in, but the most important ones can be
after adjusting the font sizes and height spacing.
2022-12-23 14:06:25 -05:00
hinto-janaiyo
3991c26d76
p2pool/xmrig: red/green [Start] on errors with solution in tooltip 2022-12-23 11:41:43 -05:00
hinto-janaiyo
b5add2f4bf
main: add more info to debug screen 2022-12-23 09:44:20 -05:00
hinto-janaiyo
17feda5cb3
macos: warn user if gupax is in [/private] directory
macOS moves "dangerous" applications into a read-only [/private]
filesystem. This messes up with the updater and default P2Pool and
XMRig paths.

If [/private] is detected, show a panic screen upon Gupax startup
telling the user to move it to [/Applications]. This _seems_ to
make macOS relax a little (after an arbitrary amount of time...)
2022-12-22 11:56:25 -05:00
hinto-janaiyo
6c0ba2be9a
main: add [d] debug info screen 2022-12-19 00:00:06 -05:00
hinto-janaiyo
3db1adce75
linux: add [--features distro] build flag 2022-12-18 10:22:32 -05:00
hinto-janaiyo
233ccd62ac
helper: add [HumanTime] & [HumanNumber] #[test]s 2022-12-17 20:51:50 -05:00
hinto-janaiyo
e35f5b243b
Add #[test]s, fix [State::merge()], fix [quit_twice] 2022-12-17 17:18:06 -05:00
hinto-janaiyo
03411bdb5e
main: fix [About] spacing 2022-12-17 13:42:04 -05:00
hinto-janaiyo
7439c89a52
main: quit if [ALT+F4] on [ask_before_quit], add [save_before_quit]
If user clicked the [X] or [ALT+F4] while on the [ask_before_quit]
screen, it'll actually exit now.

The [save_before_quit] option actually... saves before quitting now.
No cloning since we're exiting and no [ErrorState] setting on errors.
The console logs will show if a save error happens.
2022-12-17 11:00:32 -05:00
hinto-janaiyo
166c89a8d1
disk: fix serializing quotes in strings 2022-12-16 22:38:46 -05:00
hinto-janaiyo
3ac0b98802
disk: handle some [.unwrap()]s correctly 2022-12-16 19:16:16 -05:00
hinto-janaiyo
ddec9fcb6d
cargo check/clippy fixes 2022-12-16 16:46:06 -05:00
hinto-janaiyo
29445e1bd1
keys/p2pool/xmrig: change key shortcuts, check for [ACCEPTABLE_*]
Keyboard shortcuts [Left] & [Right] were clobbering the
[TextEdit] left/right movement, so they are now [Z/X].
The shortcuts also look to make sure a TextEdit isn't
in focus so that [S/R/Z/X] can actually be typed.

P2Pool/XMRig now make sure the path ends with an [ACCEPTABLE_*]
value (e.g: P2pool, P2POOL) before enabling the [Start] UI.
2022-12-16 10:30:57 -05:00
hinto-janaiyo
aad1a26e1e
Add to Simple/Advanced README 2022-12-15 23:17:40 -05:00
hinto-janaiyo
f65ce9a1b8
main: allow [.] in [name] regex
[GUPAX_VERSION_UNDERSCORE] was used as the XMRig [Rig], which didn't
allow [.] (Gupax_v1.0.0), so allow for dots in the [name] regex.
2022-12-15 18:50:50 -05:00
hinto-janaiyo
055f498a5d
Add to Advanced README 2022-12-15 13:39:14 -05:00
hinto-janaiyo
631e4cc2db
helper: optimize PTY output parsing
(Stupid) Problem (caused by me):
--------------------------------
Up to 56million bytes of P2Pool/XMRig output were being held in memory
so they could be parsed. P2Pool output is the only one that needs
parsing as well, so double bad.

(Obvious) Solution:
-------------------
For XMRig:
Just don't write to an extra [String] buffer.

For P2Pool:
Parse the output, then... toss it out? You don't need the output
anymore after you parsed the values out, e.g: `Payouts`, `XMR Mined`.
Once they are parsed, add them to the current values instead of
completely overwriting them and then toss out the log buffer.

Now Gupax doesn't use stupid amounts of memory holding what is
essentially dead logs we already parsed. The parsing will be a lot
cheaper too since we aren't parsing the entire thing over and over
again (it was already pretty fast though).
2022-12-14 17:37:29 -05:00
hinto-janaiyo
d3bbe2ece2
cargo check/clippy fixes 2022-12-13 23:05:13 -05:00
hinto-janaiyo
2b80aa0277
v0.9.0
Fixes:
    - Up/Down only work if UI is enabled
    - Re-pushed [P2POOL_API_PATH] to popped relative path
      but only after giving the popped path to P2Pool
          1. [/tmp/gupax/p2pool/p2pool] -> [/tmp/gupax/p2pool]
          2. Give that to P2Pool
          3. [/tmp/gupax/p2pool] -> [/tmp/gupax/p2pool/local/stats]
          4. Give that to the watchdog (so it can read it)
2022-12-13 15:06:07 -05:00
hinto-janaiyo
9eb49b6dbd
p2pool/xmrig: handle custom arg [--no-color], API ip/port/path 2022-12-13 12:44:57 -05:00
hinto-janaiyo
79b0361152
helper/main: fix [Arc<Mutex>] deadlocks, add keyboard shortcuts
There was a deadlock happening between the [Helper]'s [gui_api_p2pool]
and the GUI's [gui_api_p2pool], since the locking order was different.
The watchdog loop locking order was fixed as well. This was a pain to
track down, better than a data race... I guess.

Oh and keyboard shortcuts were added in this commit too.

Comment from code:

// The ordering of these locks is _very_ important. They MUST be in sync
// with how the main GUI thread locks stuff or a deadlock will occur
// given enough time. They will eventually both want to lock the [Arc<Mutex>]
// the other thread is already locking. Yes, I figured this out the hard way,
// hence the vast amount of debug!() messages.
//
// Example of different order (BAD!):
//
// GUI Main       -> locks [p2pool] first
// Helper         -> locks [gui_api_p2pool] first
// GUI Status Tab -> trys to lock [gui_api_p2pool] -> CAN'T
// Helper         -> trys to lock [p2pool] -> CAN'T
//
// These two threads are now in a deadlock because both
// are trying to access locks the other one already has.
//
// The locking order here must be in the same chronological
// order as the main GUI thread (top to bottom).
2022-12-13 10:14:26 -05:00
hinto-janaiyo
128fa500bb
v0.9.0 (maybe) 2022-12-12 17:24:05 -05:00