# Authors: see git history # # Copyright (c) 2010 Authors # Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details. import os import sys from glob import glob from flask import Blueprint, jsonify, request from ..utils import get_bundled_dir, guess_inkscape_config_path install = Blueprint('install', __name__) @install.route('/palettes', methods=["POST"]) def palettes(): try: base_path = request.json.get('path') or guess_inkscape_config_path() path = os.path.join(base_path, 'palettes') src_dir = get_bundled_dir('palettes') copy_files(glob(os.path.join(src_dir, "*")), path) except Exception as exc: return jsonify({"error": str(exc)}), 500 return jsonify({"status": "success"}) if sys.platform == "win32": # If we try to just use shutil.copy it says the operation requires elevation. def copy_files(files, dest): import pythoncom import winutils pythoncom.CoInitialize() if not os.path.exists(dest): os.makedirs(dest) winutils.copy(files, dest) else: def copy_files(files, dest): import shutil if not os.path.exists(dest): os.makedirs(dest) for palette_file in files: shutil.copy(palette_file, dest) @install.route('/default-path') def default_path(): return guess_inkscape_config_path()