Add steamwarci.yml
This commit is contained in:
69
build.py
Normal file
69
build.py
Normal file
@ -0,0 +1,69 @@
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
import hashlib
|
||||
import time
|
||||
import zipfile
|
||||
|
||||
# https://packs.steamwar.de/hello.txt
|
||||
|
||||
current_dir = os.getcwd()
|
||||
|
||||
def getVersions():
|
||||
directories = [name for name in os.listdir(current_dir) if os.path.isdir(os.path.join(current_dir, name)) and not name.startswith(".")]
|
||||
packVersions = []
|
||||
for s in directories:
|
||||
try:
|
||||
num = int(s)
|
||||
packVersions.append(num)
|
||||
except ValueError:
|
||||
pass
|
||||
packVersions.sort()
|
||||
return packVersions
|
||||
|
||||
def buildPack(dir, version):
|
||||
current_path = os.path.join(current_dir, str(version))
|
||||
copyFiles(current_path, dir)
|
||||
|
||||
zip_folder(dir, current_path + ".zip")
|
||||
# shutil.make_archive(current_path, "zip", dir)
|
||||
current_path = current_path + ".zip"
|
||||
|
||||
timestamp = time.mktime(time.strptime('1970-01-01 00:00:00', '%Y-%m-%d %H:%M:%S'))
|
||||
os.utime(current_path, (timestamp, timestamp))
|
||||
|
||||
sha1 = sha1_of_file(current_path)
|
||||
os.rename(current_path, os.path.join(current_dir, str(version) + "_" + sha1 + ".zip"))
|
||||
|
||||
def copyFiles(src, dst):
|
||||
for root, dirs, files in os.walk(src):
|
||||
# Create corresponding path in destination
|
||||
rel_path = os.path.relpath(root, src)
|
||||
dest_path = os.path.join(dst, rel_path)
|
||||
os.makedirs(dest_path, exist_ok=True)
|
||||
|
||||
for file in files:
|
||||
src_file = os.path.join(root, file)
|
||||
dst_file = os.path.join(dest_path, file)
|
||||
shutil.copy2(src_file, dst_file) # Overwrites if exists
|
||||
|
||||
def zip_folder(folder_path, zip_file_path):
|
||||
with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
|
||||
for root, dirs, files in os.walk(folder_path):
|
||||
for file in files:
|
||||
abs_path = os.path.join(root, file)
|
||||
rel_path = os.path.relpath(abs_path, folder_path)
|
||||
zipf.write(abs_path, rel_path)
|
||||
|
||||
def sha1_of_file(filepath):
|
||||
sha1 = hashlib.sha1()
|
||||
with open(filepath, 'rb') as f:
|
||||
while chunk := f.read(8192): # read in 8KB chunks
|
||||
sha1.update(chunk)
|
||||
return sha1.hexdigest()
|
||||
|
||||
if __name__ == "__main__":
|
||||
versions=getVersions()
|
||||
with tempfile.TemporaryDirectory() as tmpdirname:
|
||||
for version in versions:
|
||||
buildPack(tmpdirname, version)
|
||||
8
steamwarci.yml
Normal file
8
steamwarci.yml
Normal file
@ -0,0 +1,8 @@
|
||||
build:
|
||||
- "python build.py"
|
||||
|
||||
artifacts: {}
|
||||
|
||||
release:
|
||||
- "rm /var/www/packs/*"
|
||||
- "mv *.zip /var/www/packs/"
|
||||
Reference in New Issue
Block a user