Passage à Electron
This commit is contained in:
parent
f7be43c558
commit
0c5e2443fe
118
Gruntfile.js
118
Gruntfile.js
@ -1,118 +0,0 @@
|
|||||||
/* jshint node: true */
|
|
||||||
var _ = require('lodash');
|
|
||||||
var path = require('path');
|
|
||||||
|
|
||||||
module.exports = function(grunt) {
|
|
||||||
|
|
||||||
var NW_VERSION = '0.12.3';
|
|
||||||
var BUILD_DIR = 'build';
|
|
||||||
var BUILD_TARGETS = {
|
|
||||||
linux_ia32: true,
|
|
||||||
linux_x64: true,
|
|
||||||
win: false,
|
|
||||||
osx: false
|
|
||||||
};
|
|
||||||
var PKG = grunt.file.readJSON('package.json');
|
|
||||||
var PKG_OVERWRITE = {
|
|
||||||
window: {
|
|
||||||
toolbar: false,
|
|
||||||
kiosk: true
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Create build tasks options
|
|
||||||
var buildOptions = _.merge({
|
|
||||||
runtimeVersion: NW_VERSION
|
|
||||||
}, BUILD_TARGETS);
|
|
||||||
|
|
||||||
// Define copy:build tasks files
|
|
||||||
var appFiles = [];
|
|
||||||
|
|
||||||
_.forEach(BUILD_TARGETS, function(isEnabled, target) {
|
|
||||||
|
|
||||||
if(!isEnabled) return;
|
|
||||||
|
|
||||||
var arch = 'ia32';
|
|
||||||
var platform = target;
|
|
||||||
if(platform.indexOf('linux') !== -1) {
|
|
||||||
arch = platform.split('_')[1];
|
|
||||||
platform = 'linux';
|
|
||||||
}
|
|
||||||
var dirName = PKG.name + '-' + PKG.version + '-' + platform + '-' + arch;
|
|
||||||
var destPath = path.join(BUILD_DIR, dirName + '/');
|
|
||||||
|
|
||||||
// Retreive NPM dependencies
|
|
||||||
var npmDeps = _.keys(PKG.dependencies).map(function(moduleName) {
|
|
||||||
return path.join('node_modules', moduleName, '**');
|
|
||||||
});
|
|
||||||
appFiles.push({ src: npmDeps, dest: destPath });
|
|
||||||
|
|
||||||
// Add main files, licence, & config
|
|
||||||
appFiles.push({
|
|
||||||
src: [
|
|
||||||
'index.html',
|
|
||||||
'package.json',
|
|
||||||
'default-profile.json',
|
|
||||||
'LICENCE',
|
|
||||||
'css/**',
|
|
||||||
'js/**',
|
|
||||||
'img/**'
|
|
||||||
],
|
|
||||||
dest: destPath
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Configure tasks
|
|
||||||
grunt.initConfig({
|
|
||||||
|
|
||||||
pkg: PKG,
|
|
||||||
|
|
||||||
download: {
|
|
||||||
options: {
|
|
||||||
runtimeVersion: NW_VERSION
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
run: {
|
|
||||||
options: {
|
|
||||||
nwArgs: ['.'].concat(process.argv.slice(3)),
|
|
||||||
runtimeVersion: NW_VERSION
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
build: {
|
|
||||||
options: buildOptions
|
|
||||||
},
|
|
||||||
|
|
||||||
clean: {
|
|
||||||
build: [BUILD_DIR]
|
|
||||||
},
|
|
||||||
|
|
||||||
copy: {
|
|
||||||
build: {
|
|
||||||
files: appFiles,
|
|
||||||
options: {
|
|
||||||
noProcess: ['**','!package.json'],
|
|
||||||
process: function() {
|
|
||||||
var pkg = _.merge(PKG, PKG_OVERWRITE);
|
|
||||||
return JSON.stringify(pkg, null, 2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
grunt.registerTask('pitaya:run', ['download', 'run']);
|
|
||||||
grunt.registerTask(
|
|
||||||
'pitaya:build',
|
|
||||||
['download', 'build', 'copy:build']
|
|
||||||
);
|
|
||||||
grunt.registerTask('default', ['pitaya:run']);
|
|
||||||
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-copy');
|
|
||||||
grunt.loadNpmTasks('grunt-nw');
|
|
||||||
|
|
||||||
};
|
|
@ -5,8 +5,9 @@ var AnimateMixin = require('../mixins/animate');
|
|||||||
var actions = require('../../store/actions');
|
var actions = require('../../store/actions');
|
||||||
var connect = require('react-redux').connect;
|
var connect = require('react-redux').connect;
|
||||||
var debug = require('../../util/debug')('launcher-view');
|
var debug = require('../../util/debug')('launcher-view');
|
||||||
|
var path = require('path');
|
||||||
|
|
||||||
var DEFAULT_PROFILE = './default-profile.json';
|
var DEFAULT_PROFILE = path.join(__dirname, '..', '..', '..', 'default-profile.json');
|
||||||
|
|
||||||
var LauncherView = React.createClass({
|
var LauncherView = React.createClass({
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
var minimist = require('minimist');
|
var minimist = require('minimist');
|
||||||
var gui = global.window.require('nw.gui');
|
|
||||||
|
|
||||||
var opts = minimist(gui.App.argv);
|
var opts = minimist(process.argv);
|
||||||
|
|
||||||
module.exports = function(state, action) {
|
module.exports = function(state, action) {
|
||||||
return opts;
|
return opts;
|
||||||
|
@ -249,7 +249,9 @@ exports.findPixmapsIcon = function(iconName) {
|
|||||||
exports.findIconThemes = function() {
|
exports.findIconThemes = function() {
|
||||||
return System.findFiles('*/', {cwd: ICON_THEMES_ROOTDIR, realpath: true})
|
return System.findFiles('*/', {cwd: ICON_THEMES_ROOTDIR, realpath: true})
|
||||||
.then(function(files) {
|
.then(function(files) {
|
||||||
return files.map(path.basename.bind(path));
|
return files.map(function(f) {
|
||||||
|
return path.basename(f);
|
||||||
|
});
|
||||||
})
|
})
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
35
main.js
Normal file
35
main.js
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
var app = require('app'); // Module to control application life.
|
||||||
|
var BrowserWindow = require('browser-window'); // Module to create native browser window.
|
||||||
|
|
||||||
|
var mainWindow = null;
|
||||||
|
|
||||||
|
// Quit when all windows are closed.
|
||||||
|
app.on('window-all-closed', function() {
|
||||||
|
app.quit();
|
||||||
|
});
|
||||||
|
|
||||||
|
app.on('ready', function() {
|
||||||
|
// Create the browser window.
|
||||||
|
var electronScreen = require('screen');
|
||||||
|
var size = electronScreen.getPrimaryDisplay().workAreaSize;
|
||||||
|
|
||||||
|
mainWindow = new BrowserWindow({
|
||||||
|
type: 'desktop',
|
||||||
|
'skip-taskbar': true,
|
||||||
|
frame: false,
|
||||||
|
width: size.width,
|
||||||
|
height: size.height
|
||||||
|
});
|
||||||
|
|
||||||
|
if(process.env.NODE_ENV === 'development') {
|
||||||
|
mainWindow.openDevTools();
|
||||||
|
}
|
||||||
|
|
||||||
|
// and load the index.html of the app.
|
||||||
|
mainWindow.loadUrl('file://' + __dirname + '/index.html');
|
||||||
|
|
||||||
|
mainWindow.on('closed', function() {
|
||||||
|
mainWindow = null;
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
19
package.json
19
package.json
@ -2,25 +2,16 @@
|
|||||||
"name": "pitaya",
|
"name": "pitaya",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"private": "true",
|
"private": "true",
|
||||||
"main": "index.html",
|
"main": "main.js",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"grunt": "^0.4.5",
|
"electron-packager": "^5.1.0",
|
||||||
"grunt-cli": "^0.1.13",
|
"electron-prebuilt": "^0.33.6",
|
||||||
"grunt-contrib-clean": "^0.6.0",
|
|
||||||
"grunt-contrib-copy": "^0.7.0",
|
|
||||||
"grunt-nw": "git+https://github.com/snap-project/grunt-nw#develop",
|
|
||||||
"lodash": "^3.0.1",
|
|
||||||
"nodeunit": "^0.9.1"
|
"nodeunit": "^0.9.1"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "./node_modules/.bin/nodeunit test",
|
"test": "./node_modules/.bin/nodeunit test",
|
||||||
"start": "./node_modules/.bin/grunt pitaya:run",
|
"start": "./node_modules/.bin/electron .",
|
||||||
"build": "./node_modules/.bin/grunt pitaya:build"
|
"build": "./node_modules/.bin/electron-packager ./ pitaya --platform=linux --arch=ia32,x64 --version=0.33.6 --out=build --overwrite"
|
||||||
},
|
|
||||||
"chromium-args": "--ignore-certificate-errors",
|
|
||||||
"window": {
|
|
||||||
"toolbar": true,
|
|
||||||
"kiosk": false
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bootstrap": "^3.3.5",
|
"bootstrap": "^3.3.5",
|
||||||
|
Loading…
Reference in New Issue
Block a user