gOdoo-cli 0.3.12__tar.gz → 0.3.14__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/PKG-INFO +1 -1
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/pyproject.toml +1 -1
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/setup.py +1 -1
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/cli.py +10 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/bootstrap.py +4 -4
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/launch.py +8 -2
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/helpers/odoo_files.py +33 -1
- godoo_cli-0.3.14/src/godoo_cli/version.py +1 -0
- godoo_cli-0.3.12/src/godoo_cli/version.py +0 -1
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/LICENSE +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/README.md +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/__init__.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/__main__.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/__init__.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/config.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/rpc/__init__.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/rpc/cli.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/rpc/cli_callbacks.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/rpc/importer.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/rpc/modules.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/rpc/translations.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/shell.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/source_get.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/commands/test.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/git/__init__.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/git/git_odoo.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/git/git_odoo_addons.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/git/git_repo.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/git/git_url.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/git/zip_download.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/helpers/__init__.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/helpers/bootstrap.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/helpers/cli.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/helpers/odoo_manifest.py +0 -0
- {godoo_cli-0.3.12 → godoo_cli-0.3.14}/src/godoo_cli/helpers/system.py +0 -0
|
@@ -41,7 +41,7 @@ entry_points = \
|
|
|
41
41
|
|
|
42
42
|
setup_kwargs = {
|
|
43
43
|
'name': 'godoo-cli',
|
|
44
|
-
'version': '0.3.
|
|
44
|
+
'version': '0.3.14',
|
|
45
45
|
'description': 'Wrapper around Odoo-Bin with some convinience RPC functions.',
|
|
46
46
|
'long_description': '# gOdoo Dev Environment\n\n\n\n\n[<img src="https://raw.githubusercontent.com/OpenJKSoftware/gOdoo/main/assets/godoo-main-cli.png" width="1000"/>](image.png)\n\n**gOdoo** is short for **go Odoo**. \\\nIt is a [Vscode Devcontainer](https://code.visualstudio.com/docs/remote/containers) Environment for [Odoo](https://odoo.com/)\nwith Python CLI `godoo` convenience wrapper around `odoo-bin`.\n\nThis repository is the base source for the Python package [godoo-cli](https://pypi.org/project/godoo-cli/) and serves as\nan all batteries included development environment.\n\nMade Possible by: [WEMPE Elektronic GmbH](https://wetech.de)\n\n# gOdoo-cli\n\nPython package that provides `godoo` command line interface around `odoo-bin`.\n\nIt\'s build with [Typer](https://github.com/tiangolo/typer) to provide some convenience Wrappers for Odoo development and\nDeployment.\n\nMost flags can be configured by Env variables. \\\nUse `godoo --help` to find out more. HINT: Install tab-completion with `godoo --install-completion`\n\n# Docker\n\nThis workspace also contains Docker and Docker-Compose files. \\\n\nThey are used to provide either easy Odoo instances where the source is pulled according to\n[ODOO_MANIFEST.yml](./ODOO_MANIFEST.yml), or as a all batteries included devcontainer for VScode.\n\n## Requirements\n\n- [Docker Compose](https://github.com/docker/compose)\n- [Traefik](https://doc.traefik.io/traefik/) container running with docker provider and "traefik" named docker network.\n Example: [Traefik Devproxy](https://github.com/joshkreud/traefik_devproxy)\n- SSH Agent running. (check `echo $SSH_AUTH_SOCK`)\\\n This gets passed trough in the Buildprocess to clone Thirdparty repos.\n\n## Just wanna have a quick and easy Odoo Instance?\n\n```bash\ngit clone https://github.com/OpenJKSoftware/gOdoo\ncd godoo\n. scripts/container_requirements.sh # Check Requirements\ndocker-compose build\ndocker-compose up\n# wait......\n# wait a bit mode ...\n# just a little bit longer ..\n# There we go.\n# Odoo should be reachable on \'https://godoo.docker.localhost\' assuming you didn\'t change .env TRAEFIK_HOST_RULE or COMPOSE_PROJECT_NAME\n```\n\n# Devcontainer\n\n## Features\n\n- All batteries included [Devcontainer](https://code.visualstudio.com/docs/remote/containers) with postgres service\n Container and local DNS resolvig managed by [Traefik](https://doc.traefik.io/traefik/).\n- Easy fully working Odoo instance by `docker-compose up` with https access.\n- `godoo` CLI wrapper around Odoo. (Most flags can be configured by Environment Variables and are already preconfigured\n in the Containers. See [.env.sample](./.env.sample))\n- `odoo-bin` is added to PATH and can thus be invoked from every folder.\n- Odoo will run in Proxy_Mode behind a Traefik reverse proxy for easy access on\n `https://$COMPOSE_PROJECT_NAME.docker.localhost`\n- [Odoo Pylint plugin](https://github.com/OCA/pylint-odoo) preconfigured in vscode\n- Preinstalled vscode Extensions Highlights:\n - [SQL Tools](https://marketplace.visualstudio.com/items?itemName=mtxr.sqltools) with preconfigured connection for\n easy Database access in the Sidebar.\n - [Docker Extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) controls\n container host.\n - [Odoo Snippets](https://marketplace.visualstudio.com/items?itemName=mstuttgart.odoo-snippets)\n - [Odoo Developments](https://marketplace.visualstudio.com/items?itemName=scapigliato.vsc-odoo-development) can Grab\n Odoo Model information from a running Server\n - [Todo Tree](https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.todo-tree)\n\n## Usage\n\n1. For Docker on windows: Clone the repo into the WSL2 Filesystem for better IO performance\n2. Have [Traefik](https://github.com/traefik/traefik) Running on `docker.localhost`\n [Example](https://github.com/joshkreud/traefik_devproxy) \\\n There must be a Docker network called `traefik` that can reach traefik.\n3. Open Devcontianer:\n - If you have the Devcontainer CLI: `devcontainer open .`\n - If not open the workspace in Local Vscode. In the Command pallete search for `Reopen in container`\n4. From **within the container** start Odoo using one of the following commands:\n - You can enable godoo tab-completion by `godoo --install-completion`\n - `make` -> Loads Odoo + Workspace Addons\n - `make bare` -> Loads Odoo with ony `web` installed.\n - `make kill` -> Search for `odoo-bin` processes and kill them\n - `make reset` -> Drops DB, deletes config file and datafolder\n - The full init script is available via "`godoo`". (See --help for Options)\n5. Open Odoo `https://$COMPOSE_PROJECT_NAME.docker.localhost`\\\n For example `COMPOSE_PROJECT_NAME=godoo` --> [https://godoo.docker.localhost](https://godoo.docker.localhost)\n6. Login with `admin:admin`\n7. Profit!\n\n### Access to Odoo and Thirdparty addon Source\n\nYou can access the Odoo source by opening the VsCode workspace [full.code-workspace](full.code-workspace) from within\nthe Container. This will open a [Multi-Root Workspace](https://code.visualstudio.com/docs/editor/multi-root-workspaces).\nReally waiting for https://github.com/microsoft/vscode-remote-release/issues/3665 here.\n\n## Reset Devcontainer Data\n\nWhen you screwed up so bad its time to just start Over godoo has you covered:\n\n### Automatic Reset\n\nThere are 3 Options to reset the Dev Env.\n\n1. From **Outside** the Container run `make reset` in the project root to delete docker volumes and restart the\n container. (Vscode will prompt to reconnect if still open)\n2. From **Outside** the Container run `make reset-hard` in the project root to force rebuild the main Odoo container and\n then do the same as `make reset`\n3. From **Inside** the Container run `make reset` to drop the DB and delete varlib and the bootstrap flag, which is way\n quicker than the other options.\n\n### Manual Reset\n\n1. Close vscode\n2. Remove `app` and `db` container from docker.\n3. Remove volumes: `db, odoo_thirdparty, odoo_web, vscode_extensions`\n4. Restart Devcontainer\n\n## Python Debugging\n\n### VsCode Debugging\n\nDebugging doesn\'t reliably work with\n[Odoo Multiprocess](https://www.odoo.com/documentation/14.0/developer/misc/other/cmdline.html#multiprocessing) mode\nenabled. \\\nThe container ships with a Vscode Debug profile, that sets `--workers 0` to allow for Debugging Breakpoints. See [.vscode/launch.json](./.vscode/launch.json)\n\n### Interactive Shell\n\nUse `godoo shell` to enter an interactive shell on the Database.\n\n# Odoo Modules\n\n## Third Party Modules (manifest.yml)\n\nThe `godoo` bootstrap function, will download some modules using git. \\\nWhich Repos to download is specified in `ODOO_MANIFEST.yml` ([Default](./ODOO_MANIFEST.yml)) \\\nNot all of the cloned addons are automatically installed. \\\nInstall them via the Apps Page in Odoo using `godoo rpc modules install` or using `odoo-bin`.\\\nModules downloaded on the Odoo Marketplace can be dropped as a `.zip` archive in [./thirdparty](./thirdparty)\n',
|
|
47
47
|
'author': 'Joshua Kreuder',
|
|
@@ -5,6 +5,7 @@ from typing import Optional
|
|
|
5
5
|
|
|
6
6
|
import typer
|
|
7
7
|
from dotenv import load_dotenv
|
|
8
|
+
from rich import print as rich_print
|
|
8
9
|
|
|
9
10
|
from .commands import (
|
|
10
11
|
bootstrap_odoo,
|
|
@@ -18,6 +19,7 @@ from .commands import (
|
|
|
18
19
|
set_odoo_config,
|
|
19
20
|
uninstall_modules,
|
|
20
21
|
)
|
|
22
|
+
from .helpers.odoo_files import odoo_bin_get_version
|
|
21
23
|
from .helpers.system import set_logging
|
|
22
24
|
from .version import __version__
|
|
23
25
|
|
|
@@ -66,6 +68,13 @@ def main_callback(
|
|
|
66
68
|
set_logging(verbose=verbose)
|
|
67
69
|
|
|
68
70
|
|
|
71
|
+
def print_versions(ctx: typer.Context):
|
|
72
|
+
rich_print(f"gOdoo Version: [bold green]{__version__}[/bold green]")
|
|
73
|
+
if mp := ctx.obj.odoo_main_path:
|
|
74
|
+
odoo_version = odoo_bin_get_version(mp)
|
|
75
|
+
rich_print(f"Odoo Version: [bold green]{odoo_version}[/bold green]")
|
|
76
|
+
|
|
77
|
+
|
|
69
78
|
def main_cli():
|
|
70
79
|
load_dotenv(".env", override=True)
|
|
71
80
|
|
|
@@ -78,6 +87,7 @@ def main_cli():
|
|
|
78
87
|
)
|
|
79
88
|
|
|
80
89
|
# Normal Subcommands
|
|
90
|
+
app.command("version")(print_versions)
|
|
81
91
|
app.command("launch")(launch_odoo)
|
|
82
92
|
app.command("bootstrap")(bootstrap_odoo)
|
|
83
93
|
app.command("test")(odoo_test)
|
|
@@ -134,9 +134,9 @@ def bootstrap_odoo(
|
|
|
134
134
|
help="folder that contains thirdparty repos like OCA",
|
|
135
135
|
),
|
|
136
136
|
db_host: str = typer.Option(
|
|
137
|
-
|
|
137
|
+
"",
|
|
138
138
|
envvar="ODOO_DB_HOST",
|
|
139
|
-
help="db hostname",
|
|
139
|
+
help="db hostname (empty for default socket)",
|
|
140
140
|
rich_help_panel="Database Options",
|
|
141
141
|
),
|
|
142
142
|
db_filter: str = typer.Option(
|
|
@@ -164,9 +164,9 @@ def bootstrap_odoo(
|
|
|
164
164
|
rich_help_panel="Database Options",
|
|
165
165
|
),
|
|
166
166
|
db_port: str = typer.Option(
|
|
167
|
-
|
|
167
|
+
"",
|
|
168
168
|
envvar="ODOO_DB_PORT",
|
|
169
|
-
help="db host port",
|
|
169
|
+
help="db host port (empty for socket)",
|
|
170
170
|
rich_help_panel="Database Options",
|
|
171
171
|
),
|
|
172
172
|
extra_cmd_args: List[str] = typer.Option(None, help="extra agruments to pass to odoo-bin"),
|
|
@@ -7,7 +7,7 @@ import typer
|
|
|
7
7
|
|
|
8
8
|
from ..commands.rpc.cli import rpc_callback
|
|
9
9
|
from ..helpers.cli import typer_retuner, typer_unpacker
|
|
10
|
-
from ..helpers.odoo_files import get_odoo_module_paths
|
|
10
|
+
from ..helpers.odoo_files import get_odoo_module_paths, odoo_bin_get_version
|
|
11
11
|
from ..helpers.system import run_cmd
|
|
12
12
|
from .bootstrap import bootstrap_odoo
|
|
13
13
|
from .rpc import import_to_odoo
|
|
@@ -116,12 +116,18 @@ def launch_odoo(
|
|
|
116
116
|
if ea := extra_args:
|
|
117
117
|
extra_odoo_args += ea
|
|
118
118
|
|
|
119
|
+
odoo_main_path = ctx.obj.odoo_main_path
|
|
120
|
+
odoo_version = odoo_bin_get_version(odoo_main_path)
|
|
121
|
+
|
|
119
122
|
if dev_mode:
|
|
120
123
|
extra_odoo_args.append(
|
|
121
124
|
"--dev xml,qweb" if load_data_path else "--dev xml,qweb,reload"
|
|
122
125
|
) # Prevent server restart if Importer threads will be spawned.
|
|
126
|
+
if "16.0" in odoo_version:
|
|
127
|
+
extra_odoo_args[-1] += ",werkzeug"
|
|
123
128
|
|
|
124
129
|
if bootstraped and no_launch:
|
|
130
|
+
LOGGER.info("Exiting, because launch was disabled via CLI Argument")
|
|
125
131
|
return typer_retuner(ret)
|
|
126
132
|
|
|
127
133
|
if load_data_path:
|
|
@@ -136,7 +142,7 @@ def launch_odoo(
|
|
|
136
142
|
loader_thread.start()
|
|
137
143
|
|
|
138
144
|
cmd_string = _launch_command(
|
|
139
|
-
odoo_path=
|
|
145
|
+
odoo_path=odoo_main_path,
|
|
140
146
|
odoo_conf_path=ctx.obj.odoo_conf_path,
|
|
141
147
|
extra_cmd_args=extra_odoo_args,
|
|
142
148
|
workspace_addon_path=ctx.obj.workspace_addon_path,
|
|
@@ -6,14 +6,46 @@ from typing import List, Union
|
|
|
6
6
|
|
|
7
7
|
from git import Repo
|
|
8
8
|
|
|
9
|
+
from .system import run_cmd
|
|
10
|
+
|
|
9
11
|
LOGGER = logging.getLogger(__name__)
|
|
10
12
|
|
|
11
13
|
|
|
14
|
+
def odoo_bin_get_version(odoo_main_repo_path: Path) -> str:
|
|
15
|
+
"""Get Odoo Version by calling 'odoo-bin --version'
|
|
16
|
+
|
|
17
|
+
Parameters
|
|
18
|
+
----------
|
|
19
|
+
odoo_main_repo_path : Path
|
|
20
|
+
Path to odoo-bin folder
|
|
21
|
+
|
|
22
|
+
Returns
|
|
23
|
+
-------
|
|
24
|
+
str
|
|
25
|
+
odoo-bin --version output
|
|
26
|
+
"""
|
|
27
|
+
odoo_bin_path = odoo_main_repo_path / "odoo-bin"
|
|
28
|
+
version_out = run_cmd(f"{odoo_bin_path.absolute()} --version", capture_output=True, text=True)
|
|
29
|
+
return version_out.stdout
|
|
30
|
+
|
|
31
|
+
|
|
12
32
|
def get_zip_addon_path(thirdparty_path: Path) -> Path:
|
|
13
33
|
return thirdparty_path / "custom"
|
|
14
34
|
|
|
15
35
|
|
|
16
|
-
def folder_is_odoo_module(folder: Path):
|
|
36
|
+
def folder_is_odoo_module(folder: Path) -> bool:
|
|
37
|
+
"""Wether folder is a valid odoo module.
|
|
38
|
+
|
|
39
|
+
Parameters
|
|
40
|
+
----------
|
|
41
|
+
folder : Path
|
|
42
|
+
Folder to check
|
|
43
|
+
|
|
44
|
+
Returns
|
|
45
|
+
-------
|
|
46
|
+
bool
|
|
47
|
+
true if folder contains a module
|
|
48
|
+
"""
|
|
17
49
|
return folder.is_dir() and any(folder.glob("__manifest__.py"))
|
|
18
50
|
|
|
19
51
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.14"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.3.12"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|