Skip to content

Commit bda6f42

Browse files
varmar05wonder-sk
authored andcommitted
make project dir optional when creating new project
1 parent 6955b20 commit bda6f42

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

cli.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,17 +73,18 @@ def login(url, login, password):
7373

7474

7575
@cli.command()
76-
@click.argument('directory', type=click.Path(exists=True))
76+
@click.argument('project')
77+
@click.argument('directory', type=click.Path(exists=True), required=False)
7778
@click.option('--public', is_flag=True, default=False, help='Public project, visible to everyone')
78-
def init(directory, public):
79+
def init(project, directory, public):
7980
"""Initialize new project from existing DIRECTORY name"""
8081

81-
directory = os.path.abspath(directory)
82-
project_name = os.path.basename(directory)
82+
if directory:
83+
directory = os.path.abspath(directory)
8384
c = _init_client()
8485

8586
try:
86-
c.create_project(project_name, directory, is_public=public)
87+
c.create_project(project, directory, is_public=public)
8788
click.echo('Done')
8889
except Exception as e:
8990
click.secho(str(e), fg='red')

mergin/client.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -271,22 +271,22 @@ def login(self, login, password):
271271
}
272272
return session
273273

274-
def create_project(self, project_name, directory, is_public=False):
274+
def create_project(self, project_name, directory=None, is_public=False):
275275
"""
276-
Create new project repository on Mergin server from given directory.
276+
Create new project repository on Mergin server, optionally initialized from given local directory.
277277
278-
:param project_name: Project's name
278+
:param project_name: Project name
279279
:type project_name: String
280280
281-
:param directory: Project's directory
281+
:param directory: Local project directory, defaults to None
282282
:type directory: String
283283
284-
:param is_public: Flag for public/private project
284+
:param is_public: Flag for public/private project, defaults to False
285285
:type directory: Boolean
286286
"""
287287
if not self._user_info:
288288
raise Exception("Authentication required")
289-
if not os.path.exists(directory):
289+
if directory and not os.path.exists(directory):
290290
raise Exception("Project directory does not exists")
291291

292292
params = {
@@ -300,9 +300,10 @@ def create_project(self, project_name, directory, is_public=False):
300300
"version": "v0",
301301
"files": []
302302
}
303-
save_project_file(directory, data)
304-
if len(os.listdir(directory)) > 1:
305-
self.push_project(directory)
303+
if directory:
304+
save_project_file(directory, data)
305+
if len(os.listdir(directory)) > 1:
306+
self.push_project(directory)
306307

307308
def projects_list(self, tags=None, user=None, flag=None, q=None):
308309
"""

0 commit comments

Comments
 (0)