示例#1
0
    def create(self, argv):
        """ Create Binder. 
        $ wasanbon-admin.py binder create"""
        self.parser.add_option(
            "-s", "--service", help="set upstream service", default="github", metavar="SERVICE", dest="service"
        )
        self.parser.add_option("-u", "--user", help="set username", default=None, metavar="USER", dest="user")
        self.parser.add_option("-p", "--password", help="set password", default=None, metavar="PASSWD", dest="password")
        options, argv = self.parse_args(argv[:])
        verbose = options.verbose_flag  # This is default option
        service = options.service

        user, passwd = wasanbon.user_pass(user=options.user, passwd=options.password)
        sys.stdout.write("# Creating wasanbon binder in your %s\n" % service)
        repo_name = "wasanbon_binder"
        target_path = os.path.join(wasanbon.rtm_home(), "binder", user + owner_sign, repo_name + ".git")
        if service == "github":
            github = admin.github.Github(user, passwd)
            if github.exists_repo(repo_name):
                sys.stdout.write(" @ You have already created your own repository.\n")
                sys.stdout.write(" @ wasanbon just clone it.\n")
                download_repository(url=url, target_path=target_path, verbose=verbose)
                return True
            repo_obj = github.fork_repo("sugarsweetrobotics", "wasanbon_binder_template", repo_name, verbose=verbose)
        else:
            sys.stdout.write("## Unknown serviec name.\n")
            return -1
        return 0
示例#2
0
    def delete(self, argv):
        self.parser.add_option(
            "-f", "--force", help="Force option (default=False)", default=False, action="store_true", dest="force_flag"
        )
        self.parser.add_option("-u", "--user", help="set username", default=None, metavar="USER", dest="user")
        self.parser.add_option("-p", "--password", help="set password", default=None, metavar="PASSWD", dest="password")
        self.parser.add_option(
            "-s", "--service", help="set upstream service", default="github", metavar="SERVICE", dest="service"
        )
        options, argv = self.parse_args(argv[:])
        verbose = options.verbose_flag  # This is default option
        force = options.force_flag
        service = options.service

        user, passwd = wasanbon.user_pass(user=options.user, passwd=options.password)
        sys.stdout.write("# Creating wasanbon binder in your %s\n" % service)
        repo_name = "wasanbon_binder"
        target_path = os.path.join(wasanbon.rtm_home(), "binder", user + owner_sign, repo_name + ".git")
        if service == "github":
            github = admin.github.Github(user, passwd)
            if github.exists_repo(repo_name):
                if not force:
                    from wasanbon import util

                    if util.yes_no("## Really delete?") == "no":
                        sys.stdout.write("## Aborted.\n")
                        return 0

                github.delete_repo(repo_name)
                return 0
        else:
            sys.stdout.write("# Unknown service name %s\n" % service)
            return -1
        return 0
示例#3
0
def load_workspace():
    ws_file_name = os.path.join(wasanbon.rtm_home(), "workspace.yaml")
    if not os.path.isfile(ws_file_name):
        fout = open(ws_file_name, "w")
        fout.close()
        pass

    y = yaml.load(open(ws_file_name, "r"))
    if not y:
        y = {}
    return y
示例#4
0
def load_workspace():
    ws_file_name = os.path.join(wasanbon.rtm_home(), 'workspace.yaml')
    if not os.path.isfile(ws_file_name):
        fout = open(ws_file_name, 'w')
        fout.close()
        pass

    y = yaml.load(open(ws_file_name, 'r'))
    if not y:
        y = {}
    return y
示例#5
0
    def delete(self, argv):
        self.parser.add_option('-f',
                               '--force',
                               help='Force option (default=False)',
                               default=False,
                               action='store_true',
                               dest='force_flag')
        self.parser.add_option('-u',
                               '--user',
                               help='set username',
                               default=None,
                               metavar='USER',
                               dest='user')
        self.parser.add_option('-p',
                               '--password',
                               help='set password',
                               default=None,
                               metavar='PASSWD',
                               dest='password')
        self.parser.add_option('-s',
                               '--service',
                               help='set upstream service',
                               default='github',
                               metavar='SERVICE',
                               dest='service')
        options, argv = self.parse_args(argv[:])
        verbose = options.verbose_flag  # This is default option
        force = options.force_flag
        service = options.service

        user, passwd = wasanbon.user_pass(user=options.user,
                                          passwd=options.password)
        sys.stdout.write('# Creating wasanbon binder in your %s\n' % service)
        repo_name = 'wasanbon_binder'
        target_path = os.path.join(wasanbon.rtm_home(), 'binder',
                                   user + owner_sign, repo_name + '.git')
        if service == 'github':
            github = admin.github.Github(user, passwd)
            if github.exists_repo(repo_name):
                if not force:
                    from wasanbon import util
                    if util.yes_no('## Really delete?') == 'no':
                        sys.stdout.write('## Aborted.\n')
                        return 0

                github.delete_repo(repo_name)
                return 0
        else:
            sys.stdout.write('# Unknown service name %s\n' % service)
            return -1
        return 0
