multitheftauto / mtasa-blue

Multi Theft Auto is a game engine that incorporates an extendable network play element into a proprietary commercial single-player game.
https://multitheftauto.com
GNU General Public License v3.0
1.4k stars 431 forks source link

Ship Windows & Linux servers with new Update.exe #3556

Open Fernando-A-Rocha opened 3 months ago

Fernando-A-Rocha commented 3 months ago

Is your feature request related to a problem? Please describe.

The procedure to update a Windows or Linux MTA:SA server involves fetching the server package (DLLs and executable) from the multitheftauto.com (various possibilities: nightly.multitheftauto.com / linux.multitheftauto.com), extracting or running an Installer Exe with various steps until the update is concluded, depending on the OS.

Describe the solution you'd like

It would be a good QoL addition to have an Updater executable/script on the same level as MTA Server.exe that performs the fetching and extraction of the desired binaries.

It could open a terminal window, asking which version the user wants to update the server to (e.g. 1 - Auto-update default, 2 - Auto-update nightly versions according to https://nightly.mtasa.com/ver/).

Saves everyone time and can even help in simpler automation.

Easy method for new server owners who may be prompted/asked to update.

Describe alternatives you've considered

-

Additional context

-

Security Policy

Xenius97 commented 3 months ago

Create a bat script and use 7z to unpack .exe, i'm using this method since 2022 and works fine.

7z.exe x server.exe -y -oupdater > nul

I've write a script, u paste file link in and powershell downloads & 7z unpacking and updating.

For linux is easier, just download zip and unpack & copy where u want

Fernando-A-Rocha commented 3 months ago

Surely you can make a script, but idealling it should automatically do fetching latest version from the Internet, downloading and extracting the files.

Fernando-A-Rocha commented 3 months ago

Idea: Updating feature could be built into the server executable. This way, it can be called by running the program with the parameter -update or similar.