full new game command

master
Tait Hoyem 2 years ago
parent cf01547eeb
commit e646485ca2

@ -1,5 +1,20 @@
from django.core.management.base import BaseCommand
from shutil import copytree
import os
def join(*args):
return os.path.join(*args)
def rename(old_name, new_name):
os.rename(old_name, new_name)
def sed(to_replace, replace_with, fname):
text = ""
with open(fname) as file:
text = file.read().replace(to_replace, replace_with)
with open(fname + ".new", "w") as new_file:
new_file.write(text)
rename(fname + ".new", fname)
class Command(BaseCommand):
help = "Add a new game to lamegames (locally)"
@ -11,4 +26,19 @@ class Command(BaseCommand):
# copy all info from skel into new directory
copytree("skel", options["game_name"])
# change any names including skel to options["game_name"]
rename(
join(options["game_name"], "static", "games", "skel.js"),
join(options["game_name"], "static", "games", options["game_name"] + ".js")
)
rename(
join(options["game_name"], "templates", "games", "skel.html"),
join(options["game_name"], "templates", "games", options["game_name"] + ".html")
)
# change any mention of "skel" in files to options["game_name"]
sed("skel.html", options["game_name"] + ".html", join(options["game_name"], "views.py"))
sed("SkelConsumer", options["game_name"].capitalize() + "Consumer", join(options["game_name"], "consumers.py"))
sed("skel", options["game_name"], join(options["game_name"], "urls.py"))
sed("Skel", options["game_name"].capitalize(), join(options["game_name"], "urls.py"))
sed("skel", options["game_name"], join(options["game_name"], "apps.py"))
sed("SkelConfig", options["game_name"].capitalize() + "Config", join(options["game_name"], "apps.py"))
self.stdout.write(self.style.SUCCESS("Started new game \"" + options["game_name"] + "\""))

Loading…
Cancel
Save