expose single add-platform command instead of separate windows and wpf commands

This commit is contained in:
Artur Girenko 2017-04-30 20:05:32 +02:00
parent 750747d638
commit 4f4f16178f
1 changed files with 47 additions and 46 deletions

View File

@ -542,53 +542,59 @@ init = (interfaceName, projName) ->
message
addPlatform = (platform) ->
config = readConfig()
platforms = Object.keys config.platforms
try
if !(platform of platformMeta)
throw new Error "Unknown platform [#{platform}]"
if platform in platforms
log "A project for a #{platformMeta[platform].name} app already exists"
else
interfaceName = config.interface
projName = config.name
projNameHyph = projName.replace(camelRx, '$1-$2').toLowerCase()
projNameUs = toUnderscored projName
config = readConfig()
platforms = Object.keys config.platforms
log "Preparing for #{platformMeta[platform].name} app."
if platform in platforms
throw new Error "A project for a #{platformMeta[platform].name} app already exists"
else
interfaceName = config.interface
projName = config.name
projNameHyph = projName.replace(camelRx, '$1-$2').toLowerCase()
projNameUs = toUnderscored projName
updateProjectClj(platform)
copySrcFilesForPlatform(platform, interfaceName, projName, projNameUs, projNameHyph)
copyDevEnvironmentFilesForPlatform(platform, interfaceName, projNameHyph, projName, defaultEnvRoots.dev, "localhost")
copyProdEnvironmentFilesForPlatform(platform, interfaceName, projNameHyph, projName, defaultEnvRoots.prod)
log "Preparing for #{platformMeta[platform].name} app."
pkg = JSON.parse readFile 'package.json'
unless 'react-native-windows' in pkg.dependencies
pkg.dependencies['react-native-windows'] = rnWinVersion
fs.writeFileSync 'package.json', JSON.stringify pkg, null, 2
exec 'npm i'
updateProjectClj(platform)
copySrcFilesForPlatform(platform, interfaceName, projName, projNameUs, projNameHyph)
copyDevEnvironmentFilesForPlatform(platform, interfaceName, projNameHyph, projName, defaultEnvRoots.dev, "localhost")
copyProdEnvironmentFilesForPlatform(platform, interfaceName, projNameHyph, projName, defaultEnvRoots.prod)
if platform is 'windows'
log 'Creating React Native UWP project.'
exec "node -e
\"require('react-native-windows/local-cli/generate-windows')('.', '#{projName}', '#{projName}')\"
"
pkg = JSON.parse readFile 'package.json'
if platform is 'wpf'
log 'Creating React Native WPF project.'
exec "node -e
\"require('react-native-windows/local-cli/generate-wpf')('.', '#{projName}', '#{projName}')\"
"
unless 'react-native-windows' in pkg.dependencies
pkg.dependencies['react-native-windows'] = rnWinVersion
fs.writeFileSync 'package.json', JSON.stringify pkg, null, 2
exec 'npm i'
fs.appendFileSync(".gitignore", "\n\nindex.#{platform}.js\n")
if platform is 'windows'
log 'Creating React Native UWP project.'
exec "node -e
\"require('react-native-windows/local-cli/generate-windows')('.', '#{projName}', '#{projName}')\"
"
config.platforms[platform] =
host: "localhost"
modules: []
if platform is 'wpf'
log 'Creating React Native WPF project.'
exec "node -e
\"require('react-native-windows/local-cli/generate-wpf')('.', '#{projName}', '#{projName}')\"
"
writeConfig(config)
fs.appendFileSync(".gitignore", "\n\nindex.#{platform}.js\n")
log 'Compiling ClojureScript'
exec 'lein prod-build'
config.platforms[platform] =
host: "localhost"
modules: []
writeConfig(config)
log 'Compiling ClojureScript'
exec 'lein prod-build'
catch {message}
logErr message
openXcode = (name) ->
try
@ -776,15 +782,10 @@ cli.command 'upgrade'
.action ->
doUpgrade readConfig(false)
cli.command 'windows'
.description 'add project for UWP app'
.action ->
addPlatform('windows')
cli.command 'wpf'
.description 'add project for WPF app'
.action ->
addPlatform('wpf')
cli.command 'add-platform <platform>'
.description 'adds additional app platform: \'windows\' - UWP app, \'wpf\' - WPF app'
.action (platform) ->
addPlatform(platform)
cli.command 'xcode'
.description 'open Xcode project'