Skip to content

Commit

Permalink
First release
Browse files Browse the repository at this point in the history
  • Loading branch information
benweet committed Nov 1, 2015
1 parent 0ab46e3 commit 82da6f2
Show file tree
Hide file tree
Showing 10 changed files with 289 additions and 27 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
node_modules
Thumbs.db
.DS_Store
out
dist
Binary file added assets/images/icon.icns
Binary file not shown.
Binary file added assets/images/icon.ico
Binary file not shown.
Binary file added assets/images/landing-bg.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
79 changes: 72 additions & 7 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,82 @@
var gulp = require('gulp');
var rimraf = require('rimraf');
var clgulp = require('clgulp');
var gulp = clgulp(require('gulp'));
var util = clgulp.util;
var electron = require('gulp-atom-electron');
var symdest = require('gulp-symdest');
var zip = require('gulp-vinyl-zip');
var extend = require('util')._extend;
var appdmg = require('appdmg');
var release = require('gulp-github-release');

var electronOptions = {
version: '0.28.2',
winIcon: 'node_modules/classets/images/icon_large.ico',
darwinIcon: 'node_modules/classets/images/icon_large.icns',
version: '0.34.2',
winIcon: 'assets/images/icon.ico',
darwinIcon: 'assets/images/icon.icns',
};

