diff options
| author | Kaalleen <36401965+kaalleen@users.noreply.github.com> | 2021-07-21 17:20:04 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-21 17:20:04 +0200 |
| commit | 1f725f42bbd299b6e5192a5404471a4fd89ae7f8 (patch) | |
| tree | 891b05809f85db54e15b89aebcc15a715be4c6ce /lib/extensions/install_custom_palette.py | |
| parent | c5b78273456836d328945b546dc5f14213488e5f (diff) | |
install custom palette extension (#1171)
Diffstat (limited to 'lib/extensions/install_custom_palette.py')
| -rw-r--r-- | lib/extensions/install_custom_palette.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/extensions/install_custom_palette.py b/lib/extensions/install_custom_palette.py new file mode 100644 index 00000000..da546cad --- /dev/null +++ b/lib/extensions/install_custom_palette.py @@ -0,0 +1,42 @@ +# Authors: see git history +# +# Copyright (c) 2021 Authors +# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details. + +import os +import shutil + +import inkex + +from ..i18n import _ +from ..utils import guess_inkscape_config_path +from .base import InkstitchExtension + + +class InstallCustomPalette(InkstitchExtension): + def __init__(self, *args, **kwargs): + InkstitchExtension.__init__(self, *args, **kwargs) + self.arg_parser.add_argument("-f", "--filepath", type=str, default="", dest="filepath") + + def effect(self): + gpl = self.options.filepath + if not os.path.isfile(gpl): + inkex.errormsg(_("File does not exist.")) + + palette_name = os.path.basename(gpl) + if not palette_name.endswith('.gpl'): + inkex.errormsg(_("Wrong file type. Ink/Stitch only accepts gpl color palettes.")) + + if not palette_name.startswith('InkStitch'): + palette_name = 'InkStitch %s' % palette_name + + palette_path = os.path.join(guess_inkscape_config_path(), 'palettes') + + if not os.path.isdir(palette_path): + inkex.errormsg(_("Ink/Stitch cannot find your palette folder automatically. Please install your palette manually.")) + dest = os.path.join(palette_path, palette_name) + shutil.copyfile(gpl, dest) + + if not os.path.isfile(dest): + inkex.errormsg("Something wwent wrong. Ink/Stitch wasn't able to copy your palette " + "file into the Inkscape palettes folder. Please do it manually.") |
