diff --git a/.gitignore b/.gitignore index 0d9550db..bb20f469 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ -/build -/node_modules -/electron_build +build/ +node_modules/ +electron_build/ .env dist/ +vendor/ diff --git a/Gulpfile.js b/Gulpfile.js index 198623f9..94f37f59 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -1,118 +1,26 @@ -require('dotenv').load() -var env = process.env - var gulp = require('gulp') var styl = require('gulp-stylus') var autoprefixer = require('gulp-autoprefixer') -var templateCache = require('gulp-angular-templatecache') -var globby = require('globby') -var template = require('gulp-template') var del = require('del') var runSequence = require('run-sequence') var plumber = require('gulp-plumber') var notify = require('gulp-notify') -var changed = require('gulp-changed') +var rename = require('gulp-rename') var livereload = require('gulp-livereload') +var inject = require('gulp-inject') // for Dist var rev = require('gulp-rev') var ngAnnotate = require('gulp-ng-annotate') +var templateCache = require('gulp-angular-templatecache') var uglify = require('gulp-uglify') var minifyCss = require('gulp-minify-css') var merge = require('merge-stream') var concat = require('gulp-concat') -var streamqueue = require('streamqueue') var minifyHtml = require('gulp-minify-html') var config = require('./build.config.js') -gulp.task('js', function () { - return streamqueue({objectMode: true}, - gulp.src('tpls/env.js') - .pipe(template({ - apiUrl: env.BUILD_API_URL - })), - gulp.src(['src/**/*.js']) - ) - .pipe(changed('build')) - .pipe(gulp.dest('build')) -}) - -gulp.task('dist', function () { - var js = streamqueue({objectMode: true}, - gulp.src(['src/**/*.js']), - gulp.src('tpls/env.js') - .pipe(template({ - apiUrl: env.DIST_API_URL - })), - gulp.src('src/**/*.tpl.html') - .pipe(templateCache()) - ) - .pipe(ngAnnotate()) - .pipe(uglify()) - .pipe(concat('app.js')) - .pipe(gulp.dest('dist')) - - var css = gulp.src('src/styles/main.styl') - .pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')})) - .pipe(styl()) - .pipe(autoprefixer()) - .pipe(minifyCss()) - .pipe(gulp.dest('dist')) - - var index = gulp.src('src/index.html') - .pipe(template({ - scripts: ['app.js'], - styles: ['main.css'], - env: 'dist' - })) - .pipe(minifyHtml()) - .pipe(gulp.dest('dist')) - - return merge(js, css, index) -}) - -gulp.task('styl', function () { - return gulp.src('src/styles/main.styl') - .pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')})) - .pipe(styl()) - .pipe(autoprefixer()) - .pipe(gulp.dest('build')) - .pipe(notify('Stylus!!')) - .pipe(livereload()) -}) - -gulp.task('tpls', function () { - return gulp.src('src/**/*.tpl.html') - .pipe(templateCache()) - .pipe(notify('Tpls Done!! :)')) - .pipe(gulp.dest('build')) -}) - -gulp.task('index', function () { - var files = globby.sync(['build/**/*', '!build/vendor/**/*']) - - var filter = function (files, ext) { - return files.filter(function (file) { - var reg = new RegExp('.+\.' + ext + '$') - return file.match(reg) - }).map(function (file) { - return file.replace('build/', '') - }) - } - var scripts = filter(files, 'js') - var styles = filter(files, 'css') - - return gulp.src('src/index.html') - .pipe(template({ - scripts: scripts, - styles: styles, - env: 'build' - })) - .pipe(gulp.dest('build')) - .pipe(livereload()) -}) - gulp.task('vendor', function () { var vendors = config.vendors @@ -125,29 +33,53 @@ gulp.task('vendor', function () { vendorFiles.push('node_modules/font-awesome/**/FontAwesome.*') return gulp.src(vendorFiles) - .pipe(gulp.dest('build/vendor')) + .pipe(gulp.dest('src/browser/vendor')) }) -gulp.task('resources', function () { - return gulp.src('resources/**/*') - .pipe(changed('build/resources')) - .pipe(gulp.dest('build/resources')) +gulp.task('styl', function () { + return gulp.src('src/**/app.styl') + .pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')})) + .pipe(styl()) + .pipe(autoprefixer()) + .pipe(gulp.dest('src')) + .pipe(notify('Stylus!!')) + .pipe(livereload()) }) -gulp.task('build', function (cb) { - runSequence(['js', 'styl', 'tpls', 'vendor', 'resources'], 'index', cb) +gulp.task('bs', function () { + return gulp.src('src/**/bootstrap.styl') + .pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')})) + .pipe(styl()) + .pipe(autoprefixer()) + .pipe(gulp.dest('src')) + .pipe(notify('Bootstrap compiled!!')) + .pipe(livereload()) }) -gulp.task('watch', function (cb) { - gulp.watch(['.env', 'tpls/env.js', 'src/**/*.js'], ['js']) +gulp.task('inject', function (cb) { + runSequence('inject-main', 'inject-popup', cb) +}) - gulp.watch('src/styles/**/*.styl', ['styl']) +gulp.task('inject-main', function () { + return gulp.src('src/browser/main/index.inject.html') + .pipe(inject(gulp.src(['src/browser/main/**/*.js', 'src/browser/main/**/*.css', 'src/browser/shared/**/*.js', 'src/browser/shared/**/*.css'], {read: false}), { + relative: true + })) + .pipe(rename(function (path) { + path.basename = 'index' + })) + .pipe(gulp.dest('src/browser/main/')) +}) - gulp.watch('src/**/*.tpl.html', ['tpls']) - - gulp.watch(['build/**/*.js', 'src/index.html'], ['index']) - - livereload.listen() +gulp.task('inject-popup', function () { + return gulp.src('src/browser/popup/index.inject.html') + .pipe(inject(gulp.src(['src/browser/popup/**/*.js', 'src/browser/popup/**/*.css', 'src/browser/shared/**/*.js', 'src/browser/shared/**/*.css'], {read: false}), { + relative: true + })) + .pipe(rename(function (path) { + path.basename = 'index' + })) + .pipe(gulp.dest('src/browser/popup/')) }) gulp.task('del', function (cb) { @@ -157,5 +89,3 @@ gulp.task('del', function (cb) { gulp.task('default', function (cb) { runSequence('del', 'build', 'watch', cb) }) - -require('./gulp-electron')(gulp) diff --git a/electron_src/styles/main.styl b/electron_src/styles/main.styl deleted file mode 100644 index bf62d376..00000000 --- a/electron_src/styles/main.styl +++ /dev/null @@ -1,13 +0,0 @@ -@import '../../src/styles/_vars' -@import '../../src/styles/mixins/*' - -@import '../../src/styles/_bootstrap' - -@import '../../src/styles/_index' -@import '../../src/styles/_shared' - -@import '../../src/styles/modals/*' -@import '../../src/styles/directives/*' -@import '../../src/styles/states/*' - -@import '_popup' diff --git a/gulp-electron.js b/gulp-electron.js deleted file mode 100644 index 4287040f..00000000 --- a/gulp-electron.js +++ /dev/null @@ -1,139 +0,0 @@ -require('dotenv').load() -var env = process.env - -var styl = require('gulp-stylus') -var autoprefixer = require('gulp-autoprefixer') -var templateCache = require('gulp-angular-templatecache') -var globby = require('globby') -var template = require('gulp-template') -var del = require('del') -var runSequence = require('run-sequence') -var plumber = require('gulp-plumber') -var notify = require('gulp-notify') -var changed = require('gulp-changed') -var livereload = require('gulp-livereload') -var merge = require('merge-stream') - -var config = require('./build.config.js') - -module.exports = function (gulp) { - - gulp.task('elec-env', function () { - return gulp.src('tpls/env.js') - .pipe(template({ - apiUrl: env.ELEC_API_URL - })) - .pipe(gulp.dest('electron_build/config')) - }) - - gulp.task('elec-js', function () { - var main = gulp.src('src/**/*.js') - .pipe(changed('electron_build')) - .pipe(gulp.dest('electron_build')) - - var electron = gulp.src('electron_src/**/*.js') - .pipe(changed('electron_build/electron')) - .pipe(gulp.dest('electron_build/electron')) - - return merge(main, electron) - }) - - gulp.task('elec-styl', function () { - return gulp.src('electron_src/styles/main.styl') - .pipe(plumber({errorHandler: notify.onError('Error: <%= error.message %>')})) - .pipe(styl()) - .pipe(autoprefixer()) - .pipe(gulp.dest('electron_build')) - .pipe(notify('Stylus!!')) - .pipe(livereload()) - }) - - gulp.task('elec-tpls', function () { - var main = gulp.src('src/**/*.tpl.html') - .pipe(templateCache()) - .pipe(gulp.dest('electron_build')) - - var electron = gulp.src('electron_src/**/*.tpl.html') - .pipe(templateCache()) - .pipe(gulp.dest('electron_build/electron')) - - return merge(main, electron) - }) - - gulp.task('elec-index', function () { - var files = globby.sync(['electron_build/**/*', '!electron_build/vendor/**/*', '!electron_build/electron/**/*']) - - var filter = function (files, ext) { - return files.filter(function (file) { - var reg = new RegExp('.+\.' + ext + '$') - return file.match(reg) - }).map(function (file) { - return file.replace('electron_build/', '') - }) - } - var scripts = filter(files, 'js') - var styles = filter(files, 'css') - - var main = gulp.src('src/index.html') - .pipe(template({ - scripts: scripts, - styles: styles, - env: 'build' - })) - .pipe(gulp.dest('electron_build')) - .pipe(livereload()) - - var electron = gulp.src('electron_src/**/index.html') - .pipe(gulp.dest('electron_build/electron')) - - return merge(main, electron) - }) - - gulp.task('elec-vendor', function () { - var vendors = config.vendors - - var vendorFiles = vendors.map(function (vendor) { - return vendor.src - }) - - vendorFiles.push('node_modules/font-awesome/**/font-awesome.css') - vendorFiles.push('node_modules/font-awesome/**/fontawesome-webfont.*') - vendorFiles.push('node_modules/font-awesome/**/FontAwesome.*') - - return gulp.src(vendorFiles) - .pipe(gulp.dest('electron_build/vendor')) - }) - - gulp.task('elec-resources', function () { - return gulp.src('resources/**/*') - .pipe(changed('electron_build/resources')) - .pipe(gulp.dest('electron_build/resources')) - }) - - gulp.task('elec-build', function (cb) { - runSequence(['elec-env', 'elec-js', 'elec-styl', 'elec-tpls', 'elec-vendor', 'elec-resources'], 'elec-index', cb) - }) - - gulp.task('elec-watch', function (cb) { - gulp.watch(['.env', 'tpls/env.js'], ['elec-env']) - - gulp.watch(['src/**/*.js', 'electron_src/**/*.js'], ['elec-js']) - - gulp.watch(['src/styles/**/*.styl', 'electron_src/styles/**/*.styl'], ['elec-styl']) - - gulp.watch('src/**/*.tpl.html', ['elec-tpls']) - - gulp.watch(['electron_build/**/*.js', 'src/index.html', 'src/index.html', 'electron_src/**/index.html'], ['elec-index']) - - livereload.listen() - }) - - gulp.task('elec-del', function (cb) { - del(['electron_build/**/*'], cb) - }) - - gulp.task('elec', function (cb) { - runSequence('elec-del', 'elec-build', 'elec-watch', cb) - }) - -} diff --git a/icon.png b/icon.png deleted file mode 100644 index c26ad86d..00000000 Binary files a/icon.png and /dev/null differ diff --git a/package.json b/package.json index 02c43e57..627b4b47 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,7 @@ { - "name": "codexen-app", - "version": "0.0.1", - "description": "CodeXen App", - "main": "index.js", + "name": "codexen-app-builder", + "version": "0.2.0", + "description": "CodeXen App Builder", "scripts": { "install": "gulp build", "start": "http-server build", @@ -31,6 +30,11 @@ }, "homepage": "https://github.com/Rokt33r/codexen-app#readme", "dependencies": { + "dotenv": "^1.1.0", + "robotjs": "^0.1.2", + "node-notifier": "^4.2.1" + }, + "devDependencies": { "@rokt33r/ace-builds": "^1.1.9", "@rokt33r/angular-ui-ace": "^0.2.3", "angular": "^1.3.15", @@ -39,38 +43,34 @@ "angular-md5": "^0.1.7", "angular-sanitize": "^1.3.15", "angular-ui-router": "^0.2.15", - "bootstrap-sass": "^3.3.4", "bootstrap-styl": "^4.0.4", "del": "^1.2.0", - "dotenv": "^1.1.0", - "electron-prebuilt": "^0.27.2", - "electron-rebuild": "^0.2.1", "font-awesome": "^4.3.0", "globby": "^2.0.0", "gulp": "^3.8.11", "gulp-angular-templatecache": "^1.6.0", "gulp-autoprefixer": "^2.3.0", + "gulp-cached": "^1.1.0", "gulp-changed": "^1.2.1", + "gulp-concat": "^2.5.2", + "gulp-inject": "^1.3.1", "gulp-livereload": "^3.8.0", "gulp-minify-css": "^1.1.1", + "gulp-minify-html": "^1.0.3", "gulp-ng-annotate": "^0.5.3", "gulp-notify": "^2.2.0", "gulp-plumber": "^1.0.1", + "gulp-remember": "^0.3.0", + "gulp-rename": "^1.2.2", "gulp-rev": "^4.0.0", "gulp-stylus": "^2.0.3", "gulp-template": "^3.0.0", "gulp-uglify": "^1.2.0", "merge-stream": "^0.1.7", "moment": "^2.10.3", - "node-notifier": "^4.2.1", - "robotjs": "^0.1.2", "run-sequence": "^1.1.0", "satellizer": "^0.10.1", + "streamqueue": "^1.1.0", "ui-select": "^0.11.2" - }, - "devDependencies": { - "gulp-concat": "^2.5.2", - "gulp-minify-html": "^1.0.3", - "streamqueue": "^1.1.0" } } diff --git a/app-logo.png b/src/app-logo.png similarity index 100% rename from app-logo.png rename to src/app-logo.png diff --git a/src/app.js b/src/browser/main/app.js similarity index 80% rename from src/app.js rename to src/browser/main/app.js index 9c139070..0409f18e 100644 --- a/src/app.js +++ b/src/browser/main/app.js @@ -1,5 +1,6 @@ /* global angular */ angular.module('codexen', [ + 'codexen.shared', 'ngSanitize', 'ui.select', 'ui.ace', @@ -8,4 +9,5 @@ angular.module('codexen', [ 'satellizer', 'angular-md5', 'templates']) + .constant('appName', 'main') angular.module('templates', []) diff --git a/src/config/states.js b/src/browser/main/config/states.js similarity index 100% rename from src/config/states.js rename to src/browser/main/config/states.js diff --git a/src/controllers/AppController.js b/src/browser/main/controllers/AppController.js similarity index 100% rename from src/controllers/AppController.js rename to src/browser/main/controllers/AppController.js diff --git a/src/controllers/directives/SideNavController.js b/src/browser/main/controllers/directives/SideNavController.js similarity index 100% rename from src/controllers/directives/SideNavController.js rename to src/browser/main/controllers/directives/SideNavController.js diff --git a/src/controllers/modals/DeleteSnippetModalController.js b/src/browser/main/controllers/modals/DeleteSnippetModalController.js similarity index 100% rename from src/controllers/modals/DeleteSnippetModalController.js rename to src/browser/main/controllers/modals/DeleteSnippetModalController.js diff --git a/src/controllers/modals/EditSnippetModalController.js b/src/browser/main/controllers/modals/EditSnippetModalController.js similarity index 100% rename from src/controllers/modals/EditSnippetModalController.js rename to src/browser/main/controllers/modals/EditSnippetModalController.js diff --git a/src/controllers/modals/NewSnippetModalController.js b/src/browser/main/controllers/modals/NewSnippetModalController.js similarity index 100% rename from src/controllers/modals/NewSnippetModalController.js rename to src/browser/main/controllers/modals/NewSnippetModalController.js diff --git a/src/controllers/states/AuthRegisterController.js b/src/browser/main/controllers/states/AuthRegisterController.js similarity index 100% rename from src/controllers/states/AuthRegisterController.js rename to src/browser/main/controllers/states/AuthRegisterController.js diff --git a/src/controllers/states/AuthSignInController.js b/src/browser/main/controllers/states/AuthSignInController.js similarity index 100% rename from src/controllers/states/AuthSignInController.js rename to src/browser/main/controllers/states/AuthSignInController.js diff --git a/src/controllers/states/HomeController.js b/src/browser/main/controllers/states/HomeController.js similarity index 100% rename from src/controllers/states/HomeController.js rename to src/browser/main/controllers/states/HomeController.js diff --git a/src/controllers/states/SettingsController.js b/src/browser/main/controllers/states/SettingsController.js similarity index 100% rename from src/controllers/states/SettingsController.js rename to src/browser/main/controllers/states/SettingsController.js diff --git a/src/controllers/states/SnippetsDetailController.js b/src/browser/main/controllers/states/SnippetsDetailController.js similarity index 100% rename from src/controllers/states/SnippetsDetailController.js rename to src/browser/main/controllers/states/SnippetsDetailController.js diff --git a/src/controllers/states/SnippetsListController.js b/src/browser/main/controllers/states/SnippetsListController.js similarity index 100% rename from src/controllers/states/SnippetsListController.js rename to src/browser/main/controllers/states/SnippetsListController.js diff --git a/src/directives/btn-delete-snippet.js b/src/browser/main/directives/btn-delete-snippet.js similarity index 100% rename from src/directives/btn-delete-snippet.js rename to src/browser/main/directives/btn-delete-snippet.js diff --git a/src/directives/btn-edit-snippet.js b/src/browser/main/directives/btn-edit-snippet.js similarity index 100% rename from src/directives/btn-edit-snippet.js rename to src/browser/main/directives/btn-edit-snippet.js diff --git a/src/directives/btn-new-snippet.js b/src/browser/main/directives/btn-new-snippet.js similarity index 100% rename from src/directives/btn-new-snippet.js rename to src/browser/main/directives/btn-new-snippet.js diff --git a/src/directives/side-nav.js b/src/browser/main/directives/side-nav.js similarity index 100% rename from src/directives/side-nav.js rename to src/browser/main/directives/side-nav.js diff --git a/src/directives/snippet-item.js b/src/browser/main/directives/snippet-item.js similarity index 100% rename from src/directives/snippet-item.js rename to src/browser/main/directives/snippet-item.js diff --git a/src/directives/tag-item.js b/src/browser/main/directives/tag-item.js similarity index 100% rename from src/directives/tag-item.js rename to src/browser/main/directives/tag-item.js diff --git a/src/directives/tag-list.js b/src/browser/main/directives/tag-list.js similarity index 100% rename from src/directives/tag-list.js rename to src/browser/main/directives/tag-list.js diff --git a/src/filters/from-now.js b/src/browser/main/filters/from-now.js similarity index 100% rename from src/filters/from-now.js rename to src/browser/main/filters/from-now.js diff --git a/src/filters/search-snippets.js b/src/browser/main/filters/search-snippets.js similarity index 100% rename from src/filters/search-snippets.js rename to src/browser/main/filters/search-snippets.js diff --git a/src/browser/main/index.html b/src/browser/main/index.html new file mode 100644 index 00000000..3e36c3fc --- /dev/null +++ b/src/browser/main/index.html @@ -0,0 +1,73 @@ + + +
+