Create package

This commit is contained in:
Loic Guegan 2020-04-21 17:50:05 +02:00
parent 5c07eda3fa
commit 5c0cc8e2f4
8 changed files with 189 additions and 3 deletions

0
libs/__init__.py Normal file
View file

9
libs/args.py Normal file
View file

@ -0,0 +1,9 @@
#!/usr/bin/env python
import argparse
args_parser = argparse.ArgumentParser()
args_parser.add_argument("resource", help="A JSON resource file.")
args_parser.add_argument("destination", help="Start page folder name.")
args = args_parser.parse_args()

23
libs/resource.py Normal file
View file

@ -0,0 +1,23 @@
#!/usr/bin/env python
from os import path
import json, jsonschema
class Resource:
def __init__(self, resource):
self.resource=resource
# Read data
try:
with open(resource,'r') as f:
self.data=f.read()
except IOError:
print("Unable to found "+resource)
exit(1)
# Decode data
try:
self.json=json.loads(self.data)
except:
print("Unable to read json from "+resource)
exit(1)

29
libs/theme.py Normal file
View file

@ -0,0 +1,29 @@
#!/usr/bin/env python
from resource import Resource
from shutil import copytree, ignore_patterns
from jinja2 import Template
import os
class Theme:
def __init__(self, path, resource_data):
res=Resource(path+"/resources.json")
self.theme_path=path.strip('/')
self.data=res.json
self.data.update(resource_data)
# Read theme
try:
with open(path+"/index.html",'r') as f:
self.template=Template(f.read())
except IOError:
print("Unable to found "+resource)
exit(1)
def deploy(self, path):
copytree(self.theme_path, path, dirs_exist_ok=True,ignore=ignore_patterns("*.json","index.html"))
themes_dir=os.path.split(self.theme_path)[0]
theme_dir=os.path.split(self.theme_path)[1]
with open(path+"/index.html", "w") as index:
index.write(self.template.render(self.data))