[Scummvm-git-logs] scummvm master -> f825c39d640fc010451084f4212d0af635f1111a
rvanlaar
roland at rolandvanlaar.nl
Thu Aug 12 19:57:41 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
f825c39d64 DEVTOOLS: COMPANION: code improvements
Commit: f825c39d640fc010451084f4212d0af635f1111a
https://github.com/scummvm/scummvm/commit/f825c39d640fc010451084f4212d0af635f1111a
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2021-08-12T21:57:28+02:00
Commit Message:
DEVTOOLS: COMPANION: code improvements
- mac mode: show which file's attributes can't be read
- mac mode: use exit code 1 when bailing
- implement exit codes for all modes
- fix spelling mistake
- sort imports, python once first, then external packages
- refactor: use os.path.join only once per file
Changed paths:
devtools/dumper-companion.py
diff --git a/devtools/dumper-companion.py b/devtools/dumper-companion.py
index eb7c3e2ffe..aba3daf15e 100755
--- a/devtools/dumper-companion.py
+++ b/devtools/dumper-companion.py
@@ -6,20 +6,12 @@
# This file contains tests. They can be run with:
# $ pytest dumper-companion.py
#
-# Code is formatted with blacks
+# Code is formatted with black
import argparse
import io
import os
import sys
-import re
-if sys.platform == "darwin":
- try:
- import xattr
- except ImportError:
- print("xattr is required for the 'mac' mode to work\n")
- pass
-
from binascii import crc_hqx
from pathlib import Path
from struct import pack, unpack
@@ -27,6 +19,12 @@ from typing import Any, List, Tuple
import machfs
+if sys.platform == "darwin":
+ try:
+ import xattr
+ except ImportError:
+ print("xattr is required for the 'mac' mode to work\n")
+
def file_to_macbin(f: machfs.File, name: str, encoding: str) -> bytes:
oldFlags = f.flags >> 8
@@ -94,6 +92,7 @@ def encode_string(args: argparse.Namespace) -> None:
if args.stdin:
var = input()
print(punyencode(var))
+ return 0
def generate_punyencoded_path(
@@ -129,6 +128,7 @@ def extract_volume(args: argparse.Namespace) -> None:
if obj.rsrc:
file = file_to_macbin(obj, hpath[-1], encoding=encoding)
upath.write_bytes(file)
+ return 0
def has_resource_fork(dirpath: str, filename: str) -> bool:
@@ -159,6 +159,10 @@ def collect_forks(args: argparse.Namespace) -> None:
count_resources += 1
resource_filename = filename + "/..namedfork/rsrc"
to_filename = filename
+
+ filepath = os.path.join(dirpath, filename)
+ resourcepath = os.path.join(dirpath, resource_filename)
+
if punify:
tmp = punyencode(to_filename)
if tmp != to_filename:
@@ -166,6 +170,8 @@ def collect_forks(args: argparse.Namespace) -> None:
count_renames += 1
to_filename = tmp
+ to_filepath = os.path.join(dirpath, filename)
+
file = machfs.File()
# Set the file times and convert them to Mac epoch
@@ -175,26 +181,29 @@ def collect_forks(args: argparse.Namespace) -> None:
# Get info on creator and type
try:
- finderInfo = xattr.xattr(os.path.join(dirpath, filename))['com.apple.FinderInfo'][0:8]
+ finderInfo = xattr.xattr(filepath)["com.apple.FinderInfo"][0:8]
except (IOError, OSError) as e:
- print(f"Error in xattr calling: {e}")
- return
+ print(f"Error getting type and creator for: {filename}")
+ return 1
- (file.type, file.creator) = unpack("4s4s", finderInfo)
+ file.type, file.creator = unpack("4s4s", finderInfo)
- with open(os.path.join(dirpath, resource_filename), "rb") as rsrc:
+ with open(resourcepath, "rb") as rsrc:
file.rsrc = rsrc.read()
- with open(os.path.join(dirpath, filename), "rb") as data:
+ with open(filepath, "rb") as data:
file.data = data.read()
- with open(os.path.join(dirpath, to_filename), "wb") as to_file:
+ with open(to_filepath, "wb") as to_file:
to_file.write(
file_to_macbin(file, to_filename, encoding="mac_roman")
)
if to_filename != filename:
- os.remove(filename) # Remove the original file
+ os.remove(filepath) # Remove the original file
- os.utime(os.path.join(dirpath, to_filename), (info.st_mtime, info.st_mtime))
+ os.utime(
+ to_filepath,
+ (info.st_mtime, info.st_mtime),
+ )
elif punify:
punified_filename = punyencode(filename)
if punified_filename != filename:
@@ -206,6 +215,7 @@ def collect_forks(args: argparse.Namespace) -> None:
)
print(f"Macbinary {count_resources}, Renamed {count_renames} files")
+ return 0
def generate_parser() -> argparse.ArgumentParser:
@@ -266,7 +276,7 @@ def generate_parser() -> argparse.ArgumentParser:
if __name__ == "__main__":
parser = generate_parser()
args = parser.parse_args()
- args.func(args)
+ exit(args.func(args))
### Test functions
More information about the Scummvm-git-logs
mailing list