But it has a few flaws in it...
- Why are you using screen and not creating a service for sinusbot?
With a service it would automatically restart after you restart your server.
- Also you're seemingly setting the sinusbot port on port 0 instead of the default one.
- You're checking if the command python exists but you don't check the python version since yt-dlp only supports python 3.6+
- You're starting sinusbot with the override-password parameter. You should try to read the output and get the generated password out of it. (Simply more secure for stupid/lazy people )
- You're script works only on debian based systems (not really a flaw, but you should at least check for things like apt before doing anything)
- You should check for other dependencies like the kernel version and what virtualization is used (if any).
Why virtualization check? For OpenVZ based systems, you can't update the kernel and most (if not all) systems are using a very old kernel.
- From where do you get the version info for the latest version?
- You're setting the sinusbot directory as readable for everyone. That's a very big nogo for any linux system
What I like about your script:
- You're asking and warning before deleting the lock file (even though you should invert the y/n selection. If I would write an a (for abort) or let it empty as the answer you delete the file)
- You let the administrator choose the desired port, that he wants to use.
Those only a few things I spotted during a quick glance over your script.
And why is your script clearer?
And why are you thinking, there are more functions in your script than in the official?
Sure, you can select yt-dlp or youtube-dl and which ts3 client version to use (both options are a bit stupid in my opinion) but the official one supports multiple operating systems and you can choose between discord+teamspeak or only discord.