blob: 361b871f4cc9b4652c07e5b9dcd5333bdd2f6821 [file] [log] [blame]
############################################################################
# Copyright (C) SchedMD LLC.
############################################################################
import os
import pathlib
import re
import shutil
import sys
from utils.cmds import run_cmd
# SchedMD
from utils.log import (
log,
log_header,
# log_new_line,
)
# Filesystem
def cat(filename):
with open(filename) as file:
return file.read().replace("\n", "")
def cp_files_by_re(src_dir, dest_dir, pattern):
for filename in os.listdir(src_dir):
filepath = os.path.join(src_dir, filename)
if os.path.isfile(filepath):
if re.search(rf"{pattern}", filepath):
shutil.copy(filepath, dest_dir)
def cp_expect_logs(src_dir, dest_dir):
log(f"Copying expect test logs from {src_dir} to {dest_dir}")
cp_files_by_re(src_dir, dest_dir, r"testrun-results.json")
cp_files_by_re(src_dir, dest_dir, r"test\D+\.log.*")
def create_dir(dir):
log(f"Creating {dir}")
pathlib.Path(dir).mkdir(parents=True, exist_ok=True)
def delete_file(filename):
try:
os.remove(filename)
except OSError:
pass
def write_str_to_new_file(string, filename):
delete_file(filename)
with open(filename, "w") as f:
f.write(string)
def file_exists(filename):
return os.path.isfile(filename)
def exit_if_not_exists(filename):
if not file_exists(filename):
log_header("CONFIGURATION ERROR")
log(f"ERROR: {filename} not found:")
sys.exit("\nExiting..")
def remove_dir(dir):
log("Removing: " + dir)
if os.path.isdir(dir):
uid = os.getuid()
gid = os.getgid()
cmd = f"sudo chown -R {uid}:{gid} {dir}"
run_cmd(cmd)
shutil.rmtree(dir)
if not os.path.isdir(dir):
log(f"Removing: - Done! - {dir}")
else:
log(f"Removing: - Not Found - {dir}")