This commit is contained in:
Jeffrey Morgan 2015-03-11 18:43:19 -04:00
Родитель 09bebcd7dd
Коммит e92678508b
4 изменённых файлов: 58 добавлений и 7 удалений

Просмотреть файл

@ -16,6 +16,7 @@ var _progress = {};
var _muted = {};
var _blocked = {};
var _error = null;
var _pendingCreates = [];
var ContainerStore = assign(Object.create(EventEmitter.prototype), {
CLIENT_CONTAINER_EVENT: 'client_container_event',
@ -238,7 +239,6 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), {
}
},
init: function (callback) {
// TODO: Load cached data from db on loading
this.fetchAllContainers(err => {
if (err) {
_error = err;
@ -249,6 +249,9 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), {
} else {
callback();
}
_pendingCreates.forEach(e => {
this.create(e.repository, e.tag, () => {});
});
var placeholderData = JSON.parse(localStorage.getItem('store.placeholders'));
if (placeholderData) {
_placeholders = _.omit(placeholderData, _.keys(_containers));
@ -305,6 +308,15 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), {
});
},
create: function (repository, tag, callback) {
if (!docker.host()) {
console.log('buffering ' + repository);
_pendingCreates.push({
repository: repository,
tag: tag
});
return;
}
tag = tag || 'latest';
var imageName = repository + ':' + tag;
var containerName = this._generateName(repository);

Просмотреть файл

@ -27,6 +27,19 @@ setInterval(function () {
router.run(Handler => React.render(<Handler/>, document.body));
ipc.on('application:quitting', opts => {
if (!opts.updating && localStorage.getItem('settings.closeVMOnQuit') === 'true') {
machine.stop();
}
});
ipc.on('application:open-url', opts => {
console.log('Creating container');
var url = opts.url.substr(19);
console.log(url);
ContainerStore.create(url, 'latest', () => {});
});
SetupStore.setup().then(() => {
Menu.setApplicationMenu(Menu.buildFromTemplate(template()));
ContainerStore.on(ContainerStore.SERVER_ERROR_EVENT, (err) => {
@ -43,9 +56,3 @@ SetupStore.setup().then(() => {
console.log(err);
bugsnag.notify(err);
});
ipc.on('application:quitting', opts => {
if (!opts.updating && localStorage.getItem('settings.closeVMOnQuit') === 'true') {
machine.stop();
}
});

Просмотреть файл

@ -10,6 +10,8 @@ process.env.RESOURCES_PATH = path.join(__dirname, '/../resources');
process.chdir(path.join(__dirname, '..'));
process.env.PATH = '/usr/local/bin:' + process.env.PATH;
console.log(process.argv);
var size = {}, settingsjson = {};
try {
size = JSON.parse(fs.readFileSync(path.join(process.env[(process.platform === 'win32') ? 'USERPROFILE' : 'HOME'], 'Library', 'Application\ Support', 'Kitematic', 'size')));
@ -18,6 +20,13 @@ try {
settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8'));
} catch (err) {}
var openURL = null;
app.on('open-url', function (event, url) {
event.preventDefault();
openURL = url;
});
app.on('ready', function () {
var mainWindow = new BrowserWindow({
width: size.width || 1000,
@ -65,6 +74,18 @@ app.on('ready', function () {
mainWindow.show();
mainWindow.focus();
if (openURL) {
mainWindow.webContents.send('application:open-url', {
url: openURL
});
}
app.on('open-url', function (event, url) {
event.preventDefault();
mainWindow.webContents.send('application:open-url', {
url: url
});
});
if (process.env.NODE_ENV !== 'development') {
autoUpdater.setFeedUrl('https://updates.kitematic.com/releases/latest?version=' + app.getVersion() + '&beta=' + !!settingsjson.beta);
}

Просмотреть файл

@ -26,5 +26,16 @@
<string>AtomApplication</string>
<key>NSSupportsAutomaticGraphicsSwitching</key>
<true/>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>kitematic</string>
</array>
<key>CFBundleURLName</key>
<string>Kitematic Session Protocol</string>
</dict>
</array>
</dict>
</plist>