Merge branch 'master' into machine

Conflicts:
util/deps
This commit is contained in:
Jeffrey Morgan 2015-02-26 16:18:26 -05:00
parent cd87a8f426
commit 25302cc1a9
37 changed files with 62 additions and 53 deletions

View File

@ -30,9 +30,6 @@ the preferred channel for [Bug Reports](#bug-reports), [Features Requests](#feat
and [Submitting Pull Requests](#submitting-pull-requests), but please respect the following
restrictions:
* Please don't use the issue tracker for personal support requests. Our
[HipChat room](https://www.hipchat.com/giAT9Fqb5) is a better place to get help.
## Bug Reports
A bug is a _demonstrable problem_ that is caused by the code in the repository.

1
boot2docker- Executable file
View File

@ -0,0 +1 @@
{"error":"Not Found"}

View File

@ -18,14 +18,6 @@ process.env.RESOURCES_PATH = __dirname + '/../resources';
process.chdir(path.join(__dirname, '..'));
process.env.PATH = '/usr/local/bin:' + process.env.PATH;
if (argv.integration) {
process.env.TEST_TYPE = 'integration';
} else {
process.env.TEST_TYPE = 'test';
}
app.commandLine.appendSwitch('js-flags', '--harmony');
var mainWindow = null;
var windowOptions = {
width: 1000,
@ -53,7 +45,7 @@ app.on('ready', function() {
mainWindow.loadUrl(path.normalize('file://' + path.join(__dirname, '..', 'build/index.html')));
app.on('will-quit', function () {
if (saveVMOnQuit) {
exec('VBoxManage controlvm boot2docker-vm savestate', function () {});
exec('/usr/bin/VBoxManage controlvm boot2docker-vm savestate', function () {});
}
});
}
@ -64,17 +56,14 @@ app.on('ready', function() {
mainWindow.webContents.on('will-navigate', function (e, url) {
if (url.indexOf('build/index.html#/containers') < 0) {
console.log(url);
e.preventDefault();
}
});
mainWindow.webContents.on('did-finish-load', function() {
if (!argv.test) {
mainWindow.show();
}
mainWindow.focus();
mainWindow.setTitle('');
mainWindow.show();
mainWindow.focus();
// Auto Updates
if (process.env.NODE_ENV !== 'development' && !argv.test) {

View File

@ -1,3 +1,5 @@
var babel = require('gulp-babel');
var changed = require('gulp-changed');
var concat = require('gulp-concat');
var cssmin = require('gulp-cssmin');
var downloadatomshell = require('gulp-download-atom-shell');
@ -7,21 +9,19 @@ var gulpif = require('gulp-if');
var gutil = require('gulp-util');
var less = require('gulp-less');
var livereload = require('gulp-livereload');
var packagejson = require('./package.json');
var plumber = require('gulp-plumber');
var react = require('gulp-react');
var babel = require('gulp-babel');
var runSequence = require('run-sequence');
var shell = require('gulp-shell');
var sourcemaps = require('gulp-sourcemaps');
var packagejson = require('./package.json');
var changed = require('gulp-changed');
var dependencies = Object.keys(packagejson.dependencies);
var isBeta = process.argv.indexOf('--beta') !== -1;
var settings;
try {
settings = JSON.parse(fs.readFileSync('settings.json'), 'utf8');
settings = require('./settings.json');
} catch (err) {
settings = {};
}
@ -32,7 +32,7 @@ var options = {
beta: isBeta,
filename: isBeta ? 'Kitematic (Beta).app' : 'Kitematic.app',
name: isBeta ? 'Kitematic (Beta)' : 'Kitematic',
icon: isBeta ? 'kitematic-beta.icns' : 'kitematic.icns'
icon: isBeta ? './util/kitematic-beta.icns' : './util/kitematic.icns'
};
gulp.task('js', function () {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1023 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1018 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
images/button-view.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
images/button-view@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 473 B

After

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 953 B

After

Width:  |  Height:  |  Size: 966 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 706 B

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -3,7 +3,6 @@
<head>
<link rel="stylesheet" href="main.css"/>
<meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' http://localhost:35729; style-src 'self' 'unsafe-inline';">
<title>Kitematic</title>
</head>
<body>

View File

@ -15,7 +15,7 @@
"test": "jest",
"release": "gulp release",
"release:beta": "gulp release --beta",
"preinstall": "./deps",
"preinstall": "./util/deps",
"lint": "jsxhint src && jsxhint browser"
},
"licenses": [
@ -25,8 +25,8 @@
}
],
"jest": {
"scriptPreprocessor": "<rootDir>/preprocessor.js",
"setupEnvScriptFile": "<rootDir>/testenv.js",
"scriptPreprocessor": "<rootDir>/util/preprocessor.js",
"setupEnvScriptFile": "<rootDir>/util/testenv.js",
"unmockedModulePathPatterns": [
"tty",
"net",

View File

@ -9,6 +9,7 @@ var ContainerUtil = require('./ContainerUtil');
var boot2docker = require('./Boot2Docker');
var RetinaImage = require('react-retina-image');
var Router = require('react-router');
var webPorts = require('./Util').webPorts;
var ContainerDetailsSubheader = React.createClass({
mixins: [Router.State, Router.Navigation],
@ -32,7 +33,6 @@ var ContainerDetailsSubheader = React.createClass({
return;
}
var ports = ContainerUtil.ports(container);
var webPorts = ['80', '8000', '8080', '3000', '5000', '2368'];
this.setState({
ports: ports,
defaultPort: _.find(_.keys(ports), function (port) {
@ -113,12 +113,12 @@ var ContainerDetailsSubheader = React.createClass({
});
}
},
handleItemMouseEnterRun: function () {
var $action = $(this.getDOMNode()).find('.action .run');
handleItemMouseEnterView: function () {
var $action = $(this.getDOMNode()).find('.action .view');
$action.css("visibility", "visible");
},
handleItemMouseLeaveRun: function () {
var $action = $(this.getDOMNode()).find('.action .run');
handleItemMouseLeaveView: function () {
var $action = $(this.getDOMNode()).find('.action .view');
$action.css("visibility", "hidden");
},
handleItemMouseEnterRestart: function () {
@ -168,9 +168,9 @@ var ContainerDetailsSubheader = React.createClass({
return (
<div className="details-subheader">
<div className="details-header-actions">
<div className={runActionClass} onMouseEnter={this.handleItemMouseEnterRun} onMouseLeave={this.handleItemMouseLeaveRun}>
<span className="action-icon" onClick={this.handleRun}><RetinaImage src="button-run.png"/></span>
<span className="btn-label run">Run</span>
<div className={runActionClass} onMouseEnter={this.handleItemMouseEnterView} onMouseLeave={this.handleItemMouseLeaveView}>
<span className="action-icon" onClick={this.handleRun}><RetinaImage src="button-view.png"/></span>
<span className="btn-label view">View</span>
</div>
<div className={restartActionClass} onMouseEnter={this.handleItemMouseEnterRestart} onMouseLeave={this.handleItemMouseLeaveRestart}>
<span className="action-icon" onClick={this.handleRestart}><RetinaImage src="button-restart.png"/></span>

View File

@ -8,6 +8,7 @@ var ContainerHomePreview = require('./ContainerHomePreview.react');
var ContainerHomeLogs = require('./ContainerHomeLogs.react');
var ContainerHomeFolders = require('./ContainerHomeFolders.react');
var ContainerUtil = require('./ContainerUtil');
var webPorts = require('./Util').webPorts;
var resizeWindow = function () {
$('.left .wrapper').height(window.innerHeight - 240);
@ -48,7 +49,6 @@ var ContainerHome = React.createClass({
return;
}
var ports = ContainerUtil.ports(container);
var webPorts = ['80', '8000', '8080', '3000', '5000', '2368'];
this.setState({
ports: ports,
defaultPort: _.find(_.keys(ports), function (port) {

View File

@ -6,6 +6,7 @@ var ContainerUtil = require('./ContainerUtil');
var Router = require('react-router');
var request = require('request');
var metrics = require('./Metrics');
var webPorts = require('./Util').webPorts;
var ContainerHomePreview = React.createClass({
mixins: [Router.State, Router.Navigation],
@ -48,7 +49,6 @@ var ContainerHomePreview = React.createClass({
return;
}
var ports = ContainerUtil.ports(container);
var webPorts = ['80', '8000', '8080', '3000', '5000', '2368'];
this.setState({
ports: ports,
defaultPort: _.find(_.keys(ports), function (port) {

View File

@ -5,6 +5,7 @@ var exec = require('exec');
var ContainerStore = require('./ContainerStore');
var ContainerUtil = require('./ContainerUtil');
var metrics = require('./Metrics');
var webPorts = require('./Util').webPorts;
var ContainerSettingsPorts = React.createClass({
mixins: [Router.State, Router.Navigation],
@ -26,7 +27,6 @@ var ContainerSettingsPorts = React.createClass({
return;
}
var ports = ContainerUtil.ports(container);
var webPorts = ['80', '8000', '8080', '3000', '5000', '2368'];
this.setState({
ports: ports,
defaultPort: _.find(_.keys(ports), function (port) {

View File

@ -1,5 +1,15 @@
require.main.paths.splice(0, 0, process.env.NODE_PATH);
var remote = require('remote');
if (localStorage.getItem('settings.width') && localStorage.getItem('settings.height')) {
remote.getCurrentWindow().setSize(parseInt(localStorage.getItem('settings.width')), parseInt(localStorage.getItem('settings.height')));
remote.getCurrentWindow().center();
}
window.addEventListener('resize', function () {
localStorage.setItem('settings.width', window.innerWidth);
localStorage.setItem('settings.height', window.innerHeight);
});
require.main.paths.splice(0, 0, process.env.NODE_PATH);
var app = remote.require('app');
var React = require('react');
var fs = require('fs');
@ -10,13 +20,13 @@ var boot2docker = require('./boot2docker');
var ContainerStore = require('./ContainerStore');
var SetupStore = require('./SetupStore');
var metrics = require('./Metrics');
var settingsjson;
var MenuTemplate = require('./MenuTemplate');
var Menu = remote.require('menu');
var menu = Menu.buildFromTemplate(MenuTemplate);
Menu.setApplicationMenu(menu);
var settingsjson;
try {
settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8'));
} catch (err) {
@ -73,7 +83,6 @@ setInterval(function () {
router.run(Handler => React.render(<Handler/>, document.body));
SetupStore.run().then(boot2docker.ip).then(ip => {
console.log(ip);
docker.setHost(ip);
ContainerStore.init(function (err) {
if (err) { console.log(err); }

View File

@ -2,7 +2,6 @@ var remote = require('remote');
var app = remote.require('app');
var path = require('path');
var docker = require('./Docker');
var BrowserWindow = remote.require('browser-window');
var router = require('./Router');
var util = require('./Util');
var metrics = require('./Metrics');
@ -124,7 +123,7 @@ var MenuTemplate = [
{
label: 'Toggle DevTools',
accelerator: 'Alt+Command+I',
click: function() { BrowserWindow.getFocusedWindow().toggleDevTools(); }
click: function() { remote.getCurrentWindow().toggleDevTools(); }
},
]
},
@ -139,7 +138,9 @@ var MenuTemplate = [
{
label: 'Close',
accelerator: 'Command+W',
selector: 'performClose:'
click: function () {
remote.getCurrentWindow().hide();
}
},
{
type: 'separator'

View File

@ -40,5 +40,6 @@ module.exports = {
},
escapePath: function (str) {
return str.replace(/ /g, '\\ ').replace(/\(/g, '\\(').replace(/\)/g, '\\)');
}
},
webPorts: ['80', '8000', '8080', '3000', '5000', '2368', '9200', '8983']
};

View File

@ -21,6 +21,7 @@ html, body {
height: 100%;
width: 100%;
overflow: hidden;
background: none;
-webkit-user-select: none;
font-family: @font-regular;
cursor: default;

View File

@ -24,28 +24,32 @@
margin-top: -12px;
.action {
display: inline-block;
position: relative;
top: 10px;
&.disabled {
opacity: 0.3;
}
.action-icon {
color: @gray-normal;
font-size: 30px;
margin-right: 20px;
margin-right: 15px;
}
.btn-label {
position: relative;
top: 0px;
display: block;
position: absolute;
color: @brand-action;
font-size: 10px;
&.run {
left: 8px;
width: 200px;
top: 30px;
&.view {
left: 6px;
//left: 0px;
}
&.restart {
left: 1px;
left: 2px;
//left: -18px;
}
&.terminal {
left: -2px;
left: -1px;
//left: -30px;
}
visibility: hidden;
}

View File

@ -1,7 +1,14 @@
#!/bin/bash
<<<<<<< HEAD:deps
BASE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
DOCKER_MACHINE_CLI_VERSION=$(node -pe "JSON.parse(process.argv[1])['docker-machine-version']" "$(cat $BASE/package.json)")
DOCKER_MACHINE_CLI_FILE=docker-machine-$DOCKER_MACHINE_CLI_VERSION
=======
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
BASE=$DIR/..
BOOT2DOCKER_CLI_VERSION=$(node -pe "JSON.parse(process.argv[1])['boot2docker-version']" "$(cat $BASE/package.json)")
BOOT2DOCKER_CLI_FILE=boot2docker-$BOOT2DOCKER_CLI_VERSION
>>>>>>> master:util/deps
DOCKER_CLI_VERSION=$(node -pe "JSON.parse(process.argv[1])['docker-version']" "$(cat $BASE/package.json)")
DOCKER_CLI_FILE=docker-$DOCKER_CLI_VERSION