| |
| def prop(name, defVal) { |
| def value = project.properties[name] |
| if (value == null) return defVal |
| return value |
| } |
| |
| def distTag(version) { |
| def i = version.indexOf('-') |
| if (i > 0) return version.substring(i + 1) |
| return "latest" |
| } |
| |
| def npmTemplateDir = file("$projectDir/npm") |
| def npmDeployDir = file("$buildDir/npm") |
| def npmDeployTag = distTag(version) |
| |
| def authToken = prop("kotlin.npmjs.auth.token", "") |
| def dryRun = prop("dryRun", "false") |
| |
| task preparePublishNpm(type: Copy, dependsOn: [compileKotlin2Js]) { |
| from(npmTemplateDir) { |
| expand (project.properties + [kotlinDependency: "\"kotlin\": \"$kotlin_version\""]) |
| } |
| from("$buildDir/classes/kotlin/main") |
| into npmDeployDir |
| } |
| |
| task publishNpm(type: NpmTask, dependsOn: [preparePublishNpm]) { |
| workingDir = npmDeployDir |
| def deployArgs = ['publish', |
| "--//registry.npmjs.org/:_authToken=$authToken", |
| "--tag=$npmDeployTag"] |
| doFirst { |
| if (dryRun == "true") { |
| println("$npmDeployDir \$ npm arguments: $deployArgs") |
| args = ['pack'] |
| } else { |
| args = deployArgs |
| } |
| } |
| } |