From 90ae73ced72ac99694437daf570d8fd9c0cdef1d Mon Sep 17 00:00:00 2001 From: Trilarion Date: Fri, 29 Jun 2018 11:24:34 +0200 Subject: [PATCH] added description of template to readme, some cvs to git conversions --- README.md | 45 +++++++++++++++++++++++++++----- docs/data.json | 16 ++++++------ games/rpg/_toc.md | 2 +- games/rpg/moria.md | 8 +++--- games/statistics.md | 6 ++--- games/strategy/bos_wars.md | 2 +- games/strategy/crimson_fields.md | 2 +- games/strategy/maxr.md | 2 +- games/strategy/xarchon.md | 4 +-- games/template_long.md | 29 -------------------- tools/README.txt | 5 +++- tools/archives.json | 7 ++++- tools/maintenance.py | 8 +++--- 13 files changed, 73 insertions(+), 63 deletions(-) delete mode 100644 games/template_long.md diff --git a/README.md b/README.md index 381d6b6e..ab498279 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Open Source Games -[Dynamic HTML table](https://trilarion.github.io/opensourcegames/) of the entries - Development [Blog](https://trilarion.blogspot.com/search/label/osgames) +[Dynamic HTML table](https://trilarion.github.io/opensourcegames/) of the entries / Development [Blog](https://trilarion.blogspot.com/search/label/osgames) [comment]: # (start of autogenerated content, do not edit) 403 entries @@ -28,18 +28,52 @@ See also the **[Statistics](games/statistics.md)** page. If you'd like to add or modify entries, please use the [Issue tracker](https://github.com/Trilarion/opensourcegames/issues), or fork this repository and submit a pull request. +### Adding a new entry +All entries are stored as markdown (quite human readable) format. Adding a new entry is as easy as modifying the +[template](games/template.md) and putting a modified version in a games category subdirectory. +Here is a description of the fields in the template. Comments start with "//". +
+# {NAME} // name of the game
 
+_{Description}_ // single description line (typically taken from about page of game)
 
+- Home: {URL} // project main site(s) (most significant first)
+- Media: {URL} // links to wikipedia and other significant mentions
+- State: {XX} // one of {beta, mature} and optional "inactive since YEAR"
+- Play: {URL} // link(s) to online play possibility
+- Download: {URL} // link(s) to download binary (or source) releases
+- Platform: {XX} // list of supported platforms {Linux, Windows, MacOs, Android, ..}
+- Keywords: {XX} // list of tags describing the game
+- Code repository: {URL} // code repositories (most significant first)
+- Code language: {XX} // programming language(s) used 
+- Code license: {XX} // license of the code, use "Custom" with comment if the license is modified for the project
+- Code dependencies: {XX} // important third party libraries / frameworks used by the project
+- Assets license: {XX} // license(s) of the assets (artwork, ..)
+
+// whatever you want to put here
+
+## Building
+
+- Build system: {XX} // typically one of {CMake, Autoconf, Gradle, ..}
+- Build instructions: {XX} // link(s) to build instructions offered by the project
+
+// whatever you want to put here
+
+ +- If there are multiple links, licenses, ... separate them by comma. +- The same link can be assigned to different fields (home could also be the code repository, etc.). +- Put comments in "()" parentheses (do not put commas in comments). +- Remove lines with fields that do not apply to the project or where information is not available otherwise. Help: [MarkDown Help](https://help.github.com/articles/github-flavored-markdown), [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) ## Background -I love open source projects and games and I currently learn about building systems. I see the following benefits of this database -and further actions I intend to do. +I love open source projects and games and I am currently interested in learning more about building systems. +I see the following benefits of this database and further actions I intend to do. - General information about open source games - Possibility of improving build instructions on the projects side (not all projects actually have build instructions) @@ -48,9 +82,7 @@ and further actions I intend to do. - Revival of abandoned games that do not build anymore - Simplifying dependencies - Increasing the number of supported platforms - -I want to improve the process of building open source games, maybe even rescuing some lost projects. -I concentrate on the hardware/software platforms that I have access to. +- Conversion of old repository formats like CVS to Git ## Disclaimer @@ -59,4 +91,3 @@ I concentrate on the hardware/software platforms that I have access to. ## License See [LICENSE](LICENSE). You are free to do whatever you want with this repository. - diff --git a/docs/data.json b/docs/data.json index 2df4245c..25fa90a1 100644 --- a/docs/data.json +++ b/docs/data.json @@ -376,7 +376,7 @@ "Strategy", "mature / inactive since 2013", "RTS", - "C++ - GPL-2.0" + "Source - C++ - GPL-2.0" ], [ "Boson (home, entry)", @@ -583,7 +583,7 @@ "Strategy", "mature / inactive since 2010", "TBS", - "Source - C++ - GPL-2.0" + "Source - C++ - GPL-2.0" ], [ "Crossfire (home, entry)", @@ -1789,7 +1789,7 @@ "Strategy", "beta / inactive since 2016", "requires original content", - "C++, C - GPL-2.0" + "Source - C++, C - GPL-2.0" ], [ "MegaGlest (home, entry)", @@ -1864,13 +1864,13 @@ "Source - C# - MPL" ], [ - "Moria (home, entry)", + "Moria (home, entry)", "Roguelike computer game inspired by J. R. R. Tolkien's..", - "Link", + "Link", "Role Playing", - "mature / inactive since 2008", + "mature / active", "roguelike", - "Source - C - GPL-3.0" + "Source - C - GPL-3.0" ], [ "Mpango (home, entry)", @@ -3382,7 +3382,7 @@ "Strategy", "beta / inactive since 2003", "", - "Source - C, C++ - GPL-2.0" + "Source - C, C++ - GPL-2.0" ], [ "XSera (home, entry)", diff --git a/games/rpg/_toc.md b/games/rpg/_toc.md index a951e311..5f8038df 100644 --- a/games/rpg/_toc.md +++ b/games/rpg/_toc.md @@ -59,7 +59,7 @@ - **[Magarena](magarena.md)** (Java, Groovy, GPL-3.0, mature) - **[Meridian 59](meridian59.md)** (C++, C, GPL-2.0, mature) - **[Meritous](meritous.md)** (C, GPL-3.0, mature, inactive since 2008) -- **[Moria](moria.md)** (C, GPL-3.0, mature, inactive since 2008) +- **[Moria](moria.md)** (C, GPL-3.0, mature) - **[NLarn](nlarn.md)** (C, Lua, GPL-3.0, mature) - **[Naev](naev.md)** (C, Lua, GPL-3.0, mature) - **[NetHack](nethack.md)** (C, Custom, mature) diff --git a/games/rpg/moria.md b/games/rpg/moria.md index 43cc838b..41e9246e 100644 --- a/games/rpg/moria.md +++ b/games/rpg/moria.md @@ -2,12 +2,12 @@ _Roguelike computer game inspired by J. R. R. Tolkien's novel The Lord of the Rings._ -- Home: http://beej.us/moria/ +- Home: https://umoria.org/, http://beej.us/moria/ - Media: https://en.wikipedia.org/wiki/Moria_(video_game) -- Download: http://beej.us/moria/files/ -- State: mature, inactive since 2008 +- Download: https://umoria.org/download/, http://beej.us/moria/files/ +- State: mature (inactive between 2008-2016) - Keywords: roguelike -- Code repository: https://github.com/acahir/moria (copy of 5.6 plus a few commits) +- Code repository: https://github.com/dungeons-of-moria/umoria (since 2016), https://github.com/acahir/moria (copy of 5.6 plus a few commits) - Code language: C - Code license: GPL-3.0 diff --git a/games/statistics.md b/games/statistics.md index edf5d3d0..efab695b 100644 --- a/games/statistics.md +++ b/games/statistics.md @@ -1,17 +1,17 @@ [comment]: # (autogenerated content, do not edit) # Statistics -analyzed 403 entries on 2018-06-28 14:38:52 +analyzed 403 entries on 2018-06-29 11:00:44 ## State - mature: 238 (59.1%) - beta: 165 (40.9%) -- inactive: 172 (42.7%) +- inactive: 171 (42.4%) ##### Inactive State -Zone of Control (2017), 3d.city (2016), Atlantis (2016), Atrinik (2016), Birth of the Empires (2016), DNT (2016), Dark Destiny (2016), Dungeon Monkey Eternal (2016), FreeRCT (2016), Mechanized Assault & eXploration Reloaded (2016), Polis (2016), WarGame (2016), Dash Engine (2015), Delta Engine (2015), Egoboo (2015), Free heroes2 engine (2015), M.E.W.L. (2015), Project Helena (2015), Roguish (2015), The Epic of Heroes (2015), TwinEngine (2015), Witch Blast (2015), pyORPG (2015), Argentum Online (2014), Battles of Antargis (2014), Deity (2014), Drop Shock (2014), Dune Dynasty (2014), EternalWinterWars (2014), FAR Colony (2014), Hale (2014), Heroes of Wing Commander (2014), Kingdoms (2014), Lips of Suna (2014), Open RPG Maker (2014), Open Tibia (2014), Radakan (2014), SDL Game Engine 2D (2014), Sintel The Game (2014), Summoning Wars (2014), Supremacy (2014), Turious (2014), Xenowar (2014), rpge (2014), sandbox Game Maker (2014), Bos Wars (2013), C-evo (2013), Decker (2013), DemiGod (2013), Dungeon Mapper (2013), Holyspirit (2013), MechCommander 2 Omnitech (2013), Mpango (2013), Murder In The Public Domain (2013), OpenRPG (2013), Phantasy Star Rebirth (2013), Room for Change (2013), Source of Tales (2013), Trinity Reign (2013), VegaTrek (2013), BlackNova Traders (2012), Blitzkrieg (2012), Cataclysm (2012), CommandoJS (2012), Conquests (2012), Dark City (2012), Goblin Camp (2012), Hexwar (2012), PARPG (2012), Solar Empire (2012), Thousand Parsec (2012), UFO2000 (2012), Wizards Magic (2012), Age of Magic (2011), Battlefield Java (2011), Danger from the Deep (2011), Dawn (2011), GalaxyMage Redux (2011), JaNaG - Java Name Generator (2011), KQ Lives (2011), Kobold's Quest 2 (2011), OpenMOO2 (2011), RuneSword II (2011), Skrupel - Tribute Compilation (2011), Song of Albion (2011), Star Control II: The Ur-Quan Masters (2011), UlDunAd (2011), World of Phaos (2011), X-Force: Fight For Destiny (2011), AI Wars (2010), Crimson Fields (2010), Dragon History - Dračí Historie (2010), Endgame: Singularity (2010), Heroes of Wesnoth (2010), Labyrinth of Worlds (2010), Linwarrior 3D (2010), Mercenary Commander (2010), OpenHoMM (2010), Slay (2010), Solaris the Game (2010), SpaceTrader for Java (2010), XSera (2010), 8 Kingdoms (2009), Alien Assault Traders (2009), Annchienta (2009), Ardentryst (2009), Begin2 (2009), Crown and Cutlass (2009), Dark Oberon (2009), Duel Commander (2009), Fall of Imyrin (2009), Fallen Spire (2009), FreeTrain (2009), Glest (2009), Goblin Hack (2009), ORIENT (2009), OpenPop (2009), Secret Mario Chronicles (2009), Space Trader for Windows (2009), World of Heroes (2009), A Planet's Revenge (2008), Attal: Lords of doom (2008), Avanor (2008), Freestars (2008), Mars, Land of No Mercy (2008), Meritous (2008), Moria (2008), S.C.O.U.R.G.E. (2008), Scoreos (2008), Sengoku: Warring States of Japan (2008), Space Opera (2008), Armies (2007), Eos, Dawn of Light: A Space Opera (2007), Silvertree (2007), Slash'EM (2007), Underworld Adventures (2007), Arthur's Knights (2006), Betrayer's Moon Tactics (2006), Boson (2006), Eleconics (2006), JQuest (2006), Linley's Dungeon Crawl (2006), Metal Mech (2006), RPDungeon - computer aided role playing (2006), Rogue Clone IV (2006), Visions from the Other Side (2006), GalaxyNG (2005), H-World (2005), LinCity (2005), Spice Trade (2005), WAtomic (2005), Xconq (2005), ZAngband (2005), Colonization too (2004), GM Tools (2004), Gee Whiz (2004), Openglad (2004), Promisance (2004), T-Bots (2004), AntiChess (2003), Cat Mother Dead Justice (2003), Civil (2003), Machinations (2003), Pizza Business (2003), Planetary Hoppers (2003), The Clans (2003), Wargamer (2003), XArchon (2003), Umbra (2002), Greenius' Civil War (2001), Tux Racer (2001), Operation Citadel (2000) +Zone of Control (2017), 3d.city (2016), Atlantis (2016), Atrinik (2016), Birth of the Empires (2016), DNT (2016), Dark Destiny (2016), Dungeon Monkey Eternal (2016), FreeRCT (2016), Mechanized Assault & eXploration Reloaded (2016), Polis (2016), WarGame (2016), Dash Engine (2015), Delta Engine (2015), Egoboo (2015), Free heroes2 engine (2015), M.E.W.L. (2015), Project Helena (2015), Roguish (2015), The Epic of Heroes (2015), TwinEngine (2015), Witch Blast (2015), pyORPG (2015), Argentum Online (2014), Battles of Antargis (2014), Deity (2014), Drop Shock (2014), Dune Dynasty (2014), EternalWinterWars (2014), FAR Colony (2014), Hale (2014), Heroes of Wing Commander (2014), Kingdoms (2014), Lips of Suna (2014), Open RPG Maker (2014), Open Tibia (2014), Radakan (2014), SDL Game Engine 2D (2014), Sintel The Game (2014), Summoning Wars (2014), Supremacy (2014), Turious (2014), Xenowar (2014), rpge (2014), sandbox Game Maker (2014), Bos Wars (2013), C-evo (2013), Decker (2013), DemiGod (2013), Dungeon Mapper (2013), Holyspirit (2013), MechCommander 2 Omnitech (2013), Mpango (2013), Murder In The Public Domain (2013), OpenRPG (2013), Phantasy Star Rebirth (2013), Room for Change (2013), Source of Tales (2013), Trinity Reign (2013), VegaTrek (2013), BlackNova Traders (2012), Blitzkrieg (2012), Cataclysm (2012), CommandoJS (2012), Conquests (2012), Dark City (2012), Goblin Camp (2012), Hexwar (2012), PARPG (2012), Solar Empire (2012), Thousand Parsec (2012), UFO2000 (2012), Wizards Magic (2012), Age of Magic (2011), Battlefield Java (2011), Danger from the Deep (2011), Dawn (2011), GalaxyMage Redux (2011), JaNaG - Java Name Generator (2011), KQ Lives (2011), Kobold's Quest 2 (2011), OpenMOO2 (2011), RuneSword II (2011), Skrupel - Tribute Compilation (2011), Song of Albion (2011), Star Control II: The Ur-Quan Masters (2011), UlDunAd (2011), World of Phaos (2011), X-Force: Fight For Destiny (2011), AI Wars (2010), Crimson Fields (2010), Dragon History - Dračí Historie (2010), Endgame: Singularity (2010), Heroes of Wesnoth (2010), Labyrinth of Worlds (2010), Linwarrior 3D (2010), Mercenary Commander (2010), OpenHoMM (2010), Slay (2010), Solaris the Game (2010), SpaceTrader for Java (2010), XSera (2010), 8 Kingdoms (2009), Alien Assault Traders (2009), Annchienta (2009), Ardentryst (2009), Begin2 (2009), Crown and Cutlass (2009), Dark Oberon (2009), Duel Commander (2009), Fall of Imyrin (2009), Fallen Spire (2009), FreeTrain (2009), Glest (2009), Goblin Hack (2009), ORIENT (2009), OpenPop (2009), Secret Mario Chronicles (2009), Space Trader for Windows (2009), World of Heroes (2009), A Planet's Revenge (2008), Attal: Lords of doom (2008), Avanor (2008), Freestars (2008), Mars, Land of No Mercy (2008), Meritous (2008), S.C.O.U.R.G.E. (2008), Scoreos (2008), Sengoku: Warring States of Japan (2008), Space Opera (2008), Armies (2007), Eos, Dawn of Light: A Space Opera (2007), Silvertree (2007), Slash'EM (2007), Underworld Adventures (2007), Arthur's Knights (2006), Betrayer's Moon Tactics (2006), Boson (2006), Eleconics (2006), JQuest (2006), Linley's Dungeon Crawl (2006), Metal Mech (2006), RPDungeon - computer aided role playing (2006), Rogue Clone IV (2006), Visions from the Other Side (2006), GalaxyNG (2005), H-World (2005), LinCity (2005), Spice Trade (2005), WAtomic (2005), Xconq (2005), ZAngband (2005), Colonization too (2004), GM Tools (2004), Gee Whiz (2004), Openglad (2004), Promisance (2004), T-Bots (2004), AntiChess (2003), Cat Mother Dead Justice (2003), Civil (2003), Machinations (2003), Pizza Business (2003), Planetary Hoppers (2003), The Clans (2003), Wargamer (2003), XArchon (2003), Umbra (2002), Greenius' Civil War (2001), Tux Racer (2001), Operation Citadel (2000) ## Code Languages diff --git a/games/strategy/bos_wars.md b/games/strategy/bos_wars.md index 77ecde97..363823d8 100644 --- a/games/strategy/bos_wars.md +++ b/games/strategy/bos_wars.md @@ -6,7 +6,7 @@ _Futuristic real time strategy game (RTS)._ - Download: https://www.boswars.org/download.shtml - State: mature, inactive since 2013 - Keywords: RTS -- Code repository: (see download) +- Code repository: https://github.com/OneSleepyDev/boswars_osd, https://github.com/OneSleepyDev/boswars_osd_archive (+) - Code language: C++ - Code license: GPL-2.0 diff --git a/games/strategy/crimson_fields.md b/games/strategy/crimson_fields.md index 6413d74b..7c7c6d88 100644 --- a/games/strategy/crimson_fields.md +++ b/games/strategy/crimson_fields.md @@ -6,7 +6,7 @@ _Turn-based tactical war game._ - Download: http://crimson.seul.org/download.php - State: mature, inactive since 2010 - Keywords: TBS -- Code repository: http://crimson.seul.org/cvs.php (cvs) +- Code repository: https://gitlab.com/Trilarion/crimson.git (import of cvs), http://crimson.seul.org/cvs.php (cvs) - Code language: C++ - Code license: GPL-2.0 diff --git a/games/strategy/maxr.md b/games/strategy/maxr.md index d996acf6..22698f27 100644 --- a/games/strategy/maxr.md +++ b/games/strategy/maxr.md @@ -6,7 +6,7 @@ _A remake of the old M.A.X. by Interplay from 1996._ - Download: https://www.maxr.org/docs.php?id=3 - State: beta, inactive since 2016 - Keywords: requires original content (some versions) -- Code repository: (see download) +- Code repository: http://git.maxr.org/maxr/maxr.git - Code language: C++, C - Code license: GPL-2.0 diff --git a/games/strategy/xarchon.md b/games/strategy/xarchon.md index 07af80c1..aafdb63e 100644 --- a/games/strategy/xarchon.md +++ b/games/strategy/xarchon.md @@ -5,10 +5,10 @@ _Modelled after the golden oldie Archon game created by Freefall Associates and - Home: http://xarchon.seul.org/ - Download: http://xarchon.seul.org/download.html - State: beta, inactive since 2003 -- Code repository: http://cvs.seul.org:/home/cvspsrv/cvsroot (cvs) +- Code repository: https://gitlab.com/Trilarion/xarchon.git (import of cvs), http://cvs.seul.org:/home/cvspsrv/cvsroot (cvs) - Code language: C, C++ - Code license: GPL-2.0 -- Dependencies: GTK +- Dependencies: GTK, QT ## Building diff --git a/games/template_long.md b/games/template_long.md deleted file mode 100644 index 13d6f7e8..00000000 --- a/games/template_long.md +++ /dev/null @@ -1,29 +0,0 @@ -# {NAME} - -_{One line description}_ - -- Home: {URL} -- Media: {URL} // Wikipedia, ... -- Download: {URL} -{- Play: {URL}} -- State: beta, mature, inactive since XX // no need to be more fine grained than beta, mature -- Keywords: SP (single-player), MP (multi-player), MMO (multi massive online), RTS (real time strategy), TBS, online -- Code repository: primary repository (type if not git), other repositories (type if not git) -- Code language: {XX} -- Code license: {XX} // Only with respect to code! MIT, (L)GPL, BSD, zlib, Apache, Special (if other or modified) -- License details: [Name](URL) // if Special -- Artwork license: {XX} // License of artwork (text, visual, audio) - -// Remove all lines that do not apply, where there is no information - -## Building - -Build system (CMake, scons, ant, ..) -Build instructions - -### YYYY-MM OS BUILD_SYSTEM/COMPILER - -Details - -... - diff --git a/tools/README.txt b/tools/README.txt index 33d3b5e9..1d856ea7 100644 --- a/tools/README.txt +++ b/tools/README.txt @@ -1,5 +1,8 @@ +update.py +--------- + Clones and/or pulls many git repositories from the open source games entries, so that one has an archive of them. -Currently requires at least 55 GB space! +Currently requires at least 100 GB space! Run update.py to update the archive. URLs are stored in archives.json. \ No newline at end of file diff --git a/tools/archives.json b/tools/archives.json index 9efb225a..d217f262 100644 --- a/tools/archives.json +++ b/tools/archives.json @@ -1,6 +1,7 @@ { "git": [ "http://git.artsoft.org/rocksndiamonds.git", + "http://git.maxr.org/maxr/maxr.git", "http://git.pond.sub.org/empserver", "http://repo.or.cz/openal-soft.git", "https://anongit.freedesktop.org/git/pkg-config.git", @@ -90,6 +91,8 @@ "https://github.com/NetHack/NetHack.git", "https://github.com/Nop90-Switch/Meritous-Switch.git", "https://github.com/OGRECave/ogre.git", + "https://github.com/OneSleepyDev/boswars_osd.git", + "https://github.com/OneSleepyDev/boswars_osd_archive.git", "https://github.com/OpenApoc/OpenApoc.git", "https://github.com/OpenDUNE/OpenDUNE.git", "https://github.com/OpenMW/openmw.git", @@ -142,7 +145,6 @@ "https://github.com/Zetawar/zetawar.git", "https://github.com/Zukero/andors-trail.git", "https://github.com/aburch/simutrans.git", - "https://github.com/acahir/moria.git", "https://github.com/akarnokd/open-ig.git", "https://github.com/alphaonex86/CatchChallenger.git", "https://github.com/anael-seghezzi/Maratis-4.git", @@ -169,6 +171,7 @@ "https://github.com/delight-im/OpenSoccer.git", "https://github.com/dmecke/OpenSoccerStar.git", "https://github.com/doxygen/doxygen.git", + "https://github.com/dungeons-of-moria/umoria.git", "https://github.com/ec429/harris.git", "https://github.com/egoboo/egoboo.git", "https://github.com/endless-sky/endless-sky.git", @@ -308,6 +311,7 @@ "https://gitlab.com/Trilarion/civilwar.git", "https://gitlab.com/Trilarion/coltoo.git", "https://gitlab.com/Trilarion/conquests.git", + "https://gitlab.com/Trilarion/crimson.git", "https://gitlab.com/Trilarion/devana.git", "https://gitlab.com/Trilarion/digitalalovestory.git", "https://gitlab.com/Trilarion/dragon-history.git", @@ -344,6 +348,7 @@ "https://gitlab.com/Trilarion/wargamer.git", "https://gitlab.com/Trilarion/watomic.git", "https://gitlab.com/Trilarion/worldofheroes.git", + "https://gitlab.com/Trilarion/xarchon.git", "https://gitlab.com/Trilarion/xconq.git", "https://gitlab.com/Trilarion/zangband.git", "https://gitlab.com/evol/evol-all.git", diff --git a/tools/maintenance.py b/tools/maintenance.py index d8ed7679..bc1d36dc 100644 --- a/tools/maintenance.py +++ b/tools/maintenance.py @@ -654,17 +654,17 @@ def update_primary_code_repositories(): if not consumed: unconsumed_entries.append([info['title'], info[field]]) - #if info['code repository']: - # print('Entry "{}" unconsumed repo: {}'.format(info['title'], info[field])) - if not info['code repository']: + if info['code repository']: print('Entry "{}" unconsumed repo: {}'.format(info['title'], info[field])) + #if not info['code repository']: + # print('Entry "{}" unconsumed repo: {}'.format(info['title'], info[field])) # sort them alphabetically (and remove duplicates) for k, v in primary_repos.items(): primary_repos[k] = sorted(set(v)) # write them to tools/git - json_path = os.path.join(games_path, os.path.pardir, 'tools', 'archive', 'archives.json') + json_path = os.path.join(games_path, os.path.pardir, 'tools', 'archives.json') text = json.dumps(primary_repos, indent=1) write_text(json_path, text)