some fixes of entries, datatable html and git archive python code

This commit is contained in:
Trilarion
2018-06-11 09:44:45 +02:00
parent 8220365691
commit 81228e509b
19 changed files with 149 additions and 120 deletions

View File

@ -0,0 +1,5 @@
Clones and/or pulls many git repositories from the open source games entries, so that one has an archive of them.
Currently requires at least 35 GB space!
Run update.py to update the archive. Git URLs are stored in archives.json.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,68 @@
"""
Clones and/or pulls all the gits listed in archives.csv
Requires: git executable in the path
Warning: This may take a long time on the first run and may need a lot of storage space!
"""
import os
import json
import subprocess
def read_text(file):
"""
Reads a whole text file (UTF-8 encoded).
"""
with open(file, mode='r', encoding='utf-8') as f:
text = f.read()
return text
def derive_folder_name(url):
github = 'https://github.com/'
if url.startswith(github):
parts = url[len(github):].split('/')
parts.insert(0, 'github')
folder = '.'.join(parts)
return folder
def clone(url, folder):
result = subprocess.run(["git", "clone", url, folder])
if result.returncode:
print(result)
def pull():
result = subprocess.run(["git", "pull", "--all"])
if result.returncode:
print(result)
if __name__ == '__main__':
# get this folder
root_folder = os.path.realpath(os.path.dirname(__file__))
# read archives.json
text = read_text(os.path.join(root_folder, 'archives.json'))
archives = json.loads(text)
# loop over archives
for archive in archives:
folder = os.path.join(root_folder, derive_folder_name(archive))
# if not existing do the initial checkout
if not os.path.isdir(folder):
os.chdir(root_folder)
clone(archive, folder)
# pull all
os.chdir(folder)
pull()