inital commit
This commit is contained in:
commit
c944d4c5e9
3 changed files with 112 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*.pyc
|
26
README.md
Normal file
26
README.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
# pan.do/ra site config overlay
|
||||
|
||||
fork this repo into pandora_<sitename> and add your pan.do/ra customizations
|
||||
|
||||
place your config as config.jsonc, add custom files to static/js, poster scripts to scripts
|
||||
|
||||
custom files should be in the form <file>.<sitename>.js
|
||||
|
||||
i.e. js overlay:
|
||||
|
||||
static/js/home.<sitename>.js
|
||||
|
||||
png overly the same i.e.
|
||||
|
||||
static/png/icon.<sitename>.png
|
||||
|
||||
poster/icon script without <sitename>:
|
||||
script/item_icon.py
|
||||
script/list_icon.py
|
||||
script/potser.py
|
||||
|
||||
if you need a custom django module, touch __init__.py and install.py will take care of that too.
|
||||
|
||||
to use js pages from other sites, add them to overwrite in install.py
|
||||
|
||||
to deploy, checkout your fork into /srv/pandora/pandora/<sitename> and run ./install.py
|
85
install.py
Executable file
85
install.py
Executable file
|
@ -0,0 +1,85 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import os
|
||||
from os.path import join, abspath, basename, dirname
|
||||
|
||||
# change this
|
||||
name = 'placeholder'
|
||||
overwrite = (
|
||||
#('home', 'indiancinema'),
|
||||
#('infoView', 'indiancinema'),
|
||||
)
|
||||
|
||||
base = abspath(dirname(__file__))
|
||||
os.chdir(base)
|
||||
|
||||
for root, folders, files in os.walk(join(base, 'static')):
|
||||
for f in files:
|
||||
src = join(root, f)
|
||||
target = src.replace(base, '/srv/pandora')
|
||||
rel_src = os.path.relpath(src, dirname(target))
|
||||
if os.path.exists(target):
|
||||
os.unlink(target)
|
||||
os.symlink(rel_src, target)
|
||||
|
||||
if overwrite:
|
||||
os.chdir('/srv/pandora/static/js')
|
||||
for filename, sitename in overwrite:
|
||||
src = '%s.%s.js' % (filename, sitename)
|
||||
target = '%s.%s.js' % (filename, name)
|
||||
if os.path.exists(target):
|
||||
os.unlink(target)
|
||||
os.symlink(src, target)
|
||||
|
||||
os.chdir(base)
|
||||
src = join(base, 'config.jsonc')
|
||||
target = '/srv/pandora/pandora/config.%s.jsonc' % name
|
||||
rel_src = os.path.relpath(src, dirname(target))
|
||||
if os.path.exists(target):
|
||||
os.unlink(target)
|
||||
os.symlink(rel_src, target)
|
||||
t = '/srv/pandora/pandora/config.jsonc'
|
||||
if os.path.exists(t):
|
||||
os.unlink(t)
|
||||
os.symlink(basename(target), t)
|
||||
|
||||
for root, folders, files in os.walk(join(base, 'scripts')):
|
||||
for f in files:
|
||||
src = join(root, f)
|
||||
target = src.replace(base, '/srv/pandora')
|
||||
rel_src = os.path.relpath(src, dirname(target))
|
||||
if os.path.exists(target):
|
||||
os.unlink(target)
|
||||
os.symlink(rel_src, target)
|
||||
if f == 'poster.%s.py' % name:
|
||||
t = os.path.join(dirname(target), 'poster.py')
|
||||
if os.path.exists(t):
|
||||
os.unlink(t)
|
||||
os.symlink(f, os.path.join(dirname(target), t))
|
||||
|
||||
|
||||
if os.path.exists('__init__.py'):
|
||||
# make module available to pandora
|
||||
target = os.path.join('/srv/pandora/pandora/', name)
|
||||
rel_src = os.path.relpath(base, dirname(target))
|
||||
if os.path.exists(target):
|
||||
os.unlink(target)
|
||||
os.symlink(rel_src, target)
|
||||
|
||||
# include module in local settings
|
||||
local_settings_py = '/srv/pandora/pandora/local_settings.py'
|
||||
with open(local_settings_py) as fd:
|
||||
local_settings_changed = False
|
||||
local_settings = fd.read()
|
||||
if 'LOCAL_APPS' not in local_settings:
|
||||
local_settings += '\nLOCAL_APPS = ["%s"]\n' % name
|
||||
local_settings_changed = True
|
||||
else:
|
||||
apps = re.compile('(LOCAL_APPS.*?)\]', re.DOTALL).findall(local_settings)[0]
|
||||
if name not in apps:
|
||||
new_apps = apps.strip() + ',\n"%s"\n' % name
|
||||
local_settings = local_settings.replace(apps, new_apps)
|
||||
local_settings_changed = True
|
||||
if local_settings_changed:
|
||||
with open(local_settings_py, 'w') as fd:
|
||||
fd.write(local_settings)
|
Loading…
Reference in a new issue