diff --git a/Main.py b/Main.py index 315ba5f5..e71dd8d3 100644 --- a/Main.py +++ b/Main.py @@ -22,7 +22,7 @@ from Rules import set_rules from Dungeons import create_dungeons, fill_dungeons, fill_dungeons_restrictive, dungeon_regions from Fill import distribute_items_cutoff, distribute_items_staleness, distribute_items_restrictive, flood_items, balance_multiworld_progression from ItemList import generate_itempool, difficulties, fill_prizes -from Utils import output_path, parse_player_names, print_wiki_doors_by_room +from Utils import output_path, parse_player_names, print_wiki_doors_by_region, print_wiki_doors_by_room __version__ = '0.0.18.4d' @@ -258,6 +258,7 @@ def main(args, seed=None): logger.info('Total Time: %s', time.perf_counter() - start) # print_wiki_doors_by_room(dungeon_regions,world,1) +# print_wiki_doors_by_region(dungeon_regions,world,1) return world diff --git a/Utils.py b/Utils.py index 6755279b..f0dba062 100644 --- a/Utils.py +++ b/Utils.py @@ -207,7 +207,6 @@ def read_entrance_data(old_rom='Zelda no Densetsu - Kamigami no Triforce (Japan) def print_wiki_doors_by_region(d_regions, world, player): - for d, region_list in d_regions.items(): tile_map = {} for region in region_list: @@ -222,27 +221,31 @@ def print_wiki_doors_by_region(d_regions, world, player): if tile not in tile_map: tile_map[tile] = [] tile_map[tile].append(r) - print('') - print('{| class="wikitable"') - print('|-') - print('! Room') - print('! Supertile') - print('! Doors') + toprint = "" + toprint += ('') + "\n" + toprint += ('== Room List ==') + "\n" + toprint += "\n" + toprint += ('{| class="wikitable"') + "\n" + toprint += ('|-') + "\n" + toprint += ('! Room !! Supertile !! Doors') + "\n" for tile, region_list in tile_map.items(): tile_done = False for region in region_list: - print('|-') - print('| '+region.name) + toprint += ('|-') + "\n" + toprint += ('| {{Dungeon Room|{{PAGENAME}}|' + region.name + '}}') + "\n" if not tile_done: listlen = len(region_list) link = '| {{UnderworldMapLink|'+str(tile)+'}}' - print(link if listlen < 2 else '| rowspan = '+str(listlen)+' '+link) + toprint += (link if listlen < 2 else '| rowspan = '+str(listlen)+' '+link) + "\n" tile_done = True strs_to_print = [] for ext in region.exits: - strs_to_print.append(ext.name) - print('| '+'
'.join(strs_to_print)) - print('|}') + strs_to_print.append('{{Dungeon Door|{{PAGENAME}}|' + ext.name + '}}') + toprint += ('| '+'
'.join(strs_to_print)) + toprint += "\n" + toprint += ('|}') + "\n" + with open(os.path.join(".","resources", "user", "regions-" + d + ".txt"),"w+") as f: + f.write(toprint) def print_wiki_doors_by_room(d_regions, world, player): for d, region_list in d_regions.items(): diff --git a/resources/ci/common/common.py b/resources/ci/common/common.py index 6f793e21..8f2a4f51 100644 --- a/resources/ci/common/common.py +++ b/resources/ci/common/common.py @@ -115,6 +115,9 @@ def prepare_filename(BUILD_FILENAME): # find a binary file if it's executable # failing that, assume it's over 10MB def find_binary(listdir): + FILENAME_CHECKS = [ "Gui", "DungeonRandomizer" ] + FILESIZE_CHECK = (10 * 1024 * 1024) # 10MB + BUILD_FILENAMES = [] executable = stat.S_IEXEC | stat.S_IXGRP | stat.S_IXOTH for filename in os.listdir(listdir): @@ -122,10 +125,11 @@ def find_binary(listdir): if os.path.splitext(filename)[1] != ".py": st = os.stat(filename) mode = st.st_mode - big = st.st_size > (4.7 * 1024 * 1024) # 10MB + big = st.st_size > FILESIZE_CHECK if (mode & executable) or big: - if "GUI" in filename or "Gui" in filename or "DungeonRandomizer" in filename: - BUILD_FILENAMES.append(filename) + for check in FILENAME_CHECKS: + if check in filename: + BUILD_FILENAMES.append(filename) return BUILD_FILENAMES if __name__ == "__main__": diff --git a/resources/ci/common/git_clean.py b/resources/ci/common/git_clean.py index 6a8ca8fc..7c2e2cfa 100644 --- a/resources/ci/common/git_clean.py +++ b/resources/ci/common/git_clean.py @@ -1,15 +1,20 @@ import subprocess # do stuff at the shell level def git_clean(): + excludes = [ + ".vscode", # vscode IDE files + ".idea", # idea IDE files + "*.json", # keep JSON files for that one time I just nuked all that I was working on, oops + "*app*version.*" # keep appversion files + ] + excludes = ['--exclude={0}'.format(exclude) for exclude in excludes] + # clean the git slate - subprocess.check_call([ + subprocess.check_call([ "git", # run a git command "clean", # clean command "-dfx", # d: directories, f: files, x: ignored files - "--exclude=.vscode", # keep vscode IDE files - "--exclude=.idea", # keep idea IDE files - "--exclude=*.json", # keep JSON files for that one time I just nuked all that I was working on, oops - "--exclude=*app*version.*"]) # keep appversion files + *excludes]) if __name__ == "__main__": git_clean() diff --git a/resources/ci/common/prepare_release.py b/resources/ci/common/prepare_release.py index 35c087b3..5e32b410 100644 --- a/resources/ci/common/prepare_release.py +++ b/resources/ci/common/prepare_release.py @@ -8,17 +8,14 @@ from shutil import copy, make_archive, move, rmtree # file manipulation env = common.prepare_env() # get env vars -# make temp dir to put binary in -if not os.path.isdir(os.path.join("..","artifact")): - os.mkdir(os.path.join("..","artifact")) - -# make temp dir for other stuff -if not os.path.isdir(os.path.join("..","build")): - os.mkdir(os.path.join("..","build")) - -# make dir to put the archive in -if not os.path.isdir(os.path.join("..","deploy")): - os.mkdir(os.path.join("..","deploy")) +dirs = [ + os.path.join("..", "artifact"), # temp dir for binary + os.path.join("..", "build"), # temp dir for other stuff + os.path.join("..", "deploy") # dir for archive +] +for dirname in dirs: + if not os.path.isdir(dirname): + os.makedirs(dirname) # make dirs for each os for dirname in ["linux","macos","windows"]: @@ -27,12 +24,16 @@ for dirname in ["linux","macos","windows"]: # sanity check permissions for working_dirs.json dirpath = "." -for dirname in ["resources","user"]: - dirpath += '/' + dirname - os.chmod(dirpath,0o755) +for dirname in ["resources","user","meta","manifests"]: + dirpath += os.path.join(dirpath,dirname) + if os.path.isdir(dirpath): + os.chmod(dirpath,0o755) + # nuke travis file if it exists -if os.path.isfile(os.path.join(".",".travis.yml")): - os.remove(os.path.join(".",".travis.yml")) +for travis in [ os.path.join(".", ".travis.yml"), os.path.join(".", ".travis.off") ]: + if os.path.isfile(travis): + os.remove(travis) + # nuke test suite if it exists if os.path.isdir(os.path.join(".","tests")): distutils.dir_util.remove_tree(os.path.join(".","tests")) @@ -66,12 +67,18 @@ if len(BUILD_FILENAMES) > 0: git_clean() # mv dirs from source code - dirs = [os.path.join(".",".git"), os.path.join(".",".github"), os.path.join(".",".gitignore"), os.path.join(".","html"), os.path.join(".","resources","ci")] - for dir in dirs: - if os.path.isdir(dir): + dirs = [ + os.path.join(".",".git"), + os.path.join(".",".github"), + os.path.join(".",".gitignore"), + os.path.join(".","html"), + os.path.join(".","resources","ci") + ] + for dirname in dirs: + if os.path.isdir(dirname): move( - dir, - os.path.join("..","build",dir) + dirname, + os.path.join("..", "build", dirname) ) for BUILD_FILENAME in BUILD_FILENAMES: @@ -88,8 +95,7 @@ if len(BUILD_FILENAMES) > 0: # .zip if windows # .tar.gz otherwise - ZIP_FILENAME = os.path.join("..","deploy",os.path.splitext(BUILD_FILENAME)[0]) - ZIP_FILENAME = os.path.join("..","deploy","ALttPDoorRandomizer") + ZIP_FILENAME = os.path.join("..","deploy",env["REPO_NAME"]) if len(BUILD_FILENAMES) > 1 else os.path.join("..","deploy",os.path.splitext(BUILD_FILENAME)[0]) if env["OS_NAME"] == "windows": make_archive(ZIP_FILENAME,"zip") ZIP_FILENAME += ".zip" @@ -110,12 +116,12 @@ for BUILD_FILENAME in BUILD_FILENAMES: print("Build Filename: " + BUILD_FILENAME) print("Build Filesize: " + common.file_size(BUILD_FILENAME)) else: - print("No Build to prepare") + print("No Build to prepare: " + BUILD_FILENAME) if not ZIP_FILENAME == "": print("Zip Filename: " + ZIP_FILENAME) print("Zip Filesize: " + common.file_size(ZIP_FILENAME)) else: - print("No Zip to prepare") + print("No Zip to prepare: " + ZIP_FILENAME) print("Git tag: " + env["GITHUB_TAG"])