Browse Source

fxconv: add support for script mode (-s)

pull/4/head
Lephenixnoir 2 months ago
parent
commit
ce78d4814c
Signed by: Lephenixnoir <sebastien.michelland@protonmail.com> GPG Key ID: 1BBA026E13FC0495
2 changed files with 30 additions and 10 deletions
  1. +9
    -6
      Makefile
  2. +21
    -4
      fxconv/fxconv-main.py

+ 9
- 6
Makefile View File

@@ -18,8 +18,8 @@ dflags = -MT $@ -MMD -MP -MF $(@:%.o=%.d)
# $TARGETS is provided by Makefile.cfg.
#

TARGETS := $(filter-out fxconv,$(TARGETS))
TARGETS := $(TARGETS:fxsdk=fxsdk.sh)
TARGETS := $(TARGETS:fxconv=fxconv-main.py)
bin = $(TARGETS:%=bin/%)

# fxconv has no sources files because it's written in Python, and fxsdk has no
@@ -30,9 +30,9 @@ obj-fxg1a := $(src-fxg1a:%=build/%.o)
# Sed command to copy install path to fxsdk.sh. On Mac OS, BSD sed is used so
# we need to do it a bit differently with a printf helper to insert a literal
# newline into the command.
sed := '/^PREFIX=\\$$/ a \$(PREFIX)'
sed := -E -e '/^PREFIX=.?.?.?\\$$/ a \$(PREFIX)'
ifeq "$(shell uname)" "Darwin"
sed := "$$(printf '/^PREFIX=/ a \\\n$(PREFIX)')"
sed := -e "$$(printf '/^PREFIX=.?.?.?/ a \\\n$(PREFIX)')"
endif

# Symbolic targets
@@ -41,11 +41,14 @@ all: $(bin)

all-fxsdk: bin/fxsdk.sh
all-fxg1a: bin/fxg1a
all-fxconv: bin/fxconv-main.py

# Explicit targets

bin/fxsdk.sh: fxsdk/fxsdk.sh | bin/
sed -e $(sed) $< > $@
sed $(sed) $< > $@
bin/fxconv-main.py: fxconv/fxconv-main.py | bin/
sed $(sed) $< > $@
bin/fxg1a: $(obj-fxg1a) | bin/
gcc $^ -o $@ $(lflags)

@@ -91,11 +94,11 @@ endif
install: $(bin)
install -d $(PREFIX)/bin
install -d $(PREFIX)/share/fxsdk
install $(bin:bin/fxsdk.sh=) $(m755) $(PREFIX)/bin
install $(filter bin/fxg1a,$(bin)) $(m755) $(PREFIX)/bin
install -d $(PREFIX)/share/fxsdk/assets
install fxsdk/assets/* $(m644) $(PREFIX)/share/fxsdk/assets
install bin/fxsdk.sh $(m755) $(PREFIX)/bin/fxsdk
install fxconv/fxconv-main.py $(m755) $(PREFIX)/bin/fxconv
install bin/fxconv-main.py $(m755) $(PREFIX)/bin/fxconv
install fxconv/fxconv.py $(m644) $(PREFIX)/bin

uninstall:


+ 21
- 4
fxconv/fxconv-main.py View File

@@ -4,8 +4,13 @@ import getopt
import sys
import os
import fxconv
import subprocess

help_string = """
# Note: this line is edited at compile time to insert the install folder
PREFIX="""\
""".strip()

help_string = f"""
usage: fxconv [-s] <python script> [files...]
fxconv -b <bin file> -o <object file> [parameters...]
fxconv -i <png file> -o <object file> (--fx|--cg) [parameters...]
@@ -31,6 +36,8 @@ script. They accept parameters with a "category.key:value" syntax, for example:

When converting images, use --fx (black-and-white calculators) or --cg (16-bit
color calculators) to specify the target machine.

Install PREFIX is set to '{PREFIX}'.
""".strip()

# Simple error-warnings system
@@ -93,10 +100,20 @@ def main():
if mode == "s":
if output is not None:
warn("option --output is ignored in script mode")
args = None if args == [] else args

err("script mode not currently implemented (TODO) x_x")
sys.exit(1)
if PREFIX == "":
err("unknown or invalid install path x_x")
sys.exit(1)

env = os.environ.copy()
if "PYTHONPATH" in env:
env["PYTHONPATH"] += f":{PREFIX}/bin"
else:
env["PYTHONPATH"] = f"{PREFIX}/bin"

p = subprocess.run([ sys.executable, input ], env=env)
if p.returncode != 0:
sys.exit(1)

# In shortcut conversion modes, read parameters from the command-line



Loading…
Cancel
Save