From acb9a1b0fa2756ec2495d36786286383e4fdc320 Mon Sep 17 00:00:00 2001 From: gryf Date: Sat, 17 Feb 2018 10:41:03 +0100 Subject: [PATCH] Introduced floppy class --- e_uae_wrapper/base.py | 17 ++++++++++------- e_uae_wrapper/floppy.py | 30 ++++++++++++++++++++++++++++++ e_uae_wrapper/plain.py | 29 ----------------------------- 3 files changed, 40 insertions(+), 36 deletions(-) create mode 100644 e_uae_wrapper/floppy.py delete mode 100644 e_uae_wrapper/plain.py diff --git a/e_uae_wrapper/base.py b/e_uae_wrapper/base.py index be5997e..b82b646 100644 --- a/e_uae_wrapper/base.py +++ b/e_uae_wrapper/base.py @@ -35,19 +35,22 @@ class Base(object): """ Main function which accepts config file for e-uae It will do as follows: - - set needed full path for asset files - - extract archive file + - set needed paths for templates + - validate options + - [extract archive file] - copy configuration - - [copy save if exists] - run the emulation - - archive save state """ + + self.config['wrapper_tmp_dir'] = self.dir = tempfile.mkdtemp() + self.config['wrapper_config_path'] = self.conf_path + self._interpolate_options() + if not self._validate_options(): return False - self.config['wrapper_tmp_dir'] = self.dir = tempfile.mkdtemp() - self._interpolate_options() - # self._set_assets_paths() + if not self._copy_conf(): + return False return True diff --git a/e_uae_wrapper/floppy.py b/e_uae_wrapper/floppy.py new file mode 100644 index 0000000..603870f --- /dev/null +++ b/e_uae_wrapper/floppy.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +Floppy class for executing e-uae with specified parameters. This is useful for +running things from floppies. It creates new .uaerc file with substituted all +templates with proper values and run. Floppies usually are unpacked or only +gzipped (which is supported by emulator itsef) so there is no need to copy +them to temporary place. +""" +import os + +from e_uae_wrapper import base +from e_uae_wrapper import utils + + +class Wrapper(base.Base): + """Floppy class for running e-uae""" + + def run(self): + """ + Main function which run e-uae + """ + if not super(Wrapper, self).run(): + return False + + self._run_emulator() + + def _run_emulator(self): + """execute e-uae""" + utils.run_command(['e-uae', '-f', os.path.join(self.dir, '.uaerc')]) diff --git a/e_uae_wrapper/plain.py b/e_uae_wrapper/plain.py deleted file mode 100644 index c9a2936..0000000 --- a/e_uae_wrapper/plain.py +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -""" -Simple class for executing e-uae with specified parameters. This is a -failsafe class for running e-uae. -""" -from e_uae_wrapper import base -from e_uae_wrapper import utils - - -class Wrapper(base.Base): - """Simple class for running e-uae""" - - def run(self): - """ - Main function which run e-uae - """ - if not self._copy_conf(): - return False - - self._run_emulator() - - def _run_emulator(self): - """execute e-uae""" - utils.run_command(['e-uae', self.conf_file]) - - def clean(self): - """Do the cleanup. Here - just do nothing""" - return