Commit graph

266 commits

Author SHA1 Message Date
hinto-janaiyo
212baf93ec
command: implement basic data structures, functions
This adds the basic wireframe of how processes will be handled.
The data/funcs in [command.rs] will be the API the main GUI thread
uses to talk to child processes. The process thread will loop
every 1 second to read/write the necessary data (stdout, stdin),
and handle signals from the GUI thread (kill, restart, etc).
2022-11-28 12:05:09 -05:00
hinto-janaiyo
aff46a96d0
p2pool: add sized, scrollable, selectable but not mutable console
This replaces the old mutable [TextEdit] with an immutable one
with a scroll area wrapped in a [Frame]. Passing a [&str] instead
of a [String] to [TextEdit] makes it auto-select only and not
mutable by the user. The background color is changed because the
immutable [TextEdit] has a hardcoded light gray color (same as the
general ui background).
2022-11-27 21:52:29 -05:00
hinto-janaiyo
9576a94498
main/update: add [Restart] state, set name to yellow if updated 2022-11-27 15:20:28 -05:00
hinto-janaiyo
b85dcd908d
xmrig: tls+keepalive default false (for p2pool) 2022-11-26 22:41:08 -05:00
hinto-janaiyo
bd9c543c08
xmrig: reorder "rig" to be last in list 2022-11-26 22:38:18 -05:00
hinto-janaiyo
f02a05e0b0
cargo cleanup 2022-11-26 22:26:32 -05:00
hinto-janaiyo
29a62f638a
app: resize only once on width diff, set static button size at init
A [must_resize] and [ctx.is_pointer_over_area()] is now used to
indicate we need a resizing. This makes it so when a user is
resizing the width of Gupax, the heavy [init_text_styles()] func
will only get called once when the user hovers over the GUI.

The button size is also now set in that function so it doesn't
have to be called in every separate tab.
2022-11-25 12:01:52 -05:00
hinto-janaiyo
4d4d2f1a42
main: implement [--reset-pools] 2022-11-24 21:06:29 -05:00
hinto-janaiyo
290db4b95b
update: sanity check p2pool/xmrig path from user before starting
Define a strict list [&str; 4] of valid path endings for p2pool/xmrig.
This prevents users (for some reason) inputting a path to some
other (maybe very important) file which Gupax would have completely
overridden with the update binary. Windows paths end with [.exe].
2022-11-24 20:51:18 -05:00
hinto-janaiyo
6af2ffcc16
Cargo update + clippy lint fixes 2022-11-23 23:03:56 -05:00
hinto-janaiyo
e76e9e91ab
add utils/skel 2022-11-23 22:32:17 -05:00
hinto-janaiyo
c25cbacb46
[Simple/Advanced] for [Gupax/XMRig] tabs 2022-11-23 16:50:15 -05:00
hinto-janaiyo
a65bbf7a1c
node: add plowsof to community node list 2022-11-22 23:10:06 -05:00
hinto-janaiyo
14672bfbba
prepare v0.7.0 2022-11-22 23:02:05 -05:00
hinto-janaiyo
8ddf603e94
utils: add package.sh 2022-11-22 13:58:39 -05:00
hinto-janaiyo
20c7542189
v0.5.0 2022-11-22 10:12:16 -05:00
hinto-janaiyo
e8a01e71b9
update: consolidate upgrade/rename loop
Since p2pool/xmrig could be running as well, this also applies the
windows old binary rename code to p2pool/xmrig.
2022-11-21 20:54:19 -05:00
hinto-janaiyo
88e172a2e3
p2pool: refine ping auto_select 2022-11-21 20:11:31 -05:00
hinto-janaiyo
0b8d65ae6e
gupax: consolidate FileWindow thread into separate function 2022-11-21 19:57:36 -05:00
hinto-janaiyo
9e03b3caad
cargo/tor/p2pool: clean deps, warn macos arti, fix node overflow
Cargo: Cleanup unused dependencies, enable some build optimizations

Tor: Arti doesn't seem to work on macOS
Even a bare Arti+Hyper request doesn't seem to work, so it's
probably not something to do with Gupax. A lot of issues only
seem to popup in a VM (OpenGL, TLS) even though on bare metal
Gupax runs fine, so Tor might work fine on real macOS but I don't
have real macOS to test it. VM macOS can't create a circuit, so,
disable by default and add a warning that it's unstable.

