Exemple #1
0
def main():
  global g_modules
  global g_action_data
  global g_export_dir

  if (len(sys.argv) != 2):
    env.display(env.HEADER_ERROR, "usage: export.py [behaviour]",
                env.OPTION_NONE)
    env.display(env.HEADER_NONE, "",
                env.OPTION_NONE)
    env.display(env.HEADER_ERROR, "behaviours:",
                env.OPTION_NONE)
    for i in env.list(env._EXPORT_DIR_ + "/behaviours", env.OPTION_FILE):
      env.display(env.HEADER_ERROR, "  " + i[:-4], env.OPTION_NONE)
    return 1

  modules_load()

  work_dir = env.temporary(env.OPTION_DIRECTORY)

  g_export_dir =  work_dir + "/kaneton"

  env.display(env.HEADER_OK, 'exporting to ' + g_export_dir, env.OPTION_NONE)

  env.display(env.HEADER_OK, 'running export actions', env.OPTION_NONE)

  parse_data_file("behaviours/" + sys.argv[1])

  env.display(env.HEADER_OK, 'cleaning temporary directory', env.OPTION_NONE)
  env.remove(work_dir, env.OPTION_NONE)

  env.display(env.HEADER_OK, 'export finished', env.OPTION_NONE)
Exemple #2
0
def main():
    global g_modules
    global g_action_data
    global g_export_dir

    if (len(sys.argv) != 2):
        env.display(env.HEADER_ERROR, "usage: export.py [behaviour]",
                    env.OPTION_NONE)
        env.display(env.HEADER_NONE, "", env.OPTION_NONE)
        env.display(env.HEADER_ERROR, "behaviours:", env.OPTION_NONE)
        for i in env.list(env._EXPORT_DIR_ + "/behaviours", env.OPTION_FILE):
            env.display(env.HEADER_ERROR, "  " + i[:-4], env.OPTION_NONE)
        return 1

    modules_load()

    work_dir = env.temporary(env.OPTION_DIRECTORY)

    g_export_dir = work_dir + "/kaneton"

    env.display(env.HEADER_OK, 'exporting to ' + g_export_dir, env.OPTION_NONE)

    env.display(env.HEADER_OK, 'running export actions', env.OPTION_NONE)

    parse_data_file("behaviours/" + sys.argv[1])

    env.display(env.HEADER_OK, 'cleaning temporary directory', env.OPTION_NONE)
    env.remove(work_dir, env.OPTION_NONE)

    env.display(env.HEADER_OK, 'export finished', env.OPTION_NONE)
Exemple #3
0
def module_action(export_dir, arg):
    strip = 0
    env.display(env.HEADER_OK, 'action breplace ' + arg['id'], env.OPTION_NONE)
    id = arg['id'].split('::', 1)
    filepath = id[0]
    label = id[1]
    tmpfilepath = env.temporary(env.OPTION_FILE)
    srcf = open(export_dir + '/' + filepath, 'r')
    dstf = open(tmpfilepath, 'w')
    line = srcf.readline()
    startpattern = re.compile(".*[[]block\:\:" + label + "[]].*")
    endpattern = re.compile(".*[[]/block\:\:" + label + "[]].*")
    while line != "":
        if strip == 0:
            if startpattern.match(line) != None:
                strip = 1
                dstf.write(arg['data'])
        if strip != 1:
            dstf.write(line)
        if strip == 1:
            if endpattern.match(line) != None:
                strip = 2
        line = srcf.readline()
    dstf.close()
    srcf.close()
    env.copy(tmpfilepath, export_dir + '/' + filepath, env.OPTION_NONE)
    env.remove(tmpfilepath, env.OPTION_NONE)
    if strip == 0:
        env.display(env.HEADER_ERROR, 'no block ' + label + ' in file ' + filepath, env.OPTION_NONE)
        return -1
    return 0
