From 64f4b959f82cb3b08ea4255c4085f313cdf0205a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 4 Jan 2026 04:41:54 +0000 Subject: [PATCH] Changes before error encountered Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com> --- .gitignore | 30 +++++++++++++++ Makefile | 36 +++++++++++++++++- .../lib/__pycache__/common.cpython-312.pyc | Bin 15773 -> 0 bytes .../joomla_manifest.cpython-312.pyc | Bin 14399 -> 0 bytes 4 files changed, 65 insertions(+), 1 deletion(-) delete mode 100644 scripts/lib/__pycache__/common.cpython-312.pyc delete mode 100644 scripts/lib/__pycache__/joomla_manifest.cpython-312.pyc diff --git a/.gitignore b/.gitignore index 90279ad..8d3812a 100644 --- a/.gitignore +++ b/.gitignore @@ -793,6 +793,36 @@ package-lock.json .phpunit.result.cache codeception.phar +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST +.pytest_cache/ +.coverage +.coverage.* +htmlcov/ +.tox/ +.nox/ +*.cover +.hypothesis/ + # ============================================================ # Keep-empty folders helper # ============================================================ diff --git a/Makefile b/Makefile index 634f298..7e302f9 100644 --- a/Makefile +++ b/Makefile @@ -179,8 +179,42 @@ list-scripts: @echo "Available fix scripts:" @find scripts/fix -type f -name "*.sh" -exec basename {} \; | sort @echo "" - @echo "Available run scripts:" + @echo "Available run scripts (bash):" @find scripts/run -type f -name "*.sh" -exec basename {} \; | sort + @echo "" + @echo "Available run scripts (python):" + @find scripts/run -type f -name "*.py" -exec basename {} \; | sort + +## scaffold: Create new Joomla extension scaffolding +scaffold: + @echo "Create new Joomla extension scaffolding" + @echo "" + @echo "Usage: make scaffold TYPE= NAME= AUTHOR= DESC=" + @echo "" + @echo "Types: component, module, plugin, template, package" + @echo "" + @echo "Example:" + @echo " make scaffold TYPE=module NAME='My Module' AUTHOR='John Doe' DESC='Module description'" + +## scaffold-component: Create a component +scaffold-component: + @python3 scripts/run/scaffold_extension.py component "$(NAME)" "$(DESC)" "$(AUTHOR)" + +## scaffold-module: Create a module +scaffold-module: + @python3 scripts/run/scaffold_extension.py module "$(NAME)" "$(DESC)" "$(AUTHOR)" --client $(CLIENT) + +## scaffold-plugin: Create a plugin +scaffold-plugin: + @python3 scripts/run/scaffold_extension.py plugin "$(NAME)" "$(DESC)" "$(AUTHOR)" --group $(GROUP) + +## scaffold-template: Create a template +scaffold-template: + @python3 scripts/run/scaffold_extension.py template "$(NAME)" "$(DESC)" "$(AUTHOR)" + +## scaffold-package: Create a package +scaffold-package: + @python3 scripts/run/scaffold_extension.py package "$(NAME)" "$(DESC)" "$(AUTHOR)" ## docs: Open documentation docs: diff --git a/scripts/lib/__pycache__/common.cpython-312.pyc b/scripts/lib/__pycache__/common.cpython-312.pyc deleted file mode 100644 index 849226b727a322d0b50b77bc8b964c89964f993b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15773 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
H@Dir<-Z#KK)rSF z!|?k*Vx9P}9=^5aL$qdCD;Lc84_ytWaSje5icA6K5Pt%3JlD83+;lJ`^!IloV2O8# z#~z5?)$R`MQYav%$n;|8v~+-OT*t&FNgKi6pcvaow>CKj=}-i!CzGnsRzo4}RmcNX zKA=}Gy;|wTD9dQPo<2o-6?s9sN*hB?(PtN4x)T?2jdPt>sO(jGMd)>bUKBXBv5R6b zEE1r+MLF7+>DA>PzF{cI_cGY~Ddor_GIlDBl%t>;TR7N8_=)$haj*KQ@|UO}qoZzx z(aSq|o_{Q?Ga)3jQ?zn4@=Ibnxpl(L6xcXC-Q}KJOR!Fcl%8A|&}rfj^W{spwD^ zc#%+1BjH6tc#*IoqhX`b5JfJ&jv6ANhDh?&4t_(%Nj+}JwzFjVICZ??v417MIs=qQ zrj2B#f04fO;Q-&9Jv-fsQ<)cL*EQuieBa-)NJ+jSz_(^QrZ-P()1ldhomAI)A0tAN zZwT_cs1qd97zL6Ui~>o1o1foAV?~mUE>iM%O@Kd;k+QAR&g{YWl7#2LjKq@9&^n0+p*P9M)s&en$r>%kd@_2A=8LB2K9k=>ltvZ2|! zEi{PM`NWokIMa2z9pk(+cU4d*F5Xnm?vcUAm^@r;1XwD;$j7TzsOr1KK9k4 zw_sJ?iInw()a;3J%k@O%{vyf%eZR;D`Nj<9gXHo0D!x7of+3j!rI6&e1o@4bcBwhD7e{upxb;25^M*js1dY`BO diff --git a/scripts/lib/__pycache__/joomla_manifest.cpython-312.pyc b/scripts/lib/__pycache__/joomla_manifest.cpython-312.pyc deleted file mode 100644 index 0f80db25d2fc872b45c0b7656967f41f76330ee3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14399 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