Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
cli.py
The module that implements the CLI for obis.
Created by Chandrasekhar Ramakrishnan on 2017-01-27.
Copyright (c) 2017 Chandrasekhar Ramakrishnan. All rights reserved.
"""
import os
from datetime import datetime
import click
def click_echo(message):
timestamp = datetime.now().strftime("%H:%M:%S")
click.echo("{} {}".format(timestamp, message))
def click_progress(progress_data):
if progress_data['type'] == 'progress':
click_echo(progress_data['message'])
def click_progress_no_ts(progress_data):
if progress_data['type'] == 'progress':
click.echo("{}".format(progress_data['message']))
@click.group()
@click.option('-q', '--quiet', default=False, is_flag=True, help='Suppress status reporting.')
@click.pass_context
def cli(ctx, quiet):
ctx.obj['quiet'] = quiet
@cli.group()
@click.pass_context
def init(ctx, folder):
"""Group for the various init subcommands"""
pass
@init.command()
@click.pass_context
@click.argument('folder', type=click.Path(exists=True))
def data(ctx, folder):
"""Initialize the folder as a data folder."""
click_echo("init data {}".format(folder))
@init.command()
@click.pass_context
@click.argument('folder', type=click.Path(exists=True))
def analysis(ctx, folder):
"""Initialize the folder as an analysis folder."""
click_echo("init analysis {}".format(folder))
@cli.command()
@click.pass_context
def commit(ctx):
"""Commit the repository to openBIS.
"""
click_echo("commit")
@cli.command()
@click.pass_context
@click.argument('path')
def add(ctx, path):
"""Add add content to the repository.
"""
click_echo("add {}".format(path))
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
@cli.command()
@click.pass_context
@click.argument('other', type=click.Path(exists=True))
def addref(ctx, other):
"""Add a reference to the other repository in this repository.
"""
click_echo("addref {}".format(other))
@cli.command()
@click.pass_context
@click.argument('url')
def clone(ctx, url):
"""Clone the repository found at url.
"""
click_echo("clone {}".format(url))
@cli.command()
@click.pass_context
@click.argument('file')
def get(ctx, f):
"""Get one or more files from a clone of this repository.
"""
click_echo("get {}".format(f))
def main():
cli(obj={})
if __name__ == '__main__':
main()