Source code for pymyinstall.installcustom.install_custom_revealjs

"""
Various functions to install `reveal.js <https://github.com/hakimel/reveal.js/releases>`_.


:githublink:`%|py|5`
"""
from __future__ import print_function
import re
import os
import sys

from .install_custom import download_page, download_file
from ..installhelper.install_cmd_helper import unzip_files

if sys.version_info[0] == 2:
    FileNotFoundError = Exception


[docs]def download_revealjs( temp_folder=".", unzip_to=".", fLOG=print, force_download=False, location="https://github.com/hakimel/reveal.js/releases", clean=True, version=None): """ Download `reveal.js <https://github.com/hakimel/reveal.js/releases>`_ release. and unzip it. :param temp_folder: where to download the setup :param unzip_to: where to unzip the files :param fLOG: logging function :param install: install (otherwise only download) :param force_download: force the downloading of pandoc :param location: location of reveal.js release :param clean: clean unnecessary files :param version: version to download (unused) :return: list of downloaded and unzipped files :githublink:`%|py|38` """ if version is not None: raise ValueError("cannot specify a version") link = location page = download_page(link) reg = re.compile("href=\\\"(.*?[.]zip)\\\"") alls = reg.findall(page) if len(alls) == 0: raise Exception( "unable to find a link on a .zip file on page: " + page) filename = alls[0].split("/")[-1] filel = location.replace("releases", "").rstrip( "/") + "/archive/{0}".format(filename) outfile = os.path.join(temp_folder, "reveal.js." + filename) version = ".".join(filel.split("/")[-1].split(".")[:-1]) fLOG("[pymy] download ", filel, "to", outfile, "version", version) local = download_file(filel, outfile) res = unzip_files(local, whereTo=unzip_to, fLOG=fLOG) master = os.path.join(unzip_to, "reveal.js-%s" % version) if not os.path.exists(master): raise FileNotFoundError("unable to find: " + master) new_master = os.path.join(unzip_to, "reveal.js") os.rename(master, new_master) res = [r.replace(master, new_master) for r in res] keep = [] for r in res: if os.path.isdir(r): continue if ".gitignore" in r or ".travis.yml" in r or "index.html" in r \ or "README" in r or "CONTRIBUTING.md" in r: os.remove(r) elif "/test/" in r.replace("\\", "/"): os.remove(r) else: keep.append(r) return keep