def generate_command(command=None,<EOL>package=None,<EOL>path="<STR_LIT>",<EOL>topic="<STR_LIT>"<EOL>):
if command is None:<EOL><INDENT>Console.error("<STR_LIT>")<EOL>return<EOL><DEDENT>if topic is None:<EOL><INDENT>topic = "<STR_LIT>"<EOL><DEDENT>if path is None:<EOL><INDENT>path = "<STR_LIT:.>"<EOL><DEDENT>path = path_expand(path)<EOL>if package is None:<EOL><INDENT>package = "<STR_LIT>" + command<EOL><DEDENT>data = {'<STR_LIT>': command,<EOL>'<STR_LIT>': package,<EOL>'<STR_LIT:path>': path,<EOL>'<STR_LIT>': topic,<EOL>'<STR_LIT>': path_expand('<STR_LIT>')}<EOL>data["<STR_LIT>"] = "<STR_LIT>".format(**data)<EOL>print (data)<EOL>if os.path.exists("<STR_LIT>".format(**data)):<EOL><INDENT>Console.error("<STR_LIT>".format(**data))<EOL>return<EOL><DEDENT>banner("<STR_LIT>")<EOL>print("<STR_LIT>", data['<STR_LIT>'])<EOL>print("<STR_LIT>", data['<STR_LIT>'])<EOL>banner("<STR_LIT>")<EOL>script = """<STR_LIT>""".format(**data)<EOL>for line in script.split("<STR_LIT:\n>"):<EOL><INDENT>line = line.strip()<EOL>if line != "<STR_LIT>":<EOL><INDENT>print(line)<EOL>os.system(line)<EOL><DEDENT><DEDENT>banner("<STR_LIT>")<EOL>files = """<STR_LIT>""".format(**data)<EOL>for filename in files.split("<STR_LIT:\n>"):<EOL><INDENT>filename = filename.strip()<EOL>if filename != "<STR_LIT>":<EOL><INDENT>replace_string(filename, data)<EOL><DEDENT><DEDENT>banner("<STR_LIT>")<EOL>
the command will generate the package and code for a sample cmd3 module.

:param command: the name of the command
:param package: name of the new package. Often this will be cloudmesh_COMMAND
                which will be used if not specified.
:param path:    path where to place the directory
:param topic:   the topic listed in cm
:return: