several improvements
This commit is contained in:
parent
704bfaebf0
commit
a6d815e855
@ -6,6 +6,8 @@
|
|||||||
<param name="tab" type="notebook">
|
<param name="tab" type="notebook">
|
||||||
<page name="tab_settings" gui-text="Upgrade Options">
|
<page name="tab_settings" gui-text="Upgrade Options">
|
||||||
<label appearance="header">Install Updates / Options</label>
|
<label appearance="header">Install Updates / Options</label>
|
||||||
|
<param name="install_requirements" type="bool" gui-text="Install python requirements" gui-description="Installs all python requirements from requirements.txt. This may take up to 10 minutes or may. There will be no visible console output until finished. Please wait until completed.">false</param>
|
||||||
|
|
||||||
<param name="convert_to_git" type="bool" gui-text="Convert to .git" gui-description="If you downloaded MightyScape as .zip or .tar.gz you cannot upgrade using this extension. But you can convert your downloaded directory to a .git one by enabling this option">false</param>
|
<param name="convert_to_git" type="bool" gui-text="Convert to .git" gui-description="If you downloaded MightyScape as .zip or .tar.gz you cannot upgrade using this extension. But you can convert your downloaded directory to a .git one by enabling this option">false</param>
|
||||||
<param name="recreate_remotes" type="bool" gui-text="Recreate remotes" gui-description="Update remotes in git config file (useful if you have an older version of MightyScape or if something changes). Warning: might drop passwords/auth tokens!">false</param>
|
<param name="recreate_remotes" type="bool" gui-text="Recreate remotes" gui-description="Update remotes in git config file (useful if you have an older version of MightyScape or if something changes). Warning: might drop passwords/auth tokens!">false</param>
|
||||||
<param name="stash_untracked" type="bool" gui-text="Stash untracked files" gui-description="Enable to drop your local changes">false</param>
|
<param name="stash_untracked" type="bool" gui-text="Stash untracked files" gui-description="Enable to drop your local changes">false</param>
|
||||||
@ -17,7 +19,7 @@
|
|||||||
</page>
|
</page>
|
||||||
<page name="tab_about" gui-text="About">
|
<page name="tab_about" gui-text="About">
|
||||||
<label appearance="header">MightyScape Extension Collection</label>
|
<label appearance="header">MightyScape Extension Collection</label>
|
||||||
<label>2019 - 2023 / written by Mario Voigt (Stadtfabrikanten e.V. / FabLab Chemnitz)</label>
|
<label>2019 - 2024 / written by Mario Voigt (Stadtfabrikanten e.V. / FabLab Chemnitz)</label>
|
||||||
<spacer />
|
<spacer />
|
||||||
<label appearance="header">Online Documentation</label>
|
<label appearance="header">Online Documentation</label>
|
||||||
<label appearance="url">https://y.stadtfabrikanten.org/mightyscape-overview</label>
|
<label appearance="url">https://y.stadtfabrikanten.org/mightyscape-overview</label>
|
||||||
|
@ -16,6 +16,8 @@ ToDo
|
|||||||
|
|
||||||
import inkex
|
import inkex
|
||||||
import os
|
import os
|
||||||
|
import subprocess
|
||||||
|
from subprocess import Popen, PIPE
|
||||||
import warnings
|
import warnings
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
try:
|
try:
|
||||||
@ -27,6 +29,19 @@ except:
|
|||||||
|
|
||||||
class AboutUpgradeMightyScape(inkex.EffectExtension):
|
class AboutUpgradeMightyScape(inkex.EffectExtension):
|
||||||
|
|
||||||
|
def install_requirements(self):
|
||||||
|
requirements = inkex.utils.debug(os.path.abspath(os.path.join(self.ext_path()) + "/../../../requirements.txt"))
|
||||||
|
if not os.path.exists(requirements):
|
||||||
|
inkex.utils.debug("requirements.txt could not be found.")
|
||||||
|
exit(1)
|
||||||
|
command = ["python3 -m pip install --upgrade --quiet --no-cache-dir -r " + requirements]
|
||||||
|
inkex.utils.debug("Executing: {}".format(command))
|
||||||
|
proc = subprocess.Popen(command, shell=True, stdout=PIPE, stderr=PIPE)
|
||||||
|
stdout, stderr = proc.communicate()
|
||||||
|
inkex.utils.debug(stdout.decode('UTF-8'))
|
||||||
|
inkex.utils.debug(stderr.decode('UTF-8'))
|
||||||
|
proc.wait()
|
||||||
|
|
||||||
def update(self, local_repo, remote, localCommitCount):
|
def update(self, local_repo, remote, localCommitCount):
|
||||||
inkex.utils.debug("Chosen remote is: {}".format(remote))
|
inkex.utils.debug("Chosen remote is: {}".format(remote))
|
||||||
try:
|
try:
|
||||||
@ -46,16 +61,8 @@ class AboutUpgradeMightyScape(inkex.EffectExtension):
|
|||||||
#origin.fetch()
|
#origin.fetch()
|
||||||
#fetch_info = origin.pull() #finally pull new data
|
#fetch_info = origin.pull() #finally pull new data
|
||||||
fetch_info = remote_repo.fetch()
|
fetch_info = remote_repo.fetch()
|
||||||
try:
|
remote_repo.pull() #finally pull new data
|
||||||
remote_repo.pull() #finally pull new data
|
|
||||||
except git.exc.GitCommandError as e:
|
|
||||||
if "Your local changes to the following files would be overwritten by merge" in str(e):
|
|
||||||
inkex.utils.debug("Please save or stash your local git changes first and try again. You can enable 'Stash untracked files' to continue.")
|
|
||||||
exit(1)
|
|
||||||
else:
|
|
||||||
inkex.utils.debug("Error: ")
|
|
||||||
inkex.utils.debug(e)
|
|
||||||
exit(1)
|
|
||||||
for info in fetch_info: #should return only one line in total
|
for info in fetch_info: #should return only one line in total
|
||||||
inkex.utils.debug("Updated {} to commit id {}. {} commits were pulled".format(info.ref, str(info.commit)[:7], remoteCommitCount - localCommitCount))
|
inkex.utils.debug("Updated {} to commit id {}. {} commits were pulled".format(info.ref, str(info.commit)[:7], remoteCommitCount - localCommitCount))
|
||||||
|
|
||||||
@ -65,14 +72,18 @@ class AboutUpgradeMightyScape(inkex.EffectExtension):
|
|||||||
inkex.utils.debug("Nothing to do! MightyScape is already up to date!")
|
inkex.utils.debug("Nothing to do! MightyScape is already up to date!")
|
||||||
|
|
||||||
except git.exc.GitCommandError as e:
|
except git.exc.GitCommandError as e:
|
||||||
inkex.utils.debug("Error: ")
|
if "Your local changes to the following files would be overwritten by merge" in e:
|
||||||
inkex.utils.debug(e)
|
inkex.utils.debug("Please save or stash your local git changes first and try again. You can enable 'Stash untracked files' to continue.")
|
||||||
|
else:
|
||||||
|
inkex.utils.debug("Error: ")
|
||||||
|
inkex.utils.debug(e)
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def add_arguments(self, pars):
|
def add_arguments(self, pars):
|
||||||
pars.add_argument("--tab")
|
pars.add_argument("--tab")
|
||||||
|
pars.add_argument("--install_requirements", type=inkex.Boolean, default=False, help="Install python requirements")
|
||||||
pars.add_argument("--convert_to_git", type=inkex.Boolean, default=False, help="If you downloaded MightyScape as .zip or .tar.gz you cannot upgrade using this extension. But you can convert your downloaded directory to a .git one by enabling this option")
|
pars.add_argument("--convert_to_git", type=inkex.Boolean, default=False, help="If you downloaded MightyScape as .zip or .tar.gz you cannot upgrade using this extension. But you can convert your downloaded directory to a .git one by enabling this option")
|
||||||
pars.add_argument("--recreate_remotes", type=inkex.Boolean, default=False, help="Update remotes in git config file (useful if you have an older version of MightyScape or if sth. changes)")
|
pars.add_argument("--recreate_remotes", type=inkex.Boolean, default=False, help="Update remotes in git config file (useful if you have an older version of MightyScape or if sth. changes)")
|
||||||
pars.add_argument("--stash_untracked", type=inkex.Boolean, default=False, help="Stash untracked files and continue to upgrade")
|
pars.add_argument("--stash_untracked", type=inkex.Boolean, default=False, help="Stash untracked files and continue to upgrade")
|
||||||
@ -85,6 +96,9 @@ class AboutUpgradeMightyScape(inkex.EffectExtension):
|
|||||||
|
|
||||||
warnings.simplefilter('ignore', ResourceWarning) #suppress "enable tracemalloc to get the object allocation traceback"
|
warnings.simplefilter('ignore', ResourceWarning) #suppress "enable tracemalloc to get the object allocation traceback"
|
||||||
|
|
||||||
|
if so.install_requirements is True:
|
||||||
|
self.install_requirements()
|
||||||
|
|
||||||
#get the directory of mightyscape
|
#get the directory of mightyscape
|
||||||
extension_dir = os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), '../')) #go up to main dir /home/<user>/.config/inkscape/extensions/mightyscape-1.2/
|
extension_dir = os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), '../')) #go up to main dir /home/<user>/.config/inkscape/extensions/mightyscape-1.2/
|
||||||
main_dir = os.path.abspath(os.path.join(extension_dir, '../../')) #go up to main dir /home/<user>/.config/inkscape/extensions/mightyscape-1.2/
|
main_dir = os.path.abspath(os.path.join(extension_dir, '../../')) #go up to main dir /home/<user>/.config/inkscape/extensions/mightyscape-1.2/
|
||||||
|
@ -9,36 +9,36 @@
|
|||||||
<option value="rect_from_xy">Rectangle from width and height</option>
|
<option value="rect_from_xy">Rectangle from width and height</option>
|
||||||
<option value="rect_from_selection">Rectangle from selection</option>
|
<option value="rect_from_selection">Rectangle from selection</option>
|
||||||
</param>
|
</param>
|
||||||
<param name="rx" type="int" max="10000" gui-text="Width">1000</param>
|
<param name="rx" type="int" min="0" max="10000" gui-text="Width">1000</param>
|
||||||
<param name="ry" type="int" max="10000" gui-text="Height">1000</param>
|
<param name="ry" type="int" min="0" max="10000" gui-text="Height">1000</param>
|
||||||
<separator/>
|
<separator/>
|
||||||
<param name="mainSize" type="float" max="100.0" precision="3" gui-text="Size of objects (scale factor)">1.000</param>
|
<param name="mainSize" type="float" max="100.0" precision="3" gui-text="Size of objects (scale factor)">1.000</param>
|
||||||
<param name="mainNum" type="int" max="5000" gui-text="Number of objects (acts as multiplicator)">1</param>
|
<param name="mainNum" type="int" min="0" max="5000" gui-text="Number of objects (acts as multiplicator)">1</param>
|
||||||
<param name="randomize" type="bool" gui-text="Randomize number of objects">true</param>
|
<param name="randomize" type="bool" gui-text="Randomize number of objects">true</param>
|
||||||
<param name="allInOneGroup" type="bool" gui-text="Put all items into one group">true</param>
|
<param name="allInOneGroup" type="bool" gui-text="Put all items into one group">true</param>
|
||||||
</page>
|
</page>
|
||||||
<page name="Scratches" gui-text="Scratches">
|
<page name="Scratches" gui-text="Scratches">
|
||||||
<param name="honp" type="bool" gui-text="Enable scratches">true</param>
|
<param name="honp" type="bool" gui-text="Enable scratches">true</param>
|
||||||
<param name="hsize" type="float" max="100.0" min="-100.0" precision="3" gui-text="Size of scratches">2.000</param>
|
<param name="hsize" type="float" min="-100.0" max="100.0" precision="3" gui-text="Size of scratches">2.000</param>
|
||||||
<param name="hgrow" type="float" max="100.0" min="-100.0" precision="3" gui-text="Grow scratches with distance">0.000</param>
|
<param name="hgrow" type="float" min="-100.0" max="100.0" precision="3" gui-text="Grow scratches with distance">0.000</param>
|
||||||
<param name="hnum" type="int" max="100.0" gui-text="Number of scratches">10</param>
|
<param name="hnum" type="int" min="0" max="100" gui-text="Number of scratches">10</param>
|
||||||
<param name="hrad" type="bool" gui-text="Angle scratches toward center">false</param>
|
<param name="hrad" type="bool" gui-text="Angle scratches toward center">false</param>
|
||||||
<param name="hang" type="float" max="180.0" min="-180.0" precision="3" gui-text="Angle from radius">90.00</param>
|
<param name="hang" type="float" min="-180.0" max="180.0" precision="3" gui-text="Angle from radius">90.00</param>
|
||||||
<param name="hcurve" type="float" max="100.0" min="-100.0" precision="3" gui-text="Change angle with distance">0.000</param>
|
<param name="hcurve" type="float" min="-100.0" max="100.0" precision="3" gui-text="Change angle with distance">0.000</param>
|
||||||
<param name="hgrad" type="bool" gui-text="Use density gradient">false</param>
|
<param name="hgrad" type="bool" gui-text="Use density gradient">false</param>
|
||||||
</page>
|
</page>
|
||||||
<page name="Chips" gui-text="Chips">
|
<page name="Chips" gui-text="Chips">
|
||||||
<param name="conp" type="bool" gui-text="Enable chips">true</param>
|
<param name="conp" type="bool" gui-text="Enable chips">true</param>
|
||||||
<param name="csize" type="float" max="100.0" min="-100.0" precision="3" gui-text="Size of chips">1.000</param>
|
<param name="csize" type="float" min="-100.0" max="100.0" precision="3" gui-text="Size of chips">1.000</param>
|
||||||
<param name="cgrow" type="float" max="100.0" min="-100.0" precision="3" gui-text="Grow chips with distance">0.000</param>
|
<param name="cgrow" type="float" min="-100.0" max="100.0" precision="3" gui-text="Grow chips with distance">0.000</param>
|
||||||
<param name="cnum" type="int" max="100.0" gui-text="Number of chips">10</param>
|
<param name="cnum" type="int" min="0" max="100" gui-text="Number of chips">10</param>
|
||||||
<param name="cgrad" type="bool" gui-text="Use density gradient">false</param>
|
<param name="cgrad" type="bool" gui-text="Use density gradient">false</param>
|
||||||
</page>
|
</page>
|
||||||
<page name="Specks" gui-text="Specks">
|
<page name="Specks" gui-text="Specks">
|
||||||
<param name="sonp" type="bool" gui-text="Enable specks">true</param>
|
<param name="sonp" type="bool" gui-text="Enable specks">true</param>
|
||||||
<param name="ssize" type="float" max="100.0" min="-100.0" precision="3" gui-text="Size of specks">1.000</param>
|
<param name="ssize" type="float" max="100.0" min="-100.0" precision="3" gui-text="Size of specks">1.000</param>
|
||||||
<param name="sgrow" type="float" max="100.0" min="-100.0" precision="3" gui-text="Grow specks with distance">0.000</param>
|
<param name="sgrow" type="float" max="100.0" min="-100.0" precision="3" gui-text="Grow specks with distance">0.000</param>
|
||||||
<param name="snum" type="int" max="100.0" gui-text="Number of specks">10</param>
|
<param name="snum" type="int" min="0" max="100" gui-text="Number of specks">10</param>
|
||||||
<param name="sgrad" type="bool" gui-text="Use density gradient">false</param>
|
<param name="sgrad" type="bool" gui-text="Use density gradient">false</param>
|
||||||
</page>
|
</page>
|
||||||
</param>
|
</param>
|
||||||
|
@ -60,7 +60,6 @@ This extension is a Python rewrite of the Generator bash script extension by Aur
|
|||||||
</param>
|
</param>
|
||||||
<effect needs-live-preview="false">
|
<effect needs-live-preview="false">
|
||||||
<object-type>all</object-type>
|
<object-type>all</object-type>
|
||||||
<menu-tip>Automatically replace values and export the result.</menu-tip>
|
|
||||||
<effects-menu>
|
<effects-menu>
|
||||||
<submenu name="FabLab Chemnitz">
|
<submenu name="FabLab Chemnitz">
|
||||||
<submenu name="Import/Export/Transfer" />
|
<submenu name="Import/Export/Transfer" />
|
||||||
|
@ -20,9 +20,9 @@
|
|||||||
<option value="R9 DXF">R9 (OpenDesign)</option>
|
<option value="R9 DXF">R9 (OpenDesign)</option>
|
||||||
</param>
|
</param>
|
||||||
<param name="qcad_join_polylines" type="bool" gui-text="Join Polylines">true</param>
|
<param name="qcad_join_polylines" type="bool" gui-text="Join Polylines">true</param>
|
||||||
<param name="qcad_tolerance" type="float" min="0.0000001" max="999999" precision="3" gui-text="Polyline tolerance" gui-description="">0.001</param>
|
<param name="qcad_tolerance" type="float" min="0.0000001" max="999999" precision="3" gui-text="Polyline tolerance">0.001</param>
|
||||||
<param name="qcad_purge_duplicates" type="bool" gui-text="Purge duplicate lines">false</param>
|
<param name="qcad_purge_duplicates" type="bool" gui-text="Purge duplicate lines">false</param>
|
||||||
<param name="qcad_pro_path" type="path" mode="file" gui-text="QCAD Pro executable path" gui-description="Do not use Community Edition, as it will not work.">~/opt/qcad-3.28.2-pro-linux-x86_64/qcad</param>z
|
<param name="qcad_pro_path" type="path" mode="file" gui-text="QCAD Pro executable path" gui-description="Do not use Community Edition, as it will not work.">~/opt/qcad-3.28.2-pro-linux-x86_64/qcad</param>
|
||||||
<param name="debug" type="bool" gui-text="Show debug info">false</param>
|
<param name="debug" type="bool" gui-text="Show debug info">false</param>
|
||||||
<param name="open_in_qcad" type="bool" gui-text="Open export file in QCAD">false</param>
|
<param name="open_in_qcad" type="bool" gui-text="Open export file in QCAD">false</param>
|
||||||
</page>
|
</page>
|
||||||
|
Loading…
Reference in New Issue
Block a user