mirror of
https://github.com/status-im/re-natal.git
synced 2025-02-05 01:03:24 +00:00
Merge pull request #147 from drapanjanas/fix-bug-in-do-upgrade
Fix bug in do upgrade
This commit is contained in:
commit
b62774926a
@ -105,7 +105,6 @@ platformMeta =
|
|||||||
'wpf':
|
'wpf':
|
||||||
name: "WPF"
|
name: "WPF"
|
||||||
sources: ["core.cljs"]
|
sources: ["core.cljs"]
|
||||||
platforms = []
|
|
||||||
|
|
||||||
log = (s, color = 'green') ->
|
log = (s, color = 'green') ->
|
||||||
console.log chalk[color] s
|
console.log chalk[color] s
|
||||||
@ -202,7 +201,7 @@ ensureXcode = (cb) ->
|
|||||||
if message.match /type.+xcodebuild/i
|
if message.match /type.+xcodebuild/i
|
||||||
logErr 'Xcode Command Line Tools are required'
|
logErr 'Xcode Command Line Tools are required'
|
||||||
|
|
||||||
generateConfig = (interfaceName, projName) ->
|
generateConfig = (interfaceName, platforms, projName) ->
|
||||||
log 'Creating Re-Natal config'
|
log 'Creating Re-Natal config'
|
||||||
config =
|
config =
|
||||||
name: projName
|
name: projName
|
||||||
@ -262,7 +261,7 @@ readLocalConfig = () ->
|
|||||||
local = readConfig '.re-natal.local', false
|
local = readConfig '.re-natal.local', false
|
||||||
verifyConfig merge(global, local)
|
verifyConfig merge(global, local)
|
||||||
|
|
||||||
scanImageDir = (dir) ->
|
scanImageDir = (dir, platforms) ->
|
||||||
fnames = fs.readdirSync(dir)
|
fnames = fs.readdirSync(dir)
|
||||||
.map (fname) -> "#{dir}/#{fname}"
|
.map (fname) -> "#{dir}/#{fname}"
|
||||||
.filter (path) -> fs.statSync(path).isFile()
|
.filter (path) -> fs.statSync(path).isFile()
|
||||||
@ -281,10 +280,10 @@ removeExcludeFiles = (file) ->
|
|||||||
res = excludedFileNames.map (ex) -> (file.indexOf ex) == -1
|
res = excludedFileNames.map (ex) -> (file.indexOf ex) == -1
|
||||||
true in res
|
true in res
|
||||||
|
|
||||||
scanImages = (dirs) ->
|
scanImages = (dirs, platforms) ->
|
||||||
imgs = []
|
imgs = []
|
||||||
for dir in dirs
|
for dir in dirs
|
||||||
imgs = imgs.concat(scanImageDir(dir));
|
imgs = imgs.concat(scanImageDir(dir, platforms));
|
||||||
imgs
|
imgs
|
||||||
|
|
||||||
resolveAndroidDevHost = (deviceType) ->
|
resolveAndroidDevHost = (deviceType) ->
|
||||||
@ -346,7 +345,7 @@ generateConfigNs = (config) ->
|
|||||||
template = hb.compile(readFile "#{resources}/config.cljs")
|
template = hb.compile(readFile "#{resources}/config.cljs")
|
||||||
fs.writeFileSync("#{config.envRoots.dev}/env/config.cljs", template(config))
|
fs.writeFileSync("#{config.envRoots.dev}/env/config.cljs", template(config))
|
||||||
|
|
||||||
copyDevEnvironmentFiles = (interfaceName, projNameHyph, projName, devEnvRoot) ->
|
copyDevEnvironmentFiles = (interfaceName, platforms, projNameHyph, projName, devEnvRoot) ->
|
||||||
userNsPath = "#{devEnvRoot}/user.clj"
|
userNsPath = "#{devEnvRoot}/user.clj"
|
||||||
fs.copySync("#{resources}/user.clj", userNsPath)
|
fs.copySync("#{resources}/user.clj", userNsPath)
|
||||||
|
|
||||||
@ -360,7 +359,7 @@ copyProdEnvironmentFilesForPlatform = (platform, interfaceName, projNameHyph, pr
|
|||||||
fs.copySync("#{resources}/#{cljsDir}/main_prod.cljs", mainProdPath)
|
fs.copySync("#{resources}/#{cljsDir}/main_prod.cljs", mainProdPath)
|
||||||
edit mainProdPath, [[projNameHyphRx, projNameHyph], [projNameRx, projName], [platformRx, platform]]
|
edit mainProdPath, [[projNameHyphRx, projNameHyph], [projNameRx, projName], [platformRx, platform]]
|
||||||
|
|
||||||
copyProdEnvironmentFiles = (interfaceName, projNameHyph, projName, prodEnvRoot) ->
|
copyProdEnvironmentFiles = (interfaceName, platforms, projNameHyph, projName, prodEnvRoot) ->
|
||||||
for platform in platforms
|
for platform in platforms
|
||||||
copyProdEnvironmentFilesForPlatform platform, interfaceName, projNameHyph, projName, prodEnvRoot
|
copyProdEnvironmentFilesForPlatform platform, interfaceName, projNameHyph, projName, prodEnvRoot
|
||||||
|
|
||||||
@ -368,7 +367,7 @@ copyFigwheelBridge = (projNameUs) ->
|
|||||||
fs.copySync("#{resources}/figwheel-bridge.js", "./figwheel-bridge.js")
|
fs.copySync("#{resources}/figwheel-bridge.js", "./figwheel-bridge.js")
|
||||||
edit "figwheel-bridge.js", [[projNameUsRx, projNameUs]]
|
edit "figwheel-bridge.js", [[projNameUsRx, projNameUs]]
|
||||||
|
|
||||||
updateGitIgnore = () ->
|
updateGitIgnore = (platforms) ->
|
||||||
fs.appendFileSync(".gitignore", "\n# Generated by re-natal\n#\n")
|
fs.appendFileSync(".gitignore", "\n# Generated by re-natal\n#\n")
|
||||||
|
|
||||||
indexFiles = platforms.map (platform) -> "index.#{platform}.js"
|
indexFiles = platforms.map (platform) -> "index.#{platform}.js"
|
||||||
@ -413,7 +412,7 @@ copySrcFilesForPlatform = (platform, interfaceName, projName, projNameUs, projNa
|
|||||||
fs.copySync("#{resources}/#{cljsDir}/#{fileName}", path)
|
fs.copySync("#{resources}/#{cljsDir}/#{fileName}", path)
|
||||||
edit path, [[projNameHyphRx, projNameHyph], [projNameRx, projName], [platformRx, platform]]
|
edit path, [[projNameHyphRx, projNameHyph], [projNameRx, projName], [platformRx, platform]]
|
||||||
|
|
||||||
copySrcFiles = (interfaceName, projName, projNameUs, projNameHyph) ->
|
copySrcFiles = (interfaceName, platforms, projName, projNameUs, projNameHyph) ->
|
||||||
cljsDir = interfaceConf[interfaceName].cljsDir
|
cljsDir = interfaceConf[interfaceName].cljsDir
|
||||||
|
|
||||||
fileNames = interfaceConf[interfaceName].sources.common;
|
fileNames = interfaceConf[interfaceName].sources.common;
|
||||||
@ -444,7 +443,7 @@ creteBuildConfigs = (profiles, platforms) ->
|
|||||||
builds[profile] = configs.join("\n")
|
builds[profile] = configs.join("\n")
|
||||||
builds
|
builds
|
||||||
|
|
||||||
copyProjectClj = (interfaceName, projNameHyph) ->
|
copyProjectClj = (interfaceName, platforms, projNameHyph) ->
|
||||||
fs.copySync("#{resources}/project.clj", "project.clj")
|
fs.copySync("#{resources}/project.clj", "project.clj")
|
||||||
deps = interfaceConf[interfaceName].deps.join("\n")
|
deps = interfaceConf[interfaceName].deps.join("\n")
|
||||||
|
|
||||||
@ -487,7 +486,7 @@ updateProjectClj = (platform) ->
|
|||||||
[buildProfiles.advanced.profilesRx, builds.advanced]
|
[buildProfiles.advanced.profilesRx, builds.advanced]
|
||||||
]
|
]
|
||||||
|
|
||||||
init = (interfaceName, projName) ->
|
init = (interfaceName, projName, platforms) ->
|
||||||
if projName.toLowerCase() is 'react' or !projName.match validNameRx
|
if projName.toLowerCase() is 'react' or !projName.match validNameRx
|
||||||
logErr 'Invalid project name. Use an alphanumeric CamelCase name.'
|
logErr 'Invalid project name. Use an alphanumeric CamelCase name.'
|
||||||
|
|
||||||
@ -515,12 +514,12 @@ init = (interfaceName, projName) ->
|
|||||||
corePath = "src/#{projNameUs}/core.clj"
|
corePath = "src/#{projNameUs}/core.clj"
|
||||||
fs.unlinkSync corePath
|
fs.unlinkSync corePath
|
||||||
|
|
||||||
copyProjectClj(interfaceName, projNameHyph)
|
copyProjectClj(interfaceName, platforms, projNameHyph)
|
||||||
|
|
||||||
copySrcFiles(interfaceName, projName, projNameUs, projNameHyph)
|
copySrcFiles(interfaceName, platforms, projName, projNameUs, projNameHyph)
|
||||||
|
|
||||||
copyDevEnvironmentFiles(interfaceName, projNameHyph, projName, defaultEnvRoots.dev)
|
copyDevEnvironmentFiles(interfaceName, platforms, projNameHyph, projName, defaultEnvRoots.dev)
|
||||||
copyProdEnvironmentFiles(interfaceName, projNameHyph, projName, defaultEnvRoots.prod)
|
copyProdEnvironmentFiles(interfaceName, platforms, projNameHyph, projName, defaultEnvRoots.prod)
|
||||||
|
|
||||||
fs.copySync("#{resources}/images", "./images")
|
fs.copySync("#{resources}/images", "./images")
|
||||||
|
|
||||||
@ -561,9 +560,9 @@ init = (interfaceName, projName) ->
|
|||||||
\"require('react-native-windows/local-cli/generate-wpf')('.', '#{projName}', '#{projName}')\"
|
\"require('react-native-windows/local-cli/generate-wpf')('.', '#{projName}', '#{projName}')\"
|
||||||
"
|
"
|
||||||
|
|
||||||
updateGitIgnore()
|
updateGitIgnore(platforms)
|
||||||
|
|
||||||
config = generateConfig(interfaceName, projName)
|
config = generateConfig(interfaceName, platforms, projName)
|
||||||
generateConfigNs(config);
|
generateConfigNs(config);
|
||||||
|
|
||||||
copyFigwheelBridge(projNameUs)
|
copyFigwheelBridge(projNameUs)
|
||||||
@ -725,7 +724,8 @@ platformModulesAndImages = (config, platform) ->
|
|||||||
requires = buildRequireByPlatformMap()
|
requires = buildRequireByPlatformMap()
|
||||||
requires.common.concat(requires[platform])
|
requires.common.concat(requires[platform])
|
||||||
else
|
else
|
||||||
images = scanImages(config.imageDirs).map (fname) -> './' + fname;
|
platforms = Object.keys config.platforms
|
||||||
|
images = scanImages(config.imageDirs, platforms).map (fname) -> './' + fname;
|
||||||
modulesAndImages = config.modules.concat images;
|
modulesAndImages = config.modules.concat images;
|
||||||
if typeof config.platforms[platform].modules is 'undefined'
|
if typeof config.platforms[platform].modules is 'undefined'
|
||||||
modulesAndImages
|
modulesAndImages
|
||||||
@ -774,6 +774,7 @@ doUpgrade = (config) ->
|
|||||||
projName = config.name
|
projName = config.name
|
||||||
projNameHyph = projName.replace(camelRx, '$1-$2').toLowerCase()
|
projNameHyph = projName.replace(camelRx, '$1-$2').toLowerCase()
|
||||||
projNameUs = toUnderscored projName
|
projNameUs = toUnderscored projName
|
||||||
|
platforms = Object.keys config.platforms
|
||||||
|
|
||||||
unless config.interface
|
unless config.interface
|
||||||
config.interface = defaultInterface
|
config.interface = defaultInterface
|
||||||
@ -819,8 +820,8 @@ doUpgrade = (config) ->
|
|||||||
interfaceName = config.interface
|
interfaceName = config.interface
|
||||||
envRoots = config.envRoots
|
envRoots = config.envRoots
|
||||||
|
|
||||||
copyDevEnvironmentFiles(interfaceName, projNameHyph, projName, envRoots.dev)
|
copyDevEnvironmentFiles(interfaceName, platforms, projNameHyph, projName, envRoots.dev)
|
||||||
copyProdEnvironmentFiles(interfaceName, projNameHyph, projName, envRoots.prod)
|
copyProdEnvironmentFiles(interfaceName, platforms, projNameHyph, projName, envRoots.prod)
|
||||||
generateConfigNs(config);
|
generateConfigNs(config);
|
||||||
log "upgraded files in #{envRoots.dev} and #{envRoots.prod} "
|
log "upgraded files in #{envRoots.dev} and #{envRoots.prod} "
|
||||||
|
|
||||||
@ -899,13 +900,12 @@ cli.command 'init <name>'
|
|||||||
'''
|
'''
|
||||||
unless interfaceConf[cmd.interface]
|
unless interfaceConf[cmd.interface]
|
||||||
logErr "Unsupported React interface: #{cmd.interface}, one of [#{interfaceNames}] was expected."
|
logErr "Unsupported React interface: #{cmd.interface}, one of [#{interfaceNames}] was expected."
|
||||||
platforms.push 'ios'
|
platforms = ['ios', 'android']
|
||||||
platforms.push 'android'
|
|
||||||
if cmd.uwp?
|
if cmd.uwp?
|
||||||
platforms.push 'windows'
|
platforms.push 'windows'
|
||||||
if cmd.wpf?
|
if cmd.wpf?
|
||||||
platforms.push 'wpf'
|
platforms.push 'wpf'
|
||||||
ensureFreePort -> init(cmd.interface, name)
|
ensureFreePort -> init(cmd.interface, name, platforms)
|
||||||
|
|
||||||
cli.command 'upgrade'
|
cli.command 'upgrade'
|
||||||
.description 'upgrades project files to current installed version of re-natal (the upgrade of re-natal itself is done via npm)'
|
.description 'upgrades project files to current installed version of re-natal (the upgrade of re-natal itself is done via npm)'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user