Exemple #4
0
def module_action(export_dir, arg):
    strip = 0
    env.display(env.HEADER_OK, 'action breplace ' + arg['id'], env.OPTION_NONE)
    id = arg['id'].split('::', 1)
    filepath = id[0]
    label = id[1]
    tmpfilepath = env.temporary(env.OPTION_FILE)
    srcf = open(export_dir + '/' + filepath, 'r')
    dstf = open(tmpfilepath, 'w')
    line = srcf.readline()
    startpattern = re.compile(".*[[]block\:\:" + label + "[]].*")
    endpattern = re.compile(".*[[]/block\:\:" + label + "[]].*")
    while line != "":
        if strip == 0:
            if startpattern.match(line) != None:
                strip = 1
                dstf.write(arg['data'])
        if strip != 1:
            dstf.write(line)
        if strip == 1:
            if endpattern.match(line) != None:
                strip = 2
        line = srcf.readline()
    dstf.close()
    srcf.close()
    env.copy(tmpfilepath, export_dir + '/' + filepath, env.OPTION_NONE)
    env.remove(tmpfilepath, env.OPTION_NONE)
    if strip == 0:
        env.display(env.HEADER_ERROR,
                    'no block ' + label + ' in file ' + filepath,
                    env.OPTION_NONE)
        return -1
    return 0
Exemple #5
0
def module_action(export_dir, arg):
    env.display(env.HEADER_OK, 'action fremovepattern ' + arg['pattern'],
                env.OPTION_NONE)
    for d in env.search(
            export_dir, arg['pattern'],
            env.OPTION_RECURSIVE | env.OPTION_DIRECTORY | env.OPTION_FILE):
        env.remove(d, env.OPTION_NONE)
    return 0
Exemple #6
0
def module_action(export_dir, arg):
    env.display(env.HEADER_OK, 'action tarball ' + arg['filename'], env.OPTION_NONE)
    directory = env.cwd(env.OPTION_NONE)
    env.cd(env.path(export_dir, env.OPTION_DIRECTORY), env.OPTION_NONE)
    env.remove(env._EXPORT_DIR_ + "/output/" + arg['filename'] + ".tar.bz2", env.OPTION_NONE)
    env.pack("kaneton", env._EXPORT_DIR_ + "/output/" + arg['filename'] + ".tar.bz2", env.OPTION_NONE)
    env.cd(directory, env.OPTION_NONE)
    return 0
Exemple #7
0
def             filter(student):
  entities = None
  entity = None

  # remove the env._CHEAT_FILTER_ stuff
  entities = re.findall("([^\t ]+)", env._CHEAT_FILTER_)

  for entity in entities:
    env.remove(student["sources"] + "/kaneton/" + entity, env.OPTION_NONE)
Exemple #8
0
def filter(student):
    entities = None
    entity = None

    # remove the env._CHEAT_FILTER_ stuff
    entities = re.findall("([^\t ]+)", env._CHEAT_FILTER_)

    for entity in entities:
        env.remove(student["sources"] + "/kaneton/" + entity, env.OPTION_NONE)
Exemple #9
0
def                     robot():
  path = None
  link = None
  name = None

  # display.
  env.display(env.HEADER_OK,
              "generating the robot's capability",
              env.OPTION_NONE)

  # retrieve the server's code.
  code = ktp.code.Load(env._TEST_STORE_CODE_DIR_ + "/server" +          \
                         ktp.code.Extension)

  # compute the name.
  name = "robot"

  # compute the file name.
  path = env._TEST_STORE_CAPABILITY_DIR_ + "/" +                        \
    name + ktp.capability.Extension

  # compute the link.
  link = env._PROFILE_DIR_ + "/user/robot/robot" + ktp.capability.Extension

  # create the capability.
  capability = ktp.capability.Create(code,
                                     name,
                                     ktp.capability.TypeStudent,
                                     {},
                                     [ { "name":
                                           "Robot",
                                         "email":
                                           "*****@*****.**",
                                         "login":
                                           "******"
                                         } ])

  # store it.
  ktp.capability.Store(path,
                       capability)

  # remove the previous link.
  env.remove(link, env.OPTION_NONE)

  # create a link from the profile. XXX[this could probably be improved]
  env.link(link,
           "../../../../test/store/capability/" + name +                
             ktp.capability.Extension,
           env.OPTION_NONE)

  # display.
  env.display(env.HEADER_OK,
              "the robot's capability has been generated succesfully",
              env.OPTION_NONE)