示例#6
0
    def create(self, argv):
        """ Create Binder. 
        $ wasanbon-admin.py binder create"""
        self.parser.add_option('-s',
                               '--service',
                               help='set upstream service',
                               default='github',
                               metavar='SERVICE',
                               dest='service')
        self.parser.add_option('-u',
                               '--user',
                               help='set username',
                               default=None,
                               metavar='USER',
                               dest='user')
        self.parser.add_option('-p',
                               '--password',
                               help='set password',
                               default=None,
                               metavar='PASSWD',
                               dest='password')
        options, argv = self.parse_args(argv[:])
        verbose = options.verbose_flag  # This is default option
        service = options.service

        user, passwd = wasanbon.user_pass(user=options.user,
                                          passwd=options.password)
        sys.stdout.write('# Creating wasanbon binder in your %s\n' % service)
        repo_name = 'wasanbon_binder'
        target_path = os.path.join(wasanbon.rtm_home(), 'binder',
                                   user + owner_sign, repo_name + '.git')
        if service == 'github':
            github = admin.github.Github(user, passwd)
            if github.exists_repo(repo_name):
                sys.stdout.write(
                    ' @ You have already created your own repository.\n')
                sys.stdout.write(' @ wasanbon just clone it.\n')
                download_repository(url=url,
                                    target_path=target_path,
                                    verbose=verbose)
                return True
            repo_obj = github.fork_repo('sugarsweetrobotics',
                                        'wasanbon_binder_template',
                                        repo_name,
                                        verbose=verbose)
        else:
            sys.stdout.write('## Unknown serviec name.\n')
            return -1
        return 0
示例#7
0
def start_java_rtcd(pkg, filepath, verbose=False):
    if verbose:
        sys.stdout.write(' - Starting Java rtcd.\n')

    args = {}
    #args['env'] = os.environ.copy()
    args['preexec_fn'] = None if sys.platform == 'win32' else disable_sig
    args['stdout'] = None if verbose else subprocess.PIPE
    args['stdin'] = None if verbose else subprocess.PIPE
    if sys.platform == 'win32':
        args['creationflags'] = 512

    rtm_java_classpath = os.path.join(wasanbon.rtm_home(), 'jar')
    java_env = os.environ.copy()
    if not "CLASSPATH" in java_env.keys():
        java_env["CLASSPATH"] = os.getcwd()
    if sys.platform == 'win32':
        sep = ';'
    else:
        sep = ':'
    for jarfile in os.listdir(rtm_java_classpath):
        java_env["CLASSPATH"] = java_env["CLASSPATH"] + sep + os.path.join(
            rtm_java_classpath, jarfile)
    #java_env["CLASSPATH"]=java_env["CLASSPATH"] + ':bin/LeapTest.jar'

    rtm_jars = [
        j for j in os.listdir(rtm_java_classpath) if j.endswith('.jar')
    ]
    for r in pkg.rtcs:
        if os.path.isdir(os.path.join(r.path, 'jar')):
            for jarfile in [
                    j for j in os.listdir(os.path.join(r.path, 'jar'))
                    if j.endswith('.jar')
            ]:
                if not jarfile in rtm_jars:
                    java_env["CLASSPATH"] = java_env[
                        "CLASSPATH"] + sep + os.path.join(
                            r.path, 'jar', jarfile)

    #print java_env

    args['env'] = java_env

    cmd = [wasanbon.setting()['local']['java'], 'rtcd.rtcd', '-f', filepath]
    return subprocess.Popen(cmd, **args)
示例#8
0
def start_java_rtcd(pkg, filepath, verbose=False):
    if verbose:
        sys.stdout.write(' - Starting Java rtcd.\n')

    args = {}
    #args['env'] = os.environ.copy()
    args['preexec_fn'] = None if sys.platform == 'win32' else disable_sig
    args['stdout'] = None if verbose else subprocess.PIPE
    args['stdin'] = None if verbose else subprocess.PIPE
    if sys.platform == 'win32':
        args['creationflags'] = 512


    rtm_java_classpath = os.path.join(wasanbon.rtm_home(), 'jar')
    java_env = os.environ.copy()
    if not "CLASSPATH" in java_env.keys():
        java_env["CLASSPATH"]=os.getcwd() 
    if sys.platform == 'win32':
        sep = ';'
    else:
        sep = ':'
    for jarfile in os.listdir(rtm_java_classpath):
        java_env["CLASSPATH"]=java_env["CLASSPATH"] + sep + os.path.join(rtm_java_classpath, jarfile)
    #java_env["CLASSPATH"]=java_env["CLASSPATH"] + ':bin/LeapTest.jar'

    rtm_jars = [j for j in os.listdir(rtm_java_classpath) if j.endswith('.jar')]
    for r in pkg.rtcs:
        if os.path.isdir(os.path.join(r.path, 'jar')):
            for jarfile in [j for j in os.listdir(os.path.join(r.path, 'jar')) if j.endswith('.jar')]:
                if not jarfile in rtm_jars:
                    java_env["CLASSPATH"]=java_env["CLASSPATH"] + sep + os.path.join(r.path, 'jar', jarfile)

    #print java_env

    args['env'] = java_env
    
    cmd = [wasanbon.setting()['local']['java'], 'rtcd.rtcd', '-f', filepath]
    return subprocess.Popen(cmd, **args)
示例#9
0
def save_workspace(dic):
    ws_file_name = os.path.join(wasanbon.rtm_home(), "workspace.yaml")
    yaml.dump(dic, open(ws_file_name, "w"), encoding="utf8", allow_unicode=True, default_flow_style=False)
示例#10
0
def save_workspace(dic):
    ws_file_name = os.path.join(wasanbon.rtm_home(), 'workspace.yaml')
    yaml.dump(dic, open(ws_file_name, 'w'), encoding='utf8', allow_unicode=True, default_flow_style=False)