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
}
);
}
}