Exemple #10
0
def                     contributor():
  path = None
  link = None
  name = None

  # display.
  env.display(env.HEADER_OK,
              "generating a contributor's capability",
              env.OPTION_NONE)

  # retrieve the server's code.
  code = ktp.code.Load(env._TEST_STORE_CODE_DIR_ + "/server" +          \
                         ktp.code.Extension)

  # compute the name.
  name = env._USER_

  # compute the file name.
  path = env._TEST_STORE_CAPABILITY_DIR_ + "/" +                        \
    name + ktp.capability.Extension

  # compute the link.
  link = env._TEST_CAPABILITY_

  # create the capability.
  capability = ktp.capability.Create(code,
                                     name,
                                     ktp.capability.TypeContributor,
                                     {},
                                     [ { "name": env._TEST_NAME_,
                                         "email": env._TEST_EMAIL_,
                                         "login":
                                           env._TEST_NAME_.lower().
                                             replace(" ", ".") } ])

  # store it.
  ktp.capability.Store(path,
                       capability)

  # remove the previous link.
  env.remove(link, env.OPTION_NONE)

  # create a link from the profile. XXX[this could probably be improved]
  env.link(link,
           "../../../../test/store/capability/" + name +                
             ktp.capability.Extension,
           env.OPTION_NONE)

  # display.
  env.display(env.HEADER_OK,
              "the contributor capability has been generated " +        \
              "succesfully for '" + name + "'",
              env.OPTION_NONE)
Exemple #11
0
def			dependencies():
  dependencies = None
  dep = None

  env.display(env.HEADER_OK,
              "removing the kaneton header dependencies",
              env.OPTION_NONE)

  dependencies = env.search(env._SOURCE_DIR_,
                            env._DEPENDENCY_MK_,
                            env.OPTION_FILE | env.OPTION_RECURSIVE)

  for dep in dependencies:
    env.remove(dep, env.OPTION_NONE)
Exemple #12
0
def contributor():
    path = None
    link = None
    name = None

    # display.
    env.display(env.HEADER_OK, "generating a contributor's capability",
                env.OPTION_NONE)

    # retrieve the server's code.
    code = ktp.code.Load(env._TEST_STORE_CODE_DIR_ + "/server" +          \
                           ktp.code.Extension)

    # compute the name.
    name = env._USER_

    # compute the file name.
    path = env._TEST_STORE_CAPABILITY_DIR_ + "/" +                        \
      name + ktp.capability.Extension

    # compute the link.
    link = env._TEST_CAPABILITY_

    # create the capability.
    capability = ktp.capability.Create(
        code, name, ktp.capability.TypeContributor, {},
        [{
            "name": env._TEST_NAME_,
            "email": env._TEST_EMAIL_,
            "login": env._TEST_NAME_.lower().replace(" ", ".")
        }])

    # store it.
    ktp.capability.Store(path, capability)

    # remove the previous link.
    env.remove(link, env.OPTION_NONE)

    # create a link from the profile. XXX[this could probably be improved]
    env.link(
        link,
        "../../../../test/store/capability/" + name + ktp.capability.Extension,
        env.OPTION_NONE)

    # display.
    env.display(env.HEADER_OK,
                "the contributor capability has been generated " +        \
                "succesfully for '" + name + "'",
                env.OPTION_NONE)
