Source code for pymyinstall.installcustom.install_custom_inkscape

"""
Various functions to install `InkScape <https://inkscape.org/>`_.


:githublink:`%|py|5`
"""
from __future__ import print_function
import sys
import os
import re
from ..installhelper.install_cmd_helper import run_cmd
from .install_custom import download_page, download_file


[docs]def install_inkscape(dest_folder=".", fLOG=print, install=True, version=None): """ Installs `InkScape <https://inkscape.org/en/>`_ (only on Windows). :param dest_folder: where to download the setup :param fLOG: logging function :param install: install (otherwise only download) :param version: version to install (unused) :return: temporary file :githublink:`%|py|23` """ if version is not None: raise ValueError("cannot specify a version") if not sys.platform.startswith("win"): raise NotImplementedError( "MinGW can only be installed on Windows at the moment") link = "https://inkscape.org/en/download/windows/" page = download_page(link) if sys.platform.startswith("win"): reg = re.compile("href=\\\"(.*x64[.]msi)\\\"") alls = reg.findall(page) if len(alls) == 0: raise Exception( "unable to find a link on a .exe file on page: " + page) url = alls[0] outfile = os.path.join(dest_folder, url.split("/")[-1]) if not os.path.exists(outfile): fLOG("[pymy] download ", url) local = download_file(url, outfile) else: return outfile if install: run_cmd("msiexec /i " + local, fLOG=fLOG, wait=True) return local else: raise NotImplementedError("not available on platform " + sys.platform)