Skip to content
This repository was archived by the owner on Feb 28, 2020. It is now read-only.

Commit

Permalink
feat: update to Swift 4, refactor application, prometheus, fix docker (
Browse files Browse the repository at this point in the history
…#358)

* feat: update to use Swift 4 (#349, #360, #361)
* feat: reorganise code for improved swiftyness (#347)
* feat: add Prometheus metrics endpoint (#357)
* feat(deps): generator-ibm-service-enablement@0.0.109
* feat(deps): generator-ibm-cloud-enablement@0.0.114
* fix: docker bug

BREAKING CHANGE: Not back-compatible with Swift 3
  • Loading branch information
tunniclm authored Oct 27, 2017
1 parent d8a5e0b commit e386950
Show file tree
Hide file tree
Showing 23 changed files with 7,474 additions and 221 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ os:
- linux
- osx
dist: trusty
osx_image: xcode8
osx_image: xcode9
before_install:
- if [[ $TRAVIS_NODE_VERSION == "8" ]]; then npm install -g npm@4; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then rvm get head; fi
Expand All @@ -24,7 +24,7 @@ script:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then osName="osx"; fi
- export projectFolder=`pwd`
- projectName="$(basename $projectFolder)"
- export SWIFT_SNAPSHOT=swift-3.1.1
- export SWIFT_SNAPSHOT=swift-4.0
- source ./Package-Builder/install-swift.sh
- if [[ $TRAVIS_EVENT_TYPE == "cron" ]]; then npm run testsdkgen; fi
- if [[ $TRAVIS_EVENT_TYPE != "cron" ]]; then npm run coverage && npm run report-coverage; fi
Expand Down
4 changes: 2 additions & 2 deletions lib/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ exports.ensureRequiredSwiftInstalled = function () {
reject(new Error(chalk.red('Could not determine swift version')))
return
}
if (version !== '3') {
reject(new Error(chalk.red('Swift version 3 is required for Swift Server Generator.')))
if (version !== '4') {
reject(new Error(chalk.red('Swift version 4 is required for Swift Server Generator.')))
return
}
resolve()
Expand Down
30 changes: 25 additions & 5 deletions lib/sdkGenHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,12 @@ exports.getServerSDKAsync = function (sdkName, generatedID) {

var sdkDir = path.join(tempDir, sdkName)
debug(`reading package dependencies from server SDK ${sdkName} in ${sdkDir}`)
var packages = readPackageDependencies(sdkName, sdkDir)

resolve({ tempDir: tempDir, dirname: sdkName, packages: packages })
try {
var packages = readPackageDependencies(sdkName, sdkDir)
resolve({ tempDir: tempDir, dirname: sdkName, packages: packages })
} catch (e) {
reject(e)
}
})
})
}
Expand All @@ -156,9 +159,26 @@ function ensureTrailingComma (string) {
function readPackageDependencies (sdkName, sdkDir) {
var originFile = fs.readFileSync(sdkDir + '/Package.swift', 'utf8')
var originMatches = originFile.match(/\.\bPackage\b.*/g)
var parsedDependencies = null
if (originMatches) {
debug(`found ${originMatches.length} package dependencies in server SDK ${sdkName}`)
return originMatches.map(m => ensureTrailingComma(m.trim()))
parsedDependencies = []
// input : .Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 1, minor: 7)
// output : .package(url: "https://github.com/IBM-Swift/Kitura.git", .upToNextMinor(from : "1.7.0")
originMatches.forEach(function (dependency) {
if (dependency.indexOf('minor') < 0) {
throw Error(chalk.red('SDKGEN Package dependency format is incompatible'))
}
dependency = dependency.replace('Package', 'package')
var commaSplit = dependency.split(',')
var majorVersion = commaSplit[1].replace(/[^0-9.]/g, '')
var minor = commaSplit[2].replace(/[^0-9.]/g, '')
dependency = commaSplit[0] + ', .upToNextMinor( from:"' + majorVersion + '.' + minor + '.0"))'
parsedDependencies.push(dependency)
})
}
if (parsedDependencies) {
debug(`found ${parsedDependencies.length} package dependencies in server SDK ${sdkName}`)
return parsedDependencies.map(m => ensureTrailingComma(m.trim()))
} else {
debug(`found no package dependencies in server SDK ${sdkName}`)
return []
Expand Down
Loading

0 comments on commit e386950

Please sign in to comment.