Exemple #13
0
def robot():
    path = None
    link = None
    name = None

    # display.
    env.display(env.HEADER_OK, "generating the robot's capability",
                env.OPTION_NONE)

    # retrieve the server's code.
    code = ktp.code.Load(env._TEST_STORE_CODE_DIR_ + "/server" +          \
                           ktp.code.Extension)

    # compute the name.
    name = "robot"

    # compute the file name.
    path = env._TEST_STORE_CAPABILITY_DIR_ + "/" +                        \
      name + ktp.capability.Extension

    # compute the link.
    link = env._PROFILE_DIR_ + "/user/robot/robot" + ktp.capability.Extension

    # create the capability.
    capability = ktp.capability.Create(
        code, name, ktp.capability.TypeStudent, {}, [{
            "name": "Robot",
            "email": "*****@*****.**",
            "login": "******"
        }])

    # store it.
    ktp.capability.Store(path, capability)

    # remove the previous link.
    env.remove(link, env.OPTION_NONE)

    # create a link from the profile. XXX[this could probably be improved]
    env.link(
        link,
        "../../../../test/store/capability/" + name + ktp.capability.Extension,
        env.OPTION_NONE)

    # display.
    env.display(env.HEADER_OK,
                "the robot's capability has been generated succesfully",
                env.OPTION_NONE)
Exemple #14
0
def			machine():
  env.display(env.HEADER_OK,
              "removing links to machine-dependent directories",
              env.OPTION_NONE)

  env.remove(env._GLUE_CURRENT_, env.OPTION_NONE)
  env.remove(env._ARCHITECTURE_CURRENT_, env.OPTION_NONE)
  env.remove(env._PLATFORM_CURRENT_, env.OPTION_NONE)
Exemple #15
0
def machine():
    env.display(env.HEADER_OK,
                "installing links to machine-dependent directories",
                env.OPTION_NONE)

    env.remove(env._GLUE_CURRENT_, env.OPTION_NONE)
    env.link(env._GLUE_CURRENT_, env._GLUE_DIR_, env.OPTION_NONE)

    env.remove(env._PLATFORM_CURRENT_, env.OPTION_NONE)
    env.link(env._PLATFORM_CURRENT_, env._PLATFORM_DIR_, env.OPTION_NONE)

    env.remove(env._ARCHITECTURE_CURRENT_, env.OPTION_NONE)
    env.link(env._ARCHITECTURE_CURRENT_, env._ARCHITECTURE_DIR_,
             env.OPTION_NONE)
Exemple #16
0
def clear():
    # remove the temporary directory which contains all the extracted
    # snapshots etc.
    env.remove(g_directory, env.OPTION_NONE)
Exemple #17
0
def                     boot():
  if env.path(env._IMAGE_, env.OPTION_EXIST):
    env.remove(env._IMAGE_, env.OPTION_NONE)
Exemple #18
0
def                     clear():
  # remove the temporary directory which contains all the extracted
  # snapshots etc.
  env.remove(g_directory, env.OPTION_NONE)
Exemple #19
0
def module_action(export_dir, arg):
    env.display(env.HEADER_OK, 'action fremove ' + arg['path'],
                env.OPTION_NONE)
    env.remove(export_dir + '/' + arg['path'], env.OPTION_NONE)
    return 0
Exemple #20
0
def module_action(export_dir, arg):
    env.display(env.HEADER_OK, 'action fremove ' + arg['path'], env.OPTION_NONE)
    env.remove(export_dir + '/' + arg['path'], env.OPTION_NONE)
    return 0
Exemple #21
0
def			clean():
  env.remove(env._ENV_MK_, env.OPTION_NONE)
  env.remove(env._ENV_PY_, env.OPTION_NONE)
Exemple #22
0
def module_action(export_dir, arg):
    env.display(env.HEADER_OK, "action fremovepattern " + arg["pattern"], env.OPTION_NONE)
    for d in env.search(export_dir, arg["pattern"], env.OPTION_RECURSIVE | env.OPTION_DIRECTORY | env.OPTION_FILE):
        env.remove(d, env.OPTION_NONE)
    return 0