P2Pool: Let selected_index start at 0, and only +1 when printing
to the user, this makes the overflow math when adding/deleting a
lot more simple because selected_index will match the actual index
of the node vector
2022-11-21 17:25:38 -05:00
hinto-janaiyo
3b37ac7be3
log: date -> sec.milli since init 2022-11-20 20:26:50 -05:00
hinto-janaiyo
42c89fcdd2
node: handle [write!] error 2022-11-20 14:46:43 -05:00
hinto-janaiyo
f2852549c2
update/ping: consolidate code in *::spawn_thread() 2022-11-20 14:20:25 -05:00
hinto-janaiyo
d0ced90bb1
main/disk: get OS data path only once, pass ref for [state/node] 2022-11-20 13:31:00 -05:00
hinto-janaiyo
7a5fe24276
disk: add [ErrorState] handling for disk errors 2022-11-19 22:49:15 -05:00
hinto-janaiyo
e8c41fceb3
main: prevent overflowing p2pool manual node index 2022-11-19 13:35:28 -05:00
hinto-janaiyo
2f6bb53027
p2pool: use indexing for nodes instead of for loop comparisons 2022-11-19 13:03:33 -05:00
hinto-janaiyo
ff98b2a303
update: recreate tor client on failure in metadata loop 2022-11-19 09:43:38 -05:00
hinto-janaiyo
14c7664177
Update CHANGELOG.md 2022-11-18 21:47:14 -05:00
hinto-janaiyo
1b96d3ba02
p2pool: implement async node ping in GUI 2022-11-18 14:30:55 -05:00
hinto-janaiyo
8a31a707d9
node: implement async ping 2022-11-17 22:45:57 -05:00
hinto-janaiyo
adaaca394a
gupax: disable FileSelector ui if thread exists 2022-11-17 16:53:55 -05:00
hinto-janaiyo
51df689cb0
gupax: add [FileWindow] selector for p2pool/xmrig path 2022-11-17 13:03:45 -05:00
hinto-janaiyo
addf5ad60e
update: use compiled + updated version in gupax version comparison
If the built-in compiled version of Gupax is the only version
getting compared when updating, an old Gupax instance will always
think there's a new version even if the user already updated and
the actual binaries are swapped. To prevent forcing users to
restart, the built-in compiled version gets compared as well as
the version stored in [Arc<Mutex<Version>>], which should get
updated in a successful Gupax update.
2022-11-16 21:14:21 -05:00
hinto-janaiyo
bd6f369b56
p2pool: use [Arc<Mutex<Ping>>] as intermediary for node auto-select 2022-11-16 17:41:41 -05:00
hinto-janaiyo
1b85e59530
cleanup cargo warnings 2022-11-16 14:40:25 -05:00
hinto-janaiyo
50fff5c311
main: implement [ErrorState] checks in main() 2022-11-16 14:07:27 -05:00
hinto-janaiyo
a13e6d689b
optimize [.lock()], add index counter to p2pool manual nodes 2022-11-15 21:22:15 -05:00
hinto-janaiyo
d06cb08940
implement [--reset], add [ErrorState] for fullscreen ferris error 2022-11-15 16:29:05 -05:00
hinto-janaiyo
6b24a60084
add ed25519 PGP key 2022-11-14 22:11:22 -05:00
hinto-janaiyo
c4311acdec
main: more strict [gupax_update_] deletion with regex 2022-11-14 22:11:00 -05:00
hinto-janaiyo
4564070d92
p2pool: prevent deleting [0] node_vec and [panic!] 2022-11-14 22:10:19 -05:00
hinto-janaiyo
9faf0fc9f5
p2pool: add [Advanced], add [node.toml] database, add char limit 2022-11-13 21:56:25 -05:00
hinto-janaiyo
3f4124622c
add [init_auto()] for auto-* options 2022-11-10 23:42:57 -05:00
hinto-janaiyo
9638f9dc5b
p2pool: add [Ping] into GUI, add [simple], add address regex check 2022-11-10 21:20:31 -05:00
hinto-janaiyo
22a03a6034
os: fix platform specific issues 2022-11-02 18:18:41 -04:00
hinto-janaiyo
b64e1e3a46
update: save [Version] to state, use runtime [og: State]
[og: State] is now completely wrapped in an [Arc<Mutex>] so that
when the update is done, it can [.lock()] the CURRENT runtime
settings of the user and save to [gupax.toml] instead of using an
old copy that was given to it at the beginning of the thread.

In practice, this means users can change settings around during
an update and the update finishing and saving to disk won't be
using their old settings, but the current ones. Wrapping all of
[og: State] within in [Arc<Mutex>] might be overkill compared to
message channels but [State] really is just a few [bool]'s, [u*],
and small [String]'s, so it's not much data.

To bypass a deadlock when comparing [og == state] every frame,
[og]'s struct fields get cloned every frame into separate
variables, then it gets compared. This is also pretty stupid, but
again, the data being cloned is so tiny that it doesn't seem to
slow anything down.
2022-11-02 13:58:44 -04:00
hinto-janaiyo
20f5e2d917
icons: custom icon per OS, build.rs, cargo-bundle 2022-10-31 17:03:59 -04:00
hinto-janaiyo
f83bf5e2cc
egui: fix windows VM OpenGL panics, allow [F11] fullscreen 2022-10-29 21:56:17 -04:00
hinto-janaiyo
adaa3a8a42
update: use [og: State] instead of [state] for Tor bool 2022-10-28 16:14:43 -04:00