benank / everyone.dance

A realtime score sharing system for Stepmania. ⚠️ NOTE: This service is deprecated and no longer works, but you can still self host it.
https://everyone.dance
GNU General Public License v3.0
15 stars 1 forks source link

Linux (and mac) support #6

Closed geefr closed 3 years ago

geefr commented 3 years ago

Opening the PR early for feedback/discussion area

Disclaimer: I'm a C++ engineer by trade, will likely make javascript faux-pas

Linux status:

Mac status:

My dev system is Linux Mint 20.x, I assume the linux/mac packages can be built on windows as well?

On a side note - Are releases currently being build by hand, and would you like github actions setup for the repo?

benank commented 3 years ago

Great stuff so far!

In terms of installation packages, I'm not sure how they work on Linux/Mac, but Windows needs it to be signed and that costs extra money, which is why it's just an executable right now.

I was able to make the Linux version on Windows but not the Mac version.

Releases are currently being built by hand, yep! I'd love to set up github actions to automate that.

geefr commented 3 years ago

Alright, if I didn't break anything in that last commit, and the changes aren't terrible style-wise for javascript I think that's good enough for the first Linux/Mac release. At least on my laptop I extracted the archive, ran it, installed, and got score updates out of sm.

Mainly just moved code around, but added in 'os' to be able to work out what platform it's running on. The SMInstallation class may be a bit unecesarrily stateful, but I couldn't work out how to just do a bunch of functions without wrapping them in a class, fell back to objectified/stateful approach.

benank commented 3 years ago

Thanks! Turns out that you did break things (as I think defaulting to StepMania 5 would be better than unknown - everyone loves to rename their install dirs, and the default doesn't include "5.0", but rather just "5").

The rest of it seems pretty solid. I'm going to merge it and fix the dir default case and will release a new build (for all platforms) soon.