gulp.task('default', function() {
return gulp.src(['main.js', 'package.json', 'preload.js'])
var src = [
'package.json',
'src/*',
'node_modules/spellchecker/**/*',
];

gulp.task('clean', function(cb) {
rimraf('./dist', cb);
});

gulp.task('clean:osx', function(cb) {
rimraf('./dist/osx', cb);
});

gulp.task('build:osx', ['clean:osx'], function() {
return gulp.src(src, {
base: '.'
})
.pipe(electron(extend({
platform: 'darwin',
}, electronOptions)))
.pipe(electron.zfsdest('out/classeur-darwin.zip'));
.pipe(symdest('dist/osx'))
.pipe(zip.dest('dist/osx/classeur-osx.zip'));
});

gulp.task('pack:osx', ['build:osx'], function(cb) {
var ee = appdmg({
target: 'dist/osx/classeur-osx.dmg',
basepath: __dirname,
specification: {
title: 'Classeur',
background: 'assets/images/landing-bg.jpg',
icon: 'assets/images/icon.icns',
'icon-size': 80,
contents: [{
x: 450,
y: 242,
type: 'link',
path: '/Applications'
}, {
x: 190,
y: 242,
type: 'file',
path: 'dist/osx/Classeur.app'
}]
}
});
ee.on('progress', function(info) {
info.title && util.log(info.title);
});
ee.on('finish', cb);
ee.on('error', cb);
});

gulp.task('publish:osx', function() {
gulp.src([
'dist/osx/classeur-osx.zip',
'dist/osx/classeur-osx.dmg'
])
.pipe(release({
owner: 'classeur',
repo: 'clelectron',
manifest: require('./package.json')
}));
});
36 changes: 29 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,43 @@
{
"name": "Classeur",
"version": "0.1.0",
"description": "",
"main": "main.js",
"version": "1.0.0",
"main": "src/main.js",
"scripts": {
"start": "electron .",
"clean": "rm -rf ./dist",
"clean:osx": "rm -rf ./dist/osx",
"clean:win": "rm -rf ./dist/win",
"build": "npm run clean && npm run build:osx && npm run build:win",
"build:osx": "npm run clean:osx && electron-packager ./ Classeur --out=dist --overwrite --platform=darwin --arch=x64 --version=0.34.2 --icon=./assets/images/icon.icns",
"pack:osx": "npm run build:osx && electron-builder \"dist/Classeur-darwin-x64/Classeur.app\" --platform=osx --out=\"dist/osx\" --config=packager.json",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"author": "Benoit Schweblin",
"license": "ISC",
"devDependencies": {
"appdmg": "^0.3.5",
"classets": "github:classeur/classets#master",
"clgulp": "^1.0.4",
"electron-builder": "^2.0.2",
"electron-packager": "^5.1.1",
"electron-prebuilt": "^0.34.0",
"classets": "classeur/classets.git#master",
"gulp": "^3.9.0",
"gulp-atom-electron": "^0.12.0"
"gulp-atom-electron": "^1.0.0",
"gulp-github-release": "^1.0.3",
"gulp-symdest": "^1.0.0",
"gulp-vinyl-zip": "^1.1.1",
"rimraf": "^2.4.3"
},
"dependencies": {
"spellchecker": "^3.1.2"
}
},
"repository": {
"type": "git",
"url": "git+https://github.com/classeur/clelectron.git"
},
"bugs": {
"url": "https://github.com/classeur/clelectron/issues"
},
"homepage": "https://github.com/classeur/clelectron#readme",
"description": ""
}
88 changes: 76 additions & 12 deletions main.js → src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,27 @@ var dialog = require('dialog');
var Menu = require('menu');
var shell = require('shell');
var BrowserWindow = require('browser-window');
var os = require('os');
var autoUpdater = require('auto-updater');

app.on('window-all-closed', function() {
if (process.platform != 'darwin') {
app.quit();
}
});
var applySettings, settings, settingsFilePath = path.join(app.getPath('userData'), 'settings.json');
try {
settings = JSON.parse(fs.readFileSync(settingsFilePath));
} catch (e) {
settings = {
appUrl: 'https://app.classeur.io'
};
}

var appUri = 'http://localhost:11583';
if (process.platform === 'darwin') {
var platform = os.platform() + '_' + os.arch();
var version = app.getVersion();
autoUpdater.setFeedUrl('http://download.classeur.io/update/' + platform + '/' + version);
}

function checkUrl(url) {
url = typeof url === 'string' ? url : url.getUrl();
return url.slice(0, appUri.length) === appUri;
return url.slice(0, settings.appUrl.length) === settings.appUrl;
}

function checkOrigin(cb) {
Expand Down Expand Up @@ -84,6 +93,7 @@ ClasseurCtx.prototype.clean = function() {
};

var lastWindowOffset = 0;

function createWindow(cb) {
var browserWindow = new BrowserWindow({
width: 1050,
Expand All @@ -99,8 +109,8 @@ function createWindow(cb) {
browserWindow.webContents.classeurCtx = classeurCtx;

windows[browserWindow.id] = browserWindow;
browserWindow.loadUrl(appUri);
browserWindow.openDevTools();
browserWindow.loadUrl(settings.appUrl);
// browserWindow.openDevTools();
browserWindow.on('closed', function() {
classeurCtx.clean();
delete windows[browserWindow.id];
Expand All @@ -120,6 +130,25 @@ function createWindow(cb) {
return browserWindow;
}

var settingsWindow;

function openSettingsWindow() {
if (settingsWindow) {
settingsWindow.show();
return;
}
settingsWindow = new BrowserWindow({
width: 320,
height: 160,
resizable: false,
title: 'Settings',
});
settingsWindow.on('closed', function() {
settingsWindow = undefined;
});
settingsWindow.loadUrl('file://' + __dirname + '/settings.html');
}

function openFile(browserWindow, path) {
browserWindow.webContents.classeurCtx.watchFile(path);
browserWindow.focus();
Expand Down Expand Up @@ -159,10 +188,10 @@ function newFileDialog() {
var isReady, openWhenReady;
app.on('open-file', function(evt, path) {
evt.preventDefault();
if(isReady) {
if (isReady) {
return createWindow(function(browserWindow) {
openFile(browserWindow, path);
});
openFile(browserWindow, path);
});
}
openWhenReady = path;
});
Expand All @@ -171,6 +200,15 @@ app.on('activate-with-no-open-windows', function() {
createWindow();
});

app.on('window-all-closed', function() {
if (applySettings) {
applySettings = false;
createWindow();
} else if (process.platform != 'darwin') {
app.quit();
}
});

var ipc = require('ipc');
ipc.on('getVersion', checkOrigin(function(evt) {
var classeurCtx = evt.sender.classeurCtx;
Expand All @@ -196,17 +234,43 @@ ipc.on('saveFile', checkOrigin(function(evt, file) {
}
}));

ipc.on('getSettings', function(evt) {
evt.sender.send('settings', settings);
});

ipc.on('setSettings', function(evt, data) {
settings = data;
fs.writeFileSync(settingsFilePath, JSON.stringify(data));
settingsWindow && settingsWindow.destroy();
applySettings = true;
Object.keys(windows).forEach(function(id) {
windows[id].destroy();
});
});

function onReady() {
var template = [{
label: 'Classeur',
submenu: [{
label: 'New window',
click: function() {
createWindow();
}
}, {
type: 'separator'
}, {
label: 'New local file',
click: newFileDialog
}, {
label: 'Open local file',
click: openFileDialog
}, {
type: 'separator'
}, {
label: 'Settings',
click: openSettingsWindow
}, {
type: 'separator'
}, {
label: 'Hide Classeur',
accelerator: 'Command+H',
Expand Down
File renamed without changes.
Loading

0 comments on commit 82da6f2

Please sign in to comment.