packageManage()

in src/langs/swift/package_info.js [98:148]


  packageManage() {
    let emitter = new Emitter(this.config);
    emitter.emitln('dependencies: [', 2);
    emitter.emitln('// Dependencies declare other packages that this package depends on.', 3);
    emitter.emitln('.package(url: "https://github.com/aliyun/tea-swift.git", from: "1.0.0"),', 3);
    let items = [];
    items.push('.product(name: "Tea", package: "tea-swift")');
    Object.keys(this.dependencies).forEach((key) => {
      const item = this.dependencies[key];
      const meta = item.meta;
      let version = getReleaseVersion(meta);
      let addr;
      if (meta.swift && meta.swift.packageInfo && meta.swift.packageInfo.github) {
        emitter.emitln(`.package(url: "${meta.swift.packageInfo.github}", from: "${version}"),`, 3);
        addr = meta.swift.packageInfo.github
          .replace('https://github.com/', '')
          .replace('http://github.com/', '')
          .replace('.git', '')
          .split('/')[1];
      } else {
        emitter.emitln(`.package(url: "https://github.com/${item.scope}/${item.package_name}.git", from: "${version}"),`, 3);
        addr = item.package_name;
      }
      items.push(`.product(name: "${item.package_name}", package: "${addr}")`);
    });
    emitter.emit(']', 2);
    let depen = items.join(`,
                        `);
    if (this.config.withTest) {
      items.unshift(`"${this.package}"`);
      let depenTest = items.join(', ');
      this.renderAuto(
        path.join(__dirname, './files/Package-test.swift.tmpl'),
        path.join(this.config.dir, 'Package.swift'), {
          name: this.package,
          SwiftPackageDependencies: emitter.output,
          SwiftPackageDependenciesNamespace: depen,
          SwiftPackageTestDependenciesNamespace: depenTest
        }
      );
    } else {
      this.renderAuto(
        path.join(__dirname, './files/Package.swift.tmpl'),
        path.join(this.config.dir, 'Package.swift'), {
          name: this.package,
          SwiftPackageDependencies: emitter.output,
          SwiftPackageDependenciesNamespace: depen
        }
      );
    }
  }