Skip to content

Commit 42e6bf2

Browse files
authored
Merge pull request #38 from aclark4life/main
Refactor with typer
2 parents ed000ac + 96e245e commit 42e6bf2

File tree

8 files changed

+411
-46
lines changed

8 files changed

+411
-46
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,9 @@ python -m venv .venv
1818
source .venv/bin/activate
1919
just install
2020
```
21+
22+
## Usage
23+
24+
![image](screenshot.png)
25+
![image](screenshot2.png)
26+
![image](screenshot3.png)

django_mongodb_cli/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
dm = typer.Typer(
1616
help=help_text,
17-
add_completion=False,
1817
context_settings={"help_option_names": ["-h", "--help"]},
1918
)
2019

django_mongodb_cli/repo.py

Lines changed: 103 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,20 @@ def status(
4848
all_repos: bool = typer.Option(
4949
False, "--all-repos", "-a", help="Show status of all repos"
5050
),
51+
reset: bool = typer.Option(
52+
False, "--reset", "-r", help="Reset the status of the repository"
53+
),
5154
):
55+
repo = Repo()
56+
if reset:
57+
repo.set_reset(reset)
5258
repo_command(
5359
all_repos,
5460
repo_name,
5561
all_msg="Showing status for all repositories...",
5662
missing_msg="Please specify a repository name or use --all-repos to show all repositories.",
57-
single_func=lambda name: Repo().get_repo_status(name),
58-
all_func=lambda name: Repo().get_repo_status(name),
63+
single_func=lambda name: repo.get_repo_status(name),
64+
all_func=lambda name: repo.get_repo_status(name),
5965
)
6066

6167

@@ -106,6 +112,30 @@ def clone_repo(name):
106112
)
107113

108114

115+
@repo.command()
116+
def commit(
117+
repo_name: str = typer.Argument(None),
118+
all_repos: bool = typer.Option(
119+
False, "--all-repos", "-a", help="Commit all repositories"
120+
),
121+
message: str = typer.Argument(None, help="Commit message"),
122+
):
123+
def do_commit(name):
124+
if not message:
125+
typer.echo(typer.style("Commit message is required.", fg=typer.colors.RED))
126+
raise typer.Exit(1)
127+
Repo().commit_repo(name, message)
128+
129+
repo_command(
130+
all_repos,
131+
repo_name,
132+
all_msg="Committing all repositories...",
133+
missing_msg="Please specify a repository name or use --all-repos to commit all repositories.",
134+
single_func=do_commit,
135+
all_func=do_commit,
136+
)
137+
138+
109139
@repo.command()
110140
def delete(
111141
repo_name: str = typer.Argument(None),
@@ -149,20 +179,75 @@ def install(
149179
)
150180

151181

182+
@repo.command()
183+
def log(
184+
repo_name: str = typer.Argument(None),
185+
all_repos: bool = typer.Option(
186+
False, "--all-repos", "-a", help="Show logs of all repositories"
187+
),
188+
):
189+
repo_command(
190+
all_repos,
191+
repo_name,
192+
all_msg="Showing logs for all repositories...",
193+
missing_msg="Please specify a repository name or use --all-repos to show logs of all repositories.",
194+
single_func=lambda name: Repo().get_repo_log(repo_name),
195+
all_func=lambda name: Repo().get_repo_log(repo_name),
196+
)
197+
198+
199+
@repo.command()
200+
def open(
201+
repo_name: str = typer.Argument(None),
202+
all_repos: bool = typer.Option(
203+
False, "--all-repos", "-a", help="Open all repositories"
204+
),
205+
):
206+
repo_command(
207+
all_repos,
208+
repo_name,
209+
all_msg="Opening all repositories...",
210+
missing_msg="Please specify a repository name or use --all-repos to open all repositories.",
211+
single_func=lambda name: Repo().open_repo(repo_name),
212+
all_func=lambda name: Repo().open_repo(repo_name),
213+
)
214+
215+
152216
@repo.command()
153217
def origin(
154218
repo_name: str = typer.Argument(None),
219+
repo_user: str = typer.Argument(None),
155220
all_repos: bool = typer.Option(
156221
False, "--all-repos", "-a", help="Show origin of all repositories"
157222
),
158223
):
224+
repo = Repo()
225+
if repo_user:
226+
repo.set_user(repo_user)
159227
repo_command(
160228
all_repos,
161229
repo_name,
162230
all_msg="Showing origin for all repositories...",
163231
missing_msg="Please specify a repository name or use --all-repos to show origins of all repositories.",
164-
single_func=lambda name: Repo().get_repo_origin(name),
165-
all_func=lambda name: Repo().get_repo_origin(name),
232+
single_func=lambda name: repo.get_repo_origin(name),
233+
all_func=lambda name: repo.get_repo_origin(name),
234+
)
235+
236+
237+
@repo.command()
238+
def pr(
239+
repo_name: str = typer.Argument(None),
240+
all_repos: bool = typer.Option(
241+
False, "--all-repos", "-a", help="Create pull requests for all repositories"
242+
),
243+
):
244+
repo_command(
245+
all_repos,
246+
repo_name,
247+
all_msg="Creating pull requests for all repositories...",
248+
missing_msg="Please specify a repository name or use --all-repos to create pull requests for all repositories.",
249+
single_func=lambda name: Repo().create_pr(repo_name),
250+
all_func=lambda name: Repo().create_pr(repo_name),
166251
)
167252

168253

@@ -183,6 +268,20 @@ def sync(
183268
)
184269

185270

271+
@repo.command()
272+
def patch(
273+
repo_name: str = typer.Argument(None),
274+
):
275+
repo_command(
276+
False,
277+
repo_name,
278+
all_msg="Running evergreen...",
279+
missing_msg="Please specify a repository name.",
280+
single_func=lambda name: Test().patch_repo(name),
281+
all_func=lambda name: Test().patch_repo(name),
282+
)
283+
284+
186285
@repo.command()
187286
def test(
188287
repo_name: str = typer.Argument(None),

0 commit comments

Comments
 (0)