diff --git a/SConstruct b/SConstruct index 1e0d291..c37a309 100644 --- a/SConstruct +++ b/SConstruct @@ -1,5 +1,5 @@ config = { - 'PROJECT_NAME': 'spp_template' + 'PROJECT_NAME': '@PROJECT_NAME@' } env = SConscript('external/scons-plus-plus/SConscript', exports = ['config']) env.Append(CPPPATH = [Dir('private'), Dir('public')]) @@ -9,6 +9,6 @@ env.RecipeRepo('mewin-stable', 'https://git.mewin.de/mewin/spp_recipes.git', 'st # env.RecipeRepo('mewin-testing', 'https://git.mewin.de/mewin/spp_recipes.git', 'testing') # app -env = env.Module('private/spp_template/SModule') +env = env.Module('private/@MODULE_FOLDER_NAME@/SModule') env.Finalize() diff --git a/private/spp_template/SModule b/private/spp_template/SModule index 18935e7..31dbcf8 100644 --- a/private/spp_template/SModule +++ b/private/spp_template/SModule @@ -6,8 +6,8 @@ src_files = Split(""" """) prog_app = env.UnityProgram( - name = 'Template', - target = env['BIN_DIR'] + '/spp_template', + name = '@MODULE_NAME@', + target = env['BIN_DIR'] + '/@EXE_NAME@', source = src_files, dependencies = { 'mijin': {} diff --git a/tools/init_project.py b/tools/init_project.py index 781bc4e..d869604 100644 --- a/tools/init_project.py +++ b/tools/init_project.py @@ -64,6 +64,11 @@ def update_spp() -> None: _logger.info('Changes in SCons++ detected, creating commit.') _exec_checked(['git', 'commit', '-m', 'Updated Scons++', 'external/scons-plus-plus']) +def verify_unchanged() -> None: + output = _exec_get_output(['git', 'status', '--porcelain']) + if output != '': + raise RuntimeError('There are uncommitted changes. Commit, stash or revert them before running this script.') + def _replace_in_file(file: Path, **replacements) -> None: _logger.debug('Patching file "%s"...', file) bakfile = file.with_suffix(f'{file.suffix}.bak') @@ -107,19 +112,36 @@ def setup_project() -> None: template_folder = _root / 'private/spp_template' module_folder = _root / 'private' / module_folder_name _logger.debug(f'Moving {template_folder} to {module_folder}.') + shutil.move(template_folder, module_folder) _logger.info('Creating a git commit for the setup.') - _exec_checked(['git', 'commit', '-m', 'Project setup', 'SConstruct', 'private']) + _exec_checked(['git', 'add', '.']) + _exec_checked(['git', 'commit', '-m', 'Project setup']) + +def setup_git_remote() -> None: + current_url = _exec_get_output(['git', 'remote', 'get-url', 'origin']) + if 'spp_template' not in current_url: + _logger.debug('Remote already set up.') + return + + remote_url = '' + while remote_url == '': + print('Please enter a new URL for your git remote.') + remote_url = _prompt().strip() + _exec_checked(['git', 'remote', 'set-url', 'origin', remote_url]) + if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG, format='%(message)s') _root = Path(__file__).parent.parent os.chdir(_root) - #try: - verify_tools() - download_spp() - update_spp() - setup_project() - #except Exception as e: - # _logger.error('There was an error running the script: %s.', e) - # sys.exit(1) + try: + verify_tools() + download_spp() + update_spp() + verify_unchanged() + setup_project() + setup_git_remote() + except Exception as e: + _logger.error('There was an error running the script: %s', e) + sys.exit(1)