summaryrefslogblamecommitdiff
path: root/hercules/code/fileutils.py
blob: a0635d4095e81ab0e7c20cf7b4638b6ecf3558a4 (plain) (tree)





















                                 





                          






                             


                    
































                                           
 



                            


                            






                                           
# -*- coding: utf8 -*-
#
# Copyright (C) 2014  Evol Online
# Author: Andrei Karas (4144)

import array
import os
import struct
import shutil

def readInt32(f):
    data = f.read(4)
    arr = array.array("I")
    arr.fromstring(data)
    return arr[0]

def readInt16(f):
    data = f.read(2)
    arr = array.array("H")
    arr.fromstring(data)
    return arr[0]

def readInt8(f):
    data = f.read(1)
    arr = array.array("B")
    arr.fromstring(data)
    return arr[0]

def readMapName(f):
    data = f.read(12)
    data = str(data)
    while data[-1] == '\x00':
        data = data[:-1]
    return data

def skipData(f, sz):
    f.read(sz)

def readData(f, sz):
    return f.read(sz)

def readFile(path):
    with open(path, "r") as f:
        return f.read()

def writeInt32(f, i):
    f.write(struct.pack("I", i))

def writeInt16(f, i):
    f.write(struct.pack("H", i))

def writeMapName(f, name):
    if len(name) > 12:
        name = name[:12]
    while len(name) < 12:
        name = name + '\x00'
    f.write(struct.pack("12s", name))

def writeData(f, data):
    f.write(data)

def copyFile(src, dst, name):
    shutil.copyfile(src + name, dst + name)

def saveFile(fileName, data):
    with open(fileName, "w") as w:
        w.write(data)

def makeDir(path):
    if not os.path.exists(path):
        os.makedirs(path)

def removeDir(path):
    if os.path.exists(path):
        shutil.rmtree(path)

def removeAllFiles(path):
    if os.path.exists(path):
        shutil.rmtree(path)

def findFileIn(names, dirs):
    for name in names:
        for path in dirs:
            if os.path.exists(path + name):
                return path
    return None