mirror of
https://github.com/frappe/bench.git
synced 2024-11-16 01:57:08 +00:00
Merge pull request #1315 from dj12djdjs/feat-softlink-getpp
feat: get-app support soft link as alternative to git clone
This commit is contained in:
commit
6498bacf07
17
bench/app.py
17
bench/app.py
@ -13,6 +13,8 @@ from datetime import date
|
|||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from markupsafe import soft_str
|
||||||
|
|
||||||
# imports - third party imports
|
# imports - third party imports
|
||||||
import click
|
import click
|
||||||
from git import Repo
|
from git import Repo
|
||||||
@ -158,8 +160,9 @@ class AppMeta:
|
|||||||
|
|
||||||
@functools.lru_cache(maxsize=None)
|
@functools.lru_cache(maxsize=None)
|
||||||
class App(AppMeta):
|
class App(AppMeta):
|
||||||
def __init__(self, name: str, branch: str = None, bench: "Bench" = None, *args, **kwargs):
|
def __init__(self, name: str, branch: str = None, bench: "Bench" = None, soft_link : bool = False, *args, **kwargs):
|
||||||
self.bench = bench
|
self.bench = bench
|
||||||
|
self.soft_link = soft_link
|
||||||
self.required_by = None
|
self.required_by = None
|
||||||
self.local_resolution = []
|
self.local_resolution = []
|
||||||
super().__init__(name, branch, *args, **kwargs)
|
super().__init__(name, branch, *args, **kwargs)
|
||||||
@ -169,12 +172,19 @@ class App(AppMeta):
|
|||||||
branch = f"--branch {self.tag}" if self.tag else ""
|
branch = f"--branch {self.tag}" if self.tag else ""
|
||||||
shallow = "--depth 1" if self.bench.shallow_clone else ""
|
shallow = "--depth 1" if self.bench.shallow_clone else ""
|
||||||
|
|
||||||
|
if not self.soft_link:
|
||||||
|
cmd = "git clone"
|
||||||
|
args = f"{self.url} {branch} {shallow} --origin upstream"
|
||||||
|
else:
|
||||||
|
cmd = "ln -s"
|
||||||
|
args = f"{self.name}"
|
||||||
|
|
||||||
fetch_txt = f"Getting {self.repo}"
|
fetch_txt = f"Getting {self.repo}"
|
||||||
click.secho(fetch_txt, fg="yellow")
|
click.secho(fetch_txt, fg="yellow")
|
||||||
logger.log(fetch_txt)
|
logger.log(fetch_txt)
|
||||||
|
|
||||||
self.bench.run(
|
self.bench.run(
|
||||||
f"git clone {self.url} {branch} {shallow} --origin upstream",
|
f"{cmd} {args}",
|
||||||
cwd=os.path.join(self.bench.name, "apps"),
|
cwd=os.path.join(self.bench.name, "apps"),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -338,6 +348,7 @@ def get_app(
|
|||||||
skip_assets=False,
|
skip_assets=False,
|
||||||
verbose=False,
|
verbose=False,
|
||||||
overwrite=False,
|
overwrite=False,
|
||||||
|
soft_link=False,
|
||||||
init_bench=False,
|
init_bench=False,
|
||||||
resolve_deps=False,
|
resolve_deps=False,
|
||||||
):
|
):
|
||||||
@ -354,7 +365,7 @@ def get_app(
|
|||||||
from bench.utils.app import check_existing_dir
|
from bench.utils.app import check_existing_dir
|
||||||
|
|
||||||
bench = Bench(bench_path)
|
bench = Bench(bench_path)
|
||||||
app = App(git_url, branch=branch, bench=bench)
|
app = App(git_url, branch=branch, bench=bench, soft_link=soft_link)
|
||||||
git_url = app.url
|
git_url = app.url
|
||||||
repo_name = app.repo
|
repo_name = app.repo
|
||||||
branch = app.tag
|
branch = app.tag
|
||||||
|
@ -130,6 +130,7 @@ def drop(path):
|
|||||||
@click.option("--branch", default=None, help="branch to checkout")
|
@click.option("--branch", default=None, help="branch to checkout")
|
||||||
@click.option("--overwrite", is_flag=True, default=False)
|
@click.option("--overwrite", is_flag=True, default=False)
|
||||||
@click.option("--skip-assets", is_flag=True, default=False, help="Do not build assets")
|
@click.option("--skip-assets", is_flag=True, default=False, help="Do not build assets")
|
||||||
|
@click.option("--soft-link", is_flag=True, default=False, help="Create a soft link to git repo instead of clone.")
|
||||||
@click.option(
|
@click.option(
|
||||||
"--init-bench", is_flag=True, default=False, help="Initialize Bench if not in one"
|
"--init-bench", is_flag=True, default=False, help="Initialize Bench if not in one"
|
||||||
)
|
)
|
||||||
@ -145,6 +146,7 @@ def get_app(
|
|||||||
name=None,
|
name=None,
|
||||||
overwrite=False,
|
overwrite=False,
|
||||||
skip_assets=False,
|
skip_assets=False,
|
||||||
|
soft_link=False,
|
||||||
init_bench=False,
|
init_bench=False,
|
||||||
resolve_deps=False,
|
resolve_deps=False,
|
||||||
):
|
):
|
||||||
@ -156,6 +158,7 @@ def get_app(
|
|||||||
branch=branch,
|
branch=branch,
|
||||||
skip_assets=skip_assets,
|
skip_assets=skip_assets,
|
||||||
overwrite=overwrite,
|
overwrite=overwrite,
|
||||||
|
soft_link=soft_link,
|
||||||
init_bench=init_bench,
|
init_bench=init_bench,
|
||||||
resolve_deps=resolve_deps,
|
resolve_deps=resolve_deps,
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user