Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. #!/usr/bin/env node
  2.  
  3. var cordova_util = require('cordova/src/util');
  4. var projectRoot = cordova_util.isCordova(process.cwd());
  5. var projectXml = cordova_util.projectConfig(projectRoot);
  6. var projectConfig = new cordova_util.config_parser(projectXml);
  7. projectConfig.name();
  8.  
  9. var fs = require ('fs');
  10.  
  11. var platformDir = {
  12. ios: {
  13. icon: "{$projectName}/Resources/icons",
  14. splash: "{$projectName}/Resources/splash",
  15. nameMap: {
  16. "icon-57.png": "icon.png",
  17. "icon-57-2x.png": "icon@2x.png",
  18. "icon-72-2x.png": "icon-72@2x.png",
  19. "screen-iphone-portrait.png": "Default~iphone.png",
  20. "screen-iphone-portrait-2x.png": "Default@2x~iphone.png",
  21. "screen-iphone-portrait-568h-2x.png": "Default-568h@2x~iphone.png"
  22. }
  23. },
  24. android: {
  25. icon:"res/drawable-{$density}",
  26. splash:"res/drawable-{$density}",
  27. nameMap: {
  28. "icon-36-ldpi.png": "icon.png",
  29. "icon-48-mdpi.png": "icon.png",
  30. "icon-72-hdpi.png": "icon.png",
  31. "icon-96-xhdpi.png": "icon.png",
  32. "screen-ldpi-portrait.png": "ic_launcher.png",
  33. "screen-mdpi-portrait.png": "ic_launcher.png",
  34. "screen-hdpi-portrait.png": "ic_launcher.png",
  35. "screen-xhdpi-portrait.png": "ic_launcher.png"
  36. }
  37. },
  38. blackberry10: {},
  39. wp7: {},
  40. wp8: {}
  41. }
  42.  
  43. function copyAsset (scope, node) {
  44. var platform = node.attrib['gap:platform'];
  45. var density = node.attrib['gap:density'];
  46. var assetDirTmpl = platformDir[platform] && platformDir[platform][scope];
  47. if (!assetDirTmpl)
  48. return;
  49.  
  50. var dict = {
  51. projectName: projectConfig.name(),
  52. density: density
  53. };
  54.  
  55. var assetDir = assetDirTmpl.replace (/{\$([^}]+)}/, function (match, p1) {
  56. return dict[p1];
  57. });
  58.  
  59.  
  60. var srcPath = 'www/'+node.attrib.src;
  61. var fileName = srcPath.match(/[^\/]+$/)[0];
  62. if (platformDir[platform] && platformDir[platform].nameMap && platformDir[platform].nameMap[fileName]) {
  63. fileName = platformDir[platform].nameMap[fileName];
  64. }
  65. var dstPath = 'platforms/'+platform+'/'+assetDir+'/'+fileName;
  66.  
  67. console.log ('copying from '+srcPath+' to the '+dstPath);
  68. // so, here we start to copy asset
  69. fs.stat (srcPath, function (err, stats) {
  70. if (err) {
  71. return;
  72. }
  73. var r = fs.createReadStream(srcPath);
  74. r.on ('open', function () {
  75. r.pause();
  76. var w = fs.createWriteStream(dstPath);
  77. w.on ('open', function () {
  78. r.pipe(w);
  79. r.resume();
  80. });
  81. w.on ('error', function() {
  82. console.log('Cannot write file');
  83. })
  84. });
  85. r.on ('error', function() {
  86. console.log('Cannot read file');
  87. })
  88. })
  89. }
  90.  
  91. projectConfig.doc.findall ('icon').map (function (node) {
  92. copyAsset ('icon', node);
  93. });
  94.  
  95. projectConfig.doc.findall ('*').filter (function (node) {if (node.tag == 'gap:splash') return true;}).map (function (node) {
  96. copyAsset ('splash', node);
  97. });
  98.  
  99.  
  100.  
  101. // echo "======================================================================================================="
  102.  
  103. // set
  104.  
  105. // echo $1
  106.  
  107. // platforms/ios/G20Summit2013/Resources/icons/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement