def new(self, *args): """ create a new package template conanfile.py and other optional files """ parser = argparse.ArgumentParser(description=self.new.__doc__, prog="conan new", formatter_class=RawTextHelpFormatter) parser.add_argument("name", help='Package name, e.g.: Poco/1.7.3@user/testing') parser.add_argument( "-t", "--test", action='store_true', default=False, help='Create test_package skeleton to test package') parser.add_argument("-i", "--header", action='store_true', default=False, help='Create a headers only package') parser.add_argument( "-c", "--pure_c", action='store_true', default=False, help='Create a C language package only package (non-headers)') args = parser.parse_args(*args) root_folder = os.getcwd() try: name, version, user, channel = ConanFileReference.loads(args.name) except: raise ConanException("Bad parameter, please use full package name," "e.g: MyLib/1.2.3@user/testing") from conans.client.new import (conanfile, conanfile_header, test_conanfile, test_cmake, test_main) if args.header: files = { "conanfile.py": conanfile_header.format(name=name, version=version) } else: files = { "conanfile.py": conanfile.format(name=name, version=version) } if args.pure_c: config = "\n def config(self):\n del self.settings.compiler.libcxx" files["conanfile.py"] = files["conanfile.py"] + config if args.test: files["test_package/conanfile.py"] = test_conanfile.format( name=name, version=version, user=user, channel=channel) files["test_package/CMakeLists.txt"] = test_cmake files["test_package/example.cpp"] = test_main save_files(root_folder, files) for f in sorted(files): self._user_io.out.success("File saved: %s" % f)
def new(self, *args): """ create a new package template conanfile.py and other optional files """ parser = argparse.ArgumentParser(description=self.new.__doc__, prog="conan new", formatter_class=RawTextHelpFormatter) parser.add_argument("name", help='Package name, e.g.: Poco/1.7.3@user/testing') parser.add_argument("-t", "--test", action='store_true', default=False, help='Create test_package skeleton to test package') parser.add_argument("-i", "--header", action='store_true', default=False, help='Create a headers only package') parser.add_argument("-c", "--pure_c", action='store_true', default=False, help='Create a C language package only package (non-headers)') args = parser.parse_args(*args) root_folder = os.getcwd() try: name, version, user, channel = ConanFileReference.loads(args.name) pattern = re.compile('[\W_]+') package_name = pattern.sub('', name).capitalize() except: raise ConanException("Bad parameter, please use full package name," "e.g: MyLib/1.2.3@user/testing") from conans.client.new import (conanfile, conanfile_header, test_conanfile, test_cmake, test_main) if args.header: files = {"conanfile.py": conanfile_header.format(name=name, version=version, package_name=package_name)} else: files = {"conanfile.py": conanfile.format(name=name, version=version, package_name=package_name)} if args.pure_c: config = "\n def config(self):\n del self.settings.compiler.libcxx" files["conanfile.py"] = files["conanfile.py"] + config if args.test: files["test_package/conanfile.py"] = test_conanfile.format(name=name, version=version, user=user, channel=channel, package_name=package_name) files["test_package/CMakeLists.txt"] = test_cmake files["test_package/example.cpp"] = test_main save_files(root_folder, files) for f in sorted(files): self._user_io.out.success("File saved: %s" % f)