mirror of
https://github.com/onyx-and-iris/voicemeeter-compact.git
synced 2026-04-16 20:43:31 +00:00
split up taskfiles
add azure builds
This commit is contained in:
@@ -16,7 +16,7 @@ def write_outs(output, outs: tuple):
|
||||
output.write(out)
|
||||
|
||||
|
||||
def rewrite_app():
|
||||
def rewrite_app(theme):
|
||||
app_logger = logger.getChild('app')
|
||||
app_logger.info('rewriting app.py')
|
||||
infile = Path(SRC_DIR) / 'app.bk'
|
||||
@@ -34,24 +34,28 @@ def rewrite_app():
|
||||
(
|
||||
' self._vmr = vmr\n',
|
||||
' self._theme = theme\n',
|
||||
' self._theme_name = theme.split("-")[0]\n',
|
||||
' self._theme_type = theme.split("-")[-1]\n',
|
||||
' tcldir = Path.cwd() / "theme"\n',
|
||||
' if not tcldir.is_dir():\n',
|
||||
' tcldir = Path.cwd() / "_internal" / "theme"\n',
|
||||
' self.tk.call("source", tcldir.resolve() / f"forest-{self._theme}.tcl")\n',
|
||||
' match self._theme_name:\n',
|
||||
' case "forest":\n',
|
||||
' self.tk.call("source", tcldir.resolve() / f"{self._theme}.tcl")\n',
|
||||
' case "azure":\n',
|
||||
' self.tk.call("source", tcldir.resolve() / f"{self._theme_name}.tcl")\n',
|
||||
),
|
||||
)
|
||||
# def connect()
|
||||
case 'def connect(kind_id: str, vmr) -> App:\n':
|
||||
output.write(
|
||||
'def connect(kind_id: str, vmr, theme="light") -> App:\n'
|
||||
)
|
||||
output.write('def connect(kind_id: str, vmr, theme) -> App:\n')
|
||||
case ' return VMMIN_cls(vmr)\n':
|
||||
output.write(' return VMMIN_cls(vmr, theme)\n')
|
||||
case _:
|
||||
output.write(line)
|
||||
|
||||
|
||||
def rewrite_builders():
|
||||
def rewrite_builders(theme):
|
||||
builders_logger = logger.getChild('builders')
|
||||
builders_logger.info('rewriting builders.py')
|
||||
infile = Path(SRC_DIR) / 'builders.bk'
|
||||
@@ -71,15 +75,26 @@ def rewrite_builders():
|
||||
case 'import sv_ttk\n':
|
||||
output.write('#import sv_ttk\n')
|
||||
case ' self.app.resizable(False, False)\n':
|
||||
write_outs(
|
||||
output,
|
||||
(
|
||||
' self.app.resizable(False, False)\n'
|
||||
' if _configuration.themes_enabled:\n',
|
||||
' ttk.Style().theme_use(f"forest-{self.app._theme}")\n',
|
||||
' self.logger.info(f"Forest Theme applied")\n',
|
||||
),
|
||||
)
|
||||
if theme.startswith('forest'):
|
||||
write_outs(
|
||||
output,
|
||||
(
|
||||
' self.app.resizable(False, False)\n'
|
||||
' if _configuration.themes_enabled:\n',
|
||||
' ttk.Style().theme_use(self.app._theme)\n',
|
||||
' self.logger.info(f"{self.app._theme} Theme applied")\n',
|
||||
),
|
||||
)
|
||||
elif theme.startswith('azure'):
|
||||
write_outs(
|
||||
output,
|
||||
(
|
||||
' self.app.resizable(False, False)\n'
|
||||
' if _configuration.themes_enabled:\n',
|
||||
' self.app.tk.call("set_theme", self.app._theme_type)\n',
|
||||
' self.logger.info(f"Azure {self.app._theme_type} Theme applied")\n',
|
||||
),
|
||||
)
|
||||
ignore_next_lines = 6
|
||||
# setting navframe button widths
|
||||
case ' variable=self.navframe.submix,\n':
|
||||
@@ -171,12 +186,21 @@ def rewrite_builders():
|
||||
)
|
||||
case _:
|
||||
if 'Toggle.TButton' in line:
|
||||
output.write(line.replace('Toggle.TButton', 'ToggleButton'))
|
||||
if theme.startswith('forest'):
|
||||
output.write(
|
||||
line.replace('Toggle.TButton', 'ToggleButton')
|
||||
)
|
||||
elif theme.startswith('azure'):
|
||||
output.write(
|
||||
line.replace(
|
||||
'Toggle.TButton', 'Switch.TCheckbutton'
|
||||
)
|
||||
)
|
||||
else:
|
||||
output.write(line)
|
||||
|
||||
|
||||
def rewrite_menu():
|
||||
def rewrite_menu(theme):
|
||||
menu_logger = logger.getChild('menu')
|
||||
menu_logger.info('rewriting menu.py')
|
||||
infile = Path(SRC_DIR) / 'menu.bk'
|
||||
@@ -199,7 +223,7 @@ def rewrite_menu():
|
||||
output.write(line)
|
||||
|
||||
|
||||
def prepare_for_build():
|
||||
def prepare_for_build(theme):
|
||||
################# MOVE FILES FROM PACKAGE DIR INTO SRC DIR #########################
|
||||
for file in (
|
||||
PACKAGE_DIR / 'app.py',
|
||||
@@ -211,12 +235,8 @@ def prepare_for_build():
|
||||
file.rename(SRC_DIR / f'{file.stem}.bk')
|
||||
|
||||
###################### RUN THE FILE REWRITER FOR EACH *.BK #########################
|
||||
steps = (
|
||||
rewrite_app,
|
||||
rewrite_builders,
|
||||
rewrite_menu,
|
||||
)
|
||||
[step() for step in steps]
|
||||
for step in (rewrite_app, rewrite_builders, rewrite_menu):
|
||||
step(theme)
|
||||
|
||||
|
||||
def cleanup():
|
||||
@@ -239,12 +259,13 @@ def cleanup():
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--rewrite', action='store_true')
|
||||
parser.add_argument('--theme', type=str, default='forest')
|
||||
parser.add_argument('--restore', action='store_true')
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.rewrite:
|
||||
logger.info('preparing files for build')
|
||||
prepare_for_build()
|
||||
prepare_for_build(args.theme)
|
||||
elif args.restore:
|
||||
logger.info('cleaning up files')
|
||||
cleanup()
|
||||
|
||||
Reference in New Issue
Block a user