ACR Updater[CLI]
2014-01-06, 01:06 AM
#1
ACR Updater[CLI]
I have finished implementing what should be a fully featured ACR updater in python3(requires you to have python3 installed to run it). It checks the server for the latest version and downloads it based on Operating System. It will save your data, mods, and configs across updates so you don't have to worry about reinstalling everything.

There is also a mod manager built into it(Though it only supports installing from local mods for now since I broke my server). It will install the mods without overwriting the main files and update the batch/shell script with the new commands to load the mod.

I have tested it and with the following commands, they download the most recent ACR with the fn2000 and mapfix mods and then run it(assumes it runs in the same directory as updater.py and the zips for the mods).

Code:
updater.py init
updater.py updateacr
updater.py installlocalmod fn2000-1.0.zip
updater.py installlocalmod mapfix-1.0.zip
updater.py runclient

Download is here https://github.com/actf/updater/raw/master/updater.py
Github page is here if you want to contribute https://github.com/actf/updater

Since this is also a mod manager I feel I should give a shoutout to the other mod manager out there. rXn made a mod manager with the qt framework https://acrf.victorz.ca/thread-1227.html It appears to overwrite files though so it does not use the mod system. This does save you the hassle of having to edit the batch/shell script(or let a program do it for you), but it also makes it impossible to remove mods.
Post Reply Quote this message in a reply
2014-01-06, 01:32 AM
#2
RE: ACR Updater[CLI]
python3 is so swag (took a course on it, bash scripting, and linux last quarter) Big Grin

[Image: name_zps459dc421.gif]
[Image: cooltext1206791925_zps58ab60b5.gif]

"C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off." - Bjarne Stroustrup
Post Reply Quote this message in a reply
2014-01-06, 11:33 AM
#3
RE: ACR Updater[CLI]
I used to hate it, but most things are moving over to it from python2 so I finally learned it. It has it's upsides. It's much better than shell imo.
Post Reply Quote this message in a reply
2014-01-06, 12:46 PM
#4
RE: ACR Updater[CLI]
I have to admit I really forget the thing with the mod dir. Anyway, I am going to add this (together with an "installed mods" tab and a method to remove the mods. Although the main work is network stuff (get somne -currently empty- lists and read the download link and so on) it is quite Qt-spceific, I think that it could save much work if my mod manager just runs your command. I once tried to rewrite the former Launcher in Mono/C#.NET, but I failed. So why don't put it together?

The C Programming Language: combines the flexibility of assembly language with the power of assembly language.
Post Reply Quote this message in a reply
2014-01-06, 01:06 PM
#5
RE: ACR Updater[CLI]
That sounds great. I don't want to write a GUI and it shouldn't be too hard to run my script as a backend.
Post Reply Quote this message in a reply
2014-01-07, 07:02 AM
#6
RE: ACR Updater[CLI]
Been awhile since I had free time, but I can help with the development on this if you would like. My last release... https://code.google.com/p/assaultcuber-updater/
Updated to download ACR 2.6.0

Download the ACR Launcher here.
Post Reply Quote this message in a reply
2014-01-07, 11:22 AM
#7
RE: ACR Updater[CLI]
I actually figured out how to get the latest update by looking at your updater Tongue
It would be great if you could help out with the GUI side of the updater.
Post Reply Quote this message in a reply
2014-01-07, 12:53 PM
#8
RE: ACR Updater[CLI]
Awesome, thanks Playfrog

DSO
Windows 8 fanboy =D
"Not dead, can't quit"
Post Reply Quote this message in a reply
2014-01-07, 12:59 PM (This post was last modified: 2014-01-07, 02:51 PM by rXn.)
#9
RE: ACR Updater[CLI]
@Playfrog4u :
Your updater is quite nice, but for the platform independence I would choose Qt or Gtk, although I have no experience with Gtk. The .Net Framework is quite fine, but your tool does not work with Mono (an open implementation of .Net, esp. for Linux/Unix/Mac) and I have to admit that I terribly failed rewriting your Launcher in Mono/C#. Anyway, as it was the network stuff that finally killed me, I think the rest is quite nice and possible.
Anyway, I myself vote for Qt, as it is easy, platform-independent and closely linked to many other C++ things (fe they rewrote the <string> type as a class in <QString> to simplify.)
Second would be Mono/C#, although it has quite big libs to carry with it.

//Edit: I just saw that Mono has also some kind of Vb.Net 2005 clone, but I still vote for C++/#
//Edit2: What about python/Tinker GUIs? Any experince? There is also Qt for python, called PyQt. But that would be an additional set of libs to carry...

I know, dont answer your own posts...who cares...
I am currently creating an UI for the launcher (Only graphics, no code at this moment) that might also be used in pyhton. I think I will update tomorrow, take it as a suggestion, but I had some nice ideas today Tongue

The C Programming Language: combines the flexibility of assembly language with the power of assembly language.
Post Reply Quote this message in a reply
2014-01-07, 03:55 PM
#10
RE: ACR Updater[CLI]
I would vote for C++/Qt
I've only ever used python for scripting so I'm not sure about using PyQt(there's also the problem of most people not having python3 installed if they aren't on linux).
Post Reply Quote this message in a reply


Forum Jump: