inkstitch/lib/api/install.py

56 wiersze
1.4 KiB
Python

# 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()