Advertisement
Guest User

Untitled

a guest
Dec 26th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.53 KB | None | 0 0
  1. // Requires
  2. var gulp = require('gulp');
  3.  
  4. // Include plugins
  5. var del = require('del');
  6. var gulpSequence = require('gulp-sequence');
  7. var NwBuilder = require('nw-builder');
  8. var gutil = require('gulp-util');
  9. var replace = require('gulp-replace');
  10. var rename = require("gulp-rename");
  11. var readlineSync = require('readline-sync');
  12. var ico = require("gulp-to-ico");
  13. var scrape = require('website-scraper');
  14. var sftp = require('gulp-sftp');
  15. var fs = require('fs');
  16. var GulpSSH = require('gulp-ssh');
  17. var unzip = require('unzip');
  18. var dom = require("gulp-dom");
  19. var exec = require('child_process').exec;
  20. const using = require('gulp-using');
  21.  
  22. // Variables de chemins
  23. var source = './source/'; // dossier de travail
  24. var destination = './dist/'; // dossier à livrer
  25. var nwBuildercomponents = './builder_ressources/'; // dossier qui contient les elements pour nw builder Manifest, icones ...
  26. var nwBuilderbuild = './build/'; // dossier qui contient les elements pour nw builder Manifest, icones ...
  27. var newSrc = './re-source/';
  28.  
  29. // Variable du projet
  30. var project_id;
  31. var setting;
  32. var project_name;
  33. var project_path = "";
  34. var legends_path = "";
  35. var project_commercialisateur;
  36. var video_link = "";
  37. var project_version = '1.0.0';
  38. var project_main = 'index.html';
  39. var project_description;
  40. var project_windows_title;
  41. var project_windows_icon;
  42. var project_windows_keywords;
  43. var os = ['win64'];
  44.  
  45.  
  46. gulp.task('offline', gulpSequence('phase-1bis', 'phase-2', 'phase-3', 'phase-4', 'phase-5'));
  47.  
  48. gulp.task('offline-no-media', gulpSequence('phase-1bis', 'phase-2bis', 'phase-3bis', 'phase-4'));
  49.  
  50. gulp.task('phase-1', gulpSequence('init-input', 'get-index', 'get-setting', 'init-value', 'init-verif'));
  51.  
  52. gulp.task('phase-1bis', gulpSequence('init-path', 'get-setting', 'init-value', 'init-verif'));
  53.  
  54. gulp.task('phase-2', gulpSequence('download-website', 'get-legends-path', 'download-json'));
  55.  
  56. gulp.task('phase-2bis', gulpSequence('download-website', 'get-legends-path-bis', 'download-json'));
  57.  
  58. gulp.task('phase-3', gulpSequence('rm-png', 'download-maquette', 'download-iframe'));
  59.  
  60. gulp.task('phase-3bis', gulpSequence('wait-media'));
  61.  
  62. gulp.task('phase-4', gulpSequence('download-skin-svg', 'download-skin-xml', 'download-skin-png-1','download-skin-png-2', 'remplace-param', 'remplace-param2', 'download-video', 'remplace-param3', ['copy-ressources']/*,['copy-skin']*/));
  63.  
  64. gulp.task('phase-5', gulpSequence('init-value', 'nw'));
  65.  
  66.  
  67. //Tâche init
  68. gulp.task('init-input', function () {
  69. process.stdin.isTTY = process.stdout.isTTY = true;
  70. project_id = readlineSync.question('ID du projet : ');
  71. });
  72.  
  73. gulp.task('init-path', function () {
  74. process.stdin.isTTY = process.stdout.isTTY = true;
  75. project_id = readlineSync.question('ID du projet : ');
  76. project_path = readlineSync.question('Path du projet : ');
  77. });
  78.  
  79. gulp.task('wait-media', function () {
  80. readlineSync.question('Copier les dossiers iframe et maquette dans ./dist/assets/images : ');
  81. });
  82.  
  83. gulp.task('download-video', function () {
  84. if (video_link != "") {
  85. return exec('ytdl ' + video_link + ' > ./dist/assets/images/video.mp4', function (err, stdout, stderr) {
  86. console.log(stdout);
  87. console.log(stderr);
  88. });
  89. }
  90. });
  91.  
  92. gulp.task('init-verif', function () {
  93. var input = readlineSync.question("Ces informations sont elles correctes ? (y/n) \n\nNom du programme : " + project_name + "\nPath du programme : " + project_path + "\nNom du commercialisateur : " + project_commercialisateur + "\n");
  94. if (input == "n") {
  95. console.log("Verifiez votre settings_v3.json");
  96. process.exit();
  97. }
  98. });
  99.  
  100. gulp.task('init-replace', function () {
  101. console.log('Project name : ' + project_name);
  102. gulp.src('./gulpfile.js')
  103. .pipe(replace(new RegExp('(var ?project_name = ?\').*(\';?)'), '$1' + project_name + '$2'))
  104. .pipe(gulp.dest('.'));
  105. });
  106.  
  107. gulp.task('init-folders', function () {
  108. // Get all html
  109. gulp.src(source + '/*.html')
  110. .pipe(gulp.dest(newSrc));
  111. // get all css
  112. gulp.src([source + '**/*.css', source + '**/*.less'])
  113. .pipe(rename({dirname: 'css'}))
  114. .pipe(gulp.dest(newSrc + 'assets'))
  115. });
  116. gulp.task('init', gulpSequence('init-input', ['init-replace']));
  117.  
  118. gulp.task('get-index', function () {
  119. console.log("Telechargement de l'index");
  120. return scrape({
  121. urls: [{
  122. url: 'http://arka.iframe.evimmo.fr/services/iframev3/maquette?p=' + project_id + '',
  123. filename: 'index.html'
  124. }],
  125. directory: './tmp'
  126. }).then().catch(console.log);
  127. });
  128. gulp.task('get-legends-path', function () {
  129. console.log("Recuperation du path de legends");
  130. return gulp.src('dist/index.html')
  131. .pipe(dom(function () {
  132. legends_path = this.querySelector('#player3d').getAttribute("data-legends-src");
  133. }));
  134. });
  135.  
  136. gulp.task('get-legends-path-bis', function () {
  137. var input = readlineSync.question("Utiliser le legends du commercialisateur ? (y/n) \n");
  138. if (input == "n") {
  139. legends_path = "/media/programmes/" + project_path + "/legends.xml";
  140. }
  141. else {
  142. legends_path = "/media/commercialisateurs/" + project_commercialisateur + "/iframe/legends.xml";
  143. }
  144. });
  145.  
  146. gulp.task('rm-png', function () {
  147. console.log("Suppression des medias png-1080 sur le serveur");
  148. var config = {
  149. host: '78.109.89.167',
  150. port: 22,
  151. username: 'evimmo',
  152. privateKey: fs.readFileSync('id_ftp_rsa')
  153. };
  154.  
  155. var gulpSSH = new GulpSSH({
  156. ignoreErrors: false,
  157. sshConfig: config
  158. });
  159.  
  160. return gulpSSH
  161. .shell(['rm -rf /home/evimmo/mnt/medias/evimmo.fr/programmes/' + project_path + '/maquette/*/png-*'], {filePath: 'shell.log'})
  162. .pipe(gulp.dest('./dist/assets/images/maquette'));
  163. });
  164.  
  165. gulp.task('download-maquette', function (cb) {
  166. console.log("Telechargement de la maquette (cette etape prend plusieurs minutes)");
  167. exec('scp -r -i id_ftp_rsa evimmo@78.109.89.167:/home/evimmo/mnt/medias/evimmo.fr/programmes/' + project_path + '/maquette dist/assets/images')
  168. del('dist/assets/images/maquette/shell.log');
  169. return exec('scp -r -i id_ftp_rsa evimmo@78.109.89.167:/home/evimmo/mnt/medias/evimmo.fr/programmes/' + project_path + '/maquette dist/assets/images', function (err, stdout, stderr) {
  170. console.log(stdout);
  171. console.log(stderr);
  172. cb(err);
  173. });
  174. });
  175.  
  176. gulp.task('download-iframe', function (cb) {
  177. console.log("Telechargement de l'iframe (cette etape peut prendre plusieurs minutes)");
  178. return exec('scp -r -i id_ftp_rsa evimmo@78.109.89.167:/home/evimmo/mnt/medias/evimmo.fr/programmes/' + project_path + '/iframe dist/assets/images', function (err, stdout, stderr) {
  179. console.log(stdout);
  180. console.log(stderr);
  181. cb(err);
  182. });
  183. });
  184.  
  185. gulp.task('get-setting', function () {
  186. console.log("Telechargement de setting");
  187. var config = {
  188. host: '78.109.89.167',
  189. port: 22,
  190. username: 'evimmo',
  191. privateKey: fs.readFileSync('id_ftp_rsa')
  192. };
  193.  
  194. var gulpSSH = new GulpSSH({
  195. ignoreErrors: false,
  196. sshConfig: config
  197. });
  198.  
  199. return gulpSSH.sftp('read', '/home/evimmo/mnt/medias/evimmo.fr/programmes/' + project_path + '/iframe/settings_v3.json', {filePath: 'settings_v3.json'})
  200. .pipe(gulp.dest('./'))
  201. });
  202.  
  203. gulp.task('init-value', function () {
  204. console.log("Initialisation des valeurs");
  205. setting = JSON.parse(fs.readFileSync('settings_v3.json'));
  206. project_name = setting['programme']['nom'];
  207. project_path = setting['programme']['path'];
  208. if (typeof(setting['navigation']['elements']['video']) !== "undefined") {
  209. video_link = setting['navigation']['elements']['video']['path'];
  210. console.log("Reception du lien de la video");
  211. }
  212. project_commercialisateur = setting['programme']['commercialisateur'];
  213. project_description = project_name + ' Offline';
  214. project_windows_title = project_description;
  215. project_windows_icon = './dist/assets/images/' + setting['programme']['logo_commercialisateur']['src'];
  216. project_windows_keywords = project_name + '\",\" Offline';
  217. });
  218.  
  219. gulp.task('download-website', function () {
  220. console.log("Telechargement du site");
  221. return scrape({
  222. urls: [{
  223. url: 'http://' + project_commercialisateur + '.iframe.evimmo.fr/services/iframev3/maquette?p=' + project_id,
  224. filename: 'index.html'
  225. }],
  226. directory: 'dist',
  227. urlFilter: function (url) {
  228. return url.indexOf('http://' + project_commercialisateur + '.iframe.evimmo.fr') === 0 || url.indexOf('http://player.evimmo.fr') === 0;
  229. },
  230. recursive: true,
  231. maxRecursiveDepth: 100,
  232. maxDepth: 100,
  233. updateMissingSources: true,
  234. prettifyUrls: true,
  235. subdirectories: [
  236. {directory: 'assets/images', extensions: ['.jpg', '.png']},
  237. {directory: 'assets/images/icones', extensions: ['.svg']},
  238. {directory: 'assets/js', extensions: ['.js']},
  239. {directory: 'assets/css', extensions: ['.css']}
  240. ]
  241. }).then().catch(console.log);
  242. });
  243.  
  244. gulp.task('sftp-compress', function () {
  245. console.log("Compression des medias sur le serveur");
  246. var config = {
  247. host: '78.109.89.167',
  248. port: 22,
  249. username: 'evimmo',
  250. privateKey: fs.readFileSync('id_ftp_rsa')
  251. };
  252.  
  253. var gulpSSH = new GulpSSH({
  254. ignoreErrors: false,
  255. sshConfig: config
  256. });
  257.  
  258. return gulpSSH
  259. .shell(['cd /home/evimmo/mnt/medias/evimmo.fr/programmes/' + project_path + '/', 'zip -r medias.zip maquette iframe/*'], {filePath: 'shell.log'})
  260. .pipe(gulp.dest('logs'));
  261. });
  262.  
  263. gulp.task('sftp-download', function () {
  264. console.log("Telechargement de l'archive distante (cette etape prend plusieurs minutes)");
  265. var config = {
  266. host: '78.109.89.167',
  267. port: 22,
  268. username: 'evimmo',
  269. privateKey: fs.readFileSync('id_ftp_rsa')
  270. };
  271.  
  272. var gulpSSH = new GulpSSH({
  273. ignoreErrors: false,
  274. sshConfig: config
  275. });
  276.  
  277. return gulpSSH.sftp('read', '/home/evimmo/mnt/medias/evimmo.fr/programmes/' + project_path + '/medias.zip', {filePath: 'medias.zip'})
  278. .pipe(gulp.dest('dist/assets/images/'))
  279. });
  280.  
  281. gulp.task('sftp-remove', function () {
  282. console.log("Suppression de l'archive distante de media");
  283. var config = {
  284. host: '78.109.89.167',
  285. port: 22,
  286. username: 'evimmo',
  287. privateKey: fs.readFileSync('id_ftp_rsa')
  288. };
  289.  
  290. var gulpSSH = new GulpSSH({
  291. ignoreErrors: false,
  292. sshConfig: config
  293. });
  294.  
  295. return gulpSSH
  296. .shell(['cd /home/evimmo/mnt/medias/evimmo.fr/programmes/' + project_path + '/', 'rm medias.zip'], {filePath: 'shell.log'})
  297. .pipe(gulp.dest('logs'));
  298. });
  299.  
  300. gulp.task('unzip-media', function () {
  301. console.log("Decompression de l'archive local de media");
  302. fs.createReadStream('dist/assets/images/medias.zip').pipe(unzip.Extract({path: 'dist/assets/images/'}));
  303. del(['dist/assets/images/medias.zip']).then(paths => {
  304. console.log('Deleted files and folders:\n', paths.join('\n'));
  305. });
  306. });
  307.  
  308. gulp.task('copy-ressources', function () {
  309. console.log("Copie des fichiers de ressources");
  310. gulp.src(['builder_ressources/compass/*'])
  311. .pipe(gulp.dest('dist/assets/images/compass'));
  312. gulp.src(['builder_ressources/krpano/plugins/*'])
  313. .pipe(gulp.dest('dist/assets/krpano/plugins'));
  314. gulp.src(['builder_ressources/swf/*'])
  315. .pipe(gulp.dest('dist/assets/swf'));
  316. });
  317.  
  318. gulp.task('copy-skin', function () {
  319. console.log("Copie des fichiers de skin");
  320. for (var k in setting['interieur']) {
  321. console.log(setting['interieur'][k]['src']);
  322. gulp.src(['dist/assets/krpano/skin/*'])
  323. .pipe(gulp.dest('dist/assets/images/' + setting['interieur'][k]['src'] + "/skin"));
  324. }
  325. });
  326.  
  327. gulp.task('remplace-param', function () {
  328. console.log("Corrections de certains parametres");
  329. setting = JSON.parse(fs.readFileSync('settings_v3.json'));
  330. project_path = setting['programme']['path'];
  331. console.log("Project path => " + project_path);
  332. project_commercialisateur = setting['programme']['commercialisateur'];
  333. console.log("Project commercialisateur => " + project_commercialisateur);
  334. return gulp.src(['dist/**/**/*.html', 'dist/**/**/.js', 'dist/**/**/*.css', 'dist/**/**/*.xml', 'dist/**/**/*.svg'])
  335. .pipe(using({}))
  336. .pipe(replace('<iframe allowfullscreen="allowfullscreen" src="' + video_link + '" scrolling="no" width="100%" height="100%" id="iniframe">', '<iframe allowfullscreen="allowfullscreen" src="./assets/images/video.mp4" scrolling="no" width="100%" height="100%" id="iniframe">'))
  337. .pipe(replace('<li class="nav__filtre hidden-xs hidden-sm">', '<li class="nav__filtre hidden-xs hidden-sm" style="display: none">'))
  338. .pipe(replace('<div class="barre-recherche fadeIn" id="barre-recherche">', '<div class="barre-recherche fadeIn" id="barre-recherche" style="display: none">'))
  339. .pipe(replace('<!-- META -->', '<link rel="icon" href="assets/images/logo.ico" />'))
  340. .pipe(replace('<div class="nav__mobile__icon nav__mobile__icon--search hidden-lg js-nav__mobile--search"></div>', '<div class="nav__mobile__icon nav__mobile__icon--search hidden-lg js-nav__mobile--search" style="display: none"></div>'))
  341. .pipe(replace('/media/programmes/' + project_path + '/maquette', './assets/images/maquette'))
  342. .pipe(replace('/media/programmes/' + project_path + '//maquette', './assets/images/maquette'))
  343. .pipe(replace("/media/programmes/' + nomProgramme + '/maquette/", './assets/images/maquette'))
  344. .pipe(replace('/js/ArkaPlayer/img/compass', './assets/images/compass'))
  345. .pipe(replace('/three/' + project_path + '/get-new-medias/format/json', './assets/xhr/definitions.json'))
  346. .pipe(replace('/three/' + project_path + '/get-new-lots/format/json', './assets/xhr/lots.json'))
  347. .pipe(replace('/media/programmes/' + project_path + '/legends.xml', './assets/xhr/legends.xml'))
  348. .pipe(replace('/media/programmes/' + project_path + '/photoloc/tour.xml', './assets/images/photoloc/tour.xml'))
  349. .pipe(replace('/media/commercialisateurs/' + project_commercialisateur + '/iframe/legends.xml', './assets/xhr/legends.xml'))
  350. .pipe(replace('/media/commercialisateurs/' + project_commercialisateur + '/legends.xml', './assets/xhr/legends.xml'))
  351. .pipe(replace('/media/programmes/' + project_path + '/iframe', './assets/images/iframe'))
  352. .pipe(replace('/media/commercialisateurs/' + project_commercialisateur + '/krpano/', './assets/krpano/'))
  353. .pipe(replace('vars["skinUrl"] = "./assets/krpano/skin/vtourskin.xml"', 'vars["skinUrl"] = "%SWFPATH%/skin/xml/vtourskin.xml"'))
  354. .pipe(replace('/media/commercialisateurs/defaut/krpano/skin/vtourskin.xml', '../../krpano/skin/xml/vtourskin.xml'))
  355. .pipe(replace('vtourskin.png', '%SWFPATH%/skin/vtourskin/vtourskin.png'))
  356. .pipe(replace('vtourskin_thumbborder.png', '%SWFPATH%/skin/vtourskin_thumbborder/vtourskin_thumbborder.png'))
  357. .pipe(replace('/js/krpano/krpano.swf', './assets/krpano/krpano.swf'))
  358. .pipe(replace(new RegExp('href="*" title="MAQUETTE 3D"'), 'href="index.html" title="MAQUETTE 3D"'))
  359. .pipe(replace(new RegExp('href="*" title="ILLUSTRATIONS"'), 'href="illustration.html" title="ILLUSTRATIONS"'))
  360. .pipe(replace(new RegExp('href="*" title="QUARTIER"'), 'href="photoloc.html" title="QUARTIER"'))
  361. .pipe(gulp.dest('dist/'));
  362. });
  363.  
  364. gulp.task('remplace-param2', function () {
  365. return gulp.src(['dist/assets/js/*'])
  366. .pipe(replace("//{host}/media/programmes/' + nomProgramme + '/maquette", './assets/images/maquette'))
  367. .pipe(replace("'//' + document.location.host + url", 'url'))
  368. .pipe(gulp.dest('dist/assets/js/'));
  369. });
  370.  
  371.  
  372. gulp.task('download-skin-svg', function () {
  373. console.log("KRPano - téléchargement des SVG");
  374.  
  375. setting = JSON.parse(fs.readFileSync('settings_v3.json'));
  376. project_commercialisateur = setting['programme']['commercialisateur'];
  377.  
  378. return scrape({
  379. urls: [
  380. {
  381. url: 'https://iframe.evimmo.fr//media/commercialisateurs/' + project_commercialisateur + '/krpano/skin/arrow.svg',
  382. filename: 'arrow.svg'
  383. },
  384. {
  385. url: 'https://iframe.evimmo.fr//media/commercialisateurs/' + project_commercialisateur + '/krpano/skin/hotspot_photoloc_grand.svg',
  386. filename: 'hotspot_photoloc_grand.svg'
  387. },
  388. {
  389. url: 'https://iframe.evimmo.fr//media/commercialisateurs/' + project_commercialisateur + '/krpano/skin/hotspot_photoloc_grand_color_2.svg',
  390. filename: 'hotspot_photoloc_grand_color_2.svg'
  391. },
  392. {
  393. url: 'https://iframe.evimmo.fr//media/commercialisateurs/' + project_commercialisateur + '/krpano/skin/hotspot_photoloc_moyen.svg',
  394. filename: 'hotspot_photoloc_moyen.svg'
  395. },
  396. {
  397. url: 'https://iframe.evimmo.fr//media/commercialisateurs/' + project_commercialisateur + '/krpano/skin/hotspot_photoloc_moyen_2.svg',
  398. filename: 'hotspot_photoloc_moyen_2.svg'
  399. },
  400. {
  401. url: 'https://iframe.evimmo.fr//media/commercialisateurs/' + project_commercialisateur + '/krpano/skin/hotspot_photoloc_petit_2.svg',
  402. filename: 'hotspot_photoloc_petit_2.svg'
  403. },
  404. {
  405. url: 'https://iframe.evimmo.fr//media/commercialisateurs/' + project_commercialisateur + '/krpano/skin/hotspot_photoloc_petit.svg',
  406. filename: 'hotspot_photoloc_petit.svg'
  407. }
  408.  
  409. ],
  410. directory: 'dist/assets/krpano/skin',
  411. subdirectories: [
  412. {directory: '/', extensions: ['.svg']}
  413. ]
  414. }).then().catch(console.log);
  415. });
  416. gulp.task('download-skin-xml', function () {
  417. console.log("KRPano - téléchargement des XML");
  418.  
  419. setting = JSON.parse(fs.readFileSync('settings_v3.json'));
  420. project_commercialisateur = setting['programme']['commercialisateur'];
  421.  
  422. return scrape({
  423. urls: [
  424. {
  425. url: 'https://iframe.evimmo.fr//media/commercialisateurs/' + project_commercialisateur + '/krpano/skin/vtourskin.xml',
  426. filename: 'vtourskin.xml'
  427. }
  428. ],
  429. directory: 'dist/assets/krpano/skin/xml',
  430. subdirectories: [
  431. {directory: '/', extensions: ['.xml']}
  432. ]
  433. }).then((result) => {
  434. gulp.src(['dist/assets/krpano/skin/xml/*'])
  435. .pipe(gulp.dest('dist/assets/krpano/skin'));
  436. }).catch(console.log);
  437. });
  438. gulp.task('download-skin-png-1', function () {
  439. console.log("KRPano - téléchargement du vtourskin.png");
  440.  
  441. setting = JSON.parse(fs.readFileSync('settings_v3.json'));
  442. project_commercialisateur = setting['programme']['commercialisateur'];
  443.  
  444. return scrape({
  445. urls: [
  446. {
  447. url: 'https://iframe.evimmo.fr//media/commercialisateurs/' + project_commercialisateur + '/krpano/skin/vtourskin.png',
  448. filename: 'vtourskin.png'
  449. }
  450. ],
  451. directory: 'dist/assets/krpano/skin/vtourskin',
  452. subdirectories: [
  453. {directory: '/', extensions: ['.png']}
  454. ]
  455. }).then((result) => {
  456. gulp.src(['dist/assets/krpano/skin/vtourskin/*'])
  457. .pipe(gulp.dest('dist/assets/krpano/skin'));
  458. }).catch(console.log);
  459. });
  460. gulp.task('download-skin-png-2', function () {
  461. console.log("KRPano - téléchargement du vtourskin_thumbborder.png");
  462.  
  463. setting = JSON.parse(fs.readFileSync('settings_v3.json'));
  464. project_commercialisateur = setting['programme']['commercialisateur'];
  465.  
  466. return scrape({
  467. urls: [
  468. {
  469. url: 'https://iframe.evimmo.fr//media/commercialisateurs/' + project_commercialisateur + '/krpano/skin/vtourskin_thumbborder.png',
  470. filename: 'vtourskin_thumbborder.png'
  471. }
  472. ],
  473. directory: 'dist/assets/krpano/skin/vtourskin_thumbborder',
  474. subdirectories: [
  475. {directory: '/', extensions: ['.png']}
  476. ]
  477. }).then((result) => {
  478. gulp.src(['dist/assets/krpano/skin/vtourskin_thumbborder/*'])
  479. .pipe(gulp.dest('dist/assets/krpano/skin'));
  480. }).catch(console.log);
  481. });
  482.  
  483. gulp.task('remplace-param3', function () {
  484. return gulp.src(['dist/assets/krpano/skin/*'])
  485. .pipe(replace("/media/commercialisateurs/" + project_commercialisateur + "/krpano/skin/arrow.svg", '../../krpano/skin/fonts/arrow.svg'))
  486. .pipe(gulp.dest('dist/assets/krpano/skin'));
  487. });
  488.  
  489. gulp.task('download-json', function () {
  490. console.log("Telechargement des skins");
  491. return scrape({
  492. urls: [{
  493. url: 'http://' + project_commercialisateur + '.iframe.evimmo.fr/three/' + project_path + '/get-new-lots/format/json',
  494. filename: 'lots.json'
  495. }, {
  496. url: 'http://' + project_commercialisateur + '.iframe.evimmo.fr/three/' + project_path + '/get-new-medias/format/json',
  497. filename: 'definitions.json'
  498. }, {url: 'http://' + project_commercialisateur + '.iframe.evimmo.fr' + legends_path, filename: 'legends.xml'}],
  499. directory: 'dist/assets/xhr',
  500. urlFilter: function (url) {
  501. return url.indexOf('http://' + project_commercialisateur + '.iframe.evimmo.fr') === 0 || url.indexOf('http://player.evimmo.fr') === 0;
  502. }
  503. }).then().catch(console.log);
  504. });
  505.  
  506. gulp.task('upload-sftp', function () {
  507. return gulp.src('dist/**')
  508. .pipe(sftp({
  509. host: '78.109.89.167',
  510. user: 'evimmo',
  511. pass: 'dA9daJENGDU3',
  512. remotePath: '/home/evimmo/mnt/medias/evimmo.fr/programmes/' + project_name + '/test'
  513. }));
  514. });
  515.  
  516. //Tâche de préparation de l'auto exe
  517. gulp.task('nw-prepare', function () {
  518. gulp.src(destination + 'package.json')
  519. .pipe(rename('package.json.save'))
  520. .pipe(gulp.dest(destination));
  521. gulp.src(project_windows_icon)
  522. .pipe(gulp.dest('./dist/assets/icons'));
  523. gulp.src(nwBuildercomponents + 'package.json')
  524. .pipe(replace(new RegExp('("name": ?").*(",?)'), '$1' + project_name + '$2'))
  525. .pipe(replace(new RegExp('("version": ?").*(",?)'), '$1' + project_version + '$2'))
  526. .pipe(replace(new RegExp('("main": ?").*(",?)'), '$1' + project_main + '$2'))
  527. .pipe(replace(new RegExp('("description": ?").*(",?)'), '$1' + project_description + '$2'))
  528. .pipe(replace(new RegExp('("keywords": ?\\[ ?").*( ?" ?\\]?,?)'), '$1' + project_windows_keywords + '$2'))
  529. .pipe(replace(new RegExp('("title": ?").*(",?)'), '$1' + project_windows_title + '$2'))
  530. .pipe(replace(new RegExp('("icon": ?").*(",?)'), '$1' + project_windows_icon + '$2'))
  531. .pipe(gulp.dest(destination));
  532. del(['dist/assets/images/maquette/*/png-1080']).then(paths => {
  533. console.log('Deleted files and folders:\n', paths.join('\n'));
  534. });
  535. });
  536.  
  537. gulp.task('create-ico', function () {
  538. return gulp.src(project_windows_icon)
  539. .pipe(ico("logo.ico", {resize: true, sizes: [16, 24, 32, 64]}))
  540. .pipe(gulp.dest("./dist/assets/images/"));
  541. });
  542.  
  543. // Tâche auto exe
  544. gulp.task('nw-compile', function () {
  545.  
  546. var nw = new NwBuilder({
  547. version: '0.14.6',
  548. files: destination + "**/*",
  549. winIco: "./dist/assets/images/logo.ico",
  550. platforms: os,
  551. zip: false
  552. });
  553.  
  554. // Log stuff you want
  555. nw.on('log', function (msg) {
  556. gutil.log('nw-builder', msg);
  557. });
  558.  
  559. // Build returns a promise, return it so the task isn't called in parallel
  560. return nw.build().catch(function (err) {
  561. gutil.log('nw-builder', err);
  562. });
  563. });
  564.  
  565. //Tache de copie du ffmepgplugin après build
  566. gulp.task('nw-after', function () {
  567. if (os.indexOf("win64") > -1) {
  568. gulp.src(nwBuildercomponents + '/ffmpeg/win-x64/ffmpeg.dll')
  569. .pipe(gulp.dest(nwBuilderbuild + '/' + project_name + '/win64'));
  570. }
  571. if (os.indexOf("osx64") > -1) {
  572. gulp.src(nwBuildercomponents + '/ffmpeg/mac-x64/libffmpeg.dylib')
  573. .pipe(gulp.dest(nwBuilderbuild + '/' + project_name + '/osx64/' + project_name + '.app/Contents/Versions/50.0.2661.102/nwjs Framework.framework'));
  574. }
  575. });
  576. gulp.task('nw', gulpSequence('nw-prepare', 'create-ico', 'nw-compile', 'nw-after'));
  577. // Tasks
  578. gulp.task('default', 'offline-no-media');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement