Browse Source

New Composer-driven app skeleton

- One front controller to simplify server setup
- Extract all bootstrap code into flarum/server
- Clean up folder structure
pull/25/head
Toby Zerner 9 years ago
parent
commit
3a0d8a656a
  1. 9
      .gitignore
  2. 3
      .gitmodules
  3. 2
      Vagrantfile
  4. 46
      admin.php
  5. 42
      api.php
  6. 85
      build.sh
  7. 34
      composer.json
  8. 18
      flarum
  9. 1
      flarum/.gitignore
  10. 1
      flarum/.htaccess
  11. 149
      flarum/bootstrap.php
  12. 19
      flarum/composer.json
  13. 937
      flarum/composer.lock
  14. 1
      flarum/core
  15. 13
      flarum/error/404.html
  16. 13
      flarum/error/500.html
  17. 28
      flarum/flarum
  18. 1
      flarum/storage/.gitignore
  19. 5
      flarum/studio.json
  20. 232
      fullbuild.sh
  21. 48
      index.php
  22. 0
      scripts/aliases
  23. 64
      scripts/build.sh
  24. 16
      scripts/environment.sh
  25. 0
      storage/app/.gitignore
  26. 0
      storage/framework/.gitignore
  27. 0
      storage/framework/cache/.gitignore
  28. 0
      storage/framework/views/.gitignore
  29. 0
      storage/less/.gitignore
  30. 0
      storage/logs/.gitignore

9
.gitignore vendored

@ -1,8 +1,9 @@
.env
.env.*
!.env.example
.DS_Store .DS_Store
Thumbs.db Thumbs.db
.vagrant .vagrant
config.php config.php
.idea .idea
vendor
server
core
studio.json

3
.gitmodules vendored

@ -1,3 +0,0 @@
[submodule "flarum/core"]
path = flarum/core
url = https://github.com/flarum/core.git

2
Vagrantfile vendored

@ -317,6 +317,6 @@ Vagrant.configure("2") do |config|
# Any local scripts you may want to run post-provisioning. # Any local scripts you may want to run post-provisioning.
# Add these to the same directory as the Vagrantfile. # Add these to the same directory as the Vagrantfile.
########## ##########
config.vm.provision "shell", path: "./flarum/vagrant/environment.sh", privileged: false config.vm.provision "shell", path: "./scripts/environment.sh", privileged: false
end end

46
admin.php

@ -1,46 +0,0 @@
<?php
/*
* This file is part of Flarum.
*
* (c) Toby Zerner <toby.zerner@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
use Flarum\Core;
use Flarum\Forum\Middleware\HandleErrors;
use Franzl\Middleware\Whoops\Middleware as WhoopsMiddleware;
use Zend\Diactoros\Server;
use Zend\Stratigility\MiddlewarePipe;
$app = require __DIR__.'/flarum/bootstrap.php';
$app->register('Flarum\Admin\AdminServiceProvider');
$admin = new MiddlewarePipe();
$admin->pipe($app->make('Flarum\Api\Middleware\ReadJsonParameters'));
$admin->pipe($app->make('Flarum\Admin\Middleware\LoginWithCookieAndCheckAdmin'));
$adminPath = parse_url(Core::url('admin'), PHP_URL_PATH);
$router = $app->make('Flarum\Http\RouterMiddleware', ['routes' => $app->make('flarum.admin.routes')]);
$admin->pipe($adminPath, $router);
if (Core::inDebugMode()) {
$admin->pipe(new WhoopsMiddleware());
} else {
$admin->pipe(new HandleErrors(base_path('error')));
}
$server = Server::createServer(
$admin,
$_SERVER,
$_GET,
$_POST,
$_COOKIE,
$_FILES
);
$server->listen();

42
api.php

@ -1,42 +0,0 @@
<?php
/*
* This file is part of Flarum.
*
* (c) Toby Zerner <toby.zerner@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
use Flarum\Api\Middleware\JsonApiErrors;
use Flarum\Core;
use Zend\Diactoros\Server;
use Zend\Stratigility\MiddlewarePipe;
$app = require __DIR__.'/flarum/bootstrap.php';
$app->register('Flarum\Api\ApiServiceProvider');
$api = new MiddlewarePipe();
$api->pipe($app->make('Flarum\Api\Middleware\ReadJsonParameters'));
$api->pipe($app->make('Flarum\Api\Middleware\LoginWithHeader'));
$api->pipe($app->make('Flarum\Api\Middleware\FakeHttpMethods'));
$apiPath = parse_url(Core::url('api'), PHP_URL_PATH);
$router = $app->make('Flarum\Http\RouterMiddleware', ['routes' => $app->make('flarum.api.routes')]);
$api->pipe($apiPath, $router);
$api->pipe(new JsonApiErrors());
$server = Server::createServer(
$api,
$_SERVER,
$_GET,
$_POST,
$_COOKIE,
$_FILES
);
$server->listen();

85
build.sh

@ -1,85 +0,0 @@
#!/usr/bin/env bash
base=${PWD}
release=/tmp/flarum-release
rm -rf ${release}
mkdir ${release}
git archive --format tar --worktree-attributes HEAD | tar -xC ${release}
cd ${release}
# Delete files
rm -rf ${release}/build.sh
rm -rf ${release}/Vagrantfile
rm -rf ${release}/flarum/vagrant
rm -rf ${release}/flarum/core
rm -rf ${release}/flarum/studio.json
# Install all Composer dependencies
cd ${release}/flarum
composer require flarum/core:dev-master@dev --prefer-dist --update-no-dev
composer install --prefer-dist --optimize-autoloader --ignore-platform-reqs --no-dev
# Copy public files
cp -R ${release}/flarum/vendor/flarum/core/public/* ${release}/assets
# Install frontend dependencies
# Assumes: npm install -g gulp flarum-gulp babel-core
cd ${release}/flarum/vendor/flarum/core/js
bower install
for app in forum admin; do
cd "${release}/flarum/vendor/flarum/core/js/${app}"
npm link gulp flarum-gulp babel-core
gulp --production
rm -rf "${release}/flarum/vendor/flarum/core/js/${app}/node_modules"
done
rm -rf ${release}/flarum/vendor/flarum/core/js/bower_components
# Bundle extensions
for extension in bbcode emoji likes lock markdown mentions pusher sticky subscriptions suspend tags; do
mkdir "${release}/extensions/${extension}"
cd "${base}/extensions/${extension}"
git archive --format zip --worktree-attributes HEAD > "${release}/extensions/${extension}/release.zip"
cd "${release}/extensions/${extension}"
unzip release.zip -d ./
rm release.zip
composer install --prefer-dist --optimize-autoloader --ignore-platform-reqs --no-dev
cd "${release}/extensions/${extension}/js"
if [ -f bower.json ]; then
bower install
fi
for app in forum admin; do
cd "${release}/extensions/${extension}/js"
if [ -d $app ]; then
cd $app
if [ -f bower.json ]; then
bower install
fi
npm link gulp flarum-gulp
gulp --production
rm -rf node_modules bower_components
fi
done
rm -rf "${release}/extensions/${extension}/js/bower_components"
wait
done
# Finally, create the release archive
cd ${release}
find . -type d -exec chmod 0750 {} +
find . -type f -exec chmod 0644 {} +
chmod 0775 .
chmod -R 0775 assets flarum/storage
zip -r release.zip ./

34
composer.json

@ -0,0 +1,34 @@
{
"name": "flarum/flarum",
"description": "Delightfully simple forum software.",
"type": "project",
"keywords": ["forum", "discussion"],
"homepage": "http://flarum.org",
"license": "MIT",
"authors": [
{
"name": "Toby Zerner",
"email": "toby.zerner@gmail.com",
"homepage": "http://tobyzerner.com"
},
{
"name": "Franz Liedke",
"email": "franz.liedke@gmail.com",
"homepage": "http://www.develophp.org"
}
],
"support": {
"issues": "https://github.com/flarum/core/issues",
"source": "https://github.com/flarum/flarum",
"docs": "http://flarum.org/docs"
},
"require": {
"flarum/server": "dev-master"
},
"require-dev": {
"franzl/studio": "0.10.x@dev"
},
"config": {
"preferred-install": "dist"
}
}

18
flarum

@ -0,0 +1,18 @@
#!/usr/bin/env php
<?php
/*
* This file is part of Flarum.
*
* (c) Toby Zerner <toby.zerner@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
define('FLARUM_START', microtime(true));
require 'vendor/autoload.php';
$server = new Flarum\Server\ConsoleServer(__DIR__);
$server->listen();

1
flarum/.gitignore vendored

@ -1 +0,0 @@
vendor

1
flarum/.htaccess

@ -1 +0,0 @@
Deny from All

149
flarum/bootstrap.php

@ -1,149 +0,0 @@
<?php
/*
* This file is part of Flarum.
*
* (c) Toby Zerner <toby.zerner@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
use Flarum\Core;
use Flarum\Core\Application;
use Illuminate\Cache\FileStore;
use Illuminate\Cache\Repository;
use Illuminate\Config\Repository as ConfigRepository;
use Illuminate\Filesystem\Filesystem;
define('FLARUM_START', microtime(true));
require __DIR__ . '/vendor/autoload.php';
// franzliedke/studio currently doesn't autoload files (see issue below), so we
// will need to load them manually if we're using studio.
// https://github.com/franzliedke/studio/issues/29
if (file_exists(__DIR__ . '/core')) {
require __DIR__ . '/core/src/helpers.php';
require __DIR__ . '/core/vendor/swiftmailer/swiftmailer/lib/swift_required.php';
}
$app = new Application(realpath(__DIR__));
$app->instance('path.public', __DIR__.'/..');
Illuminate\Container\Container::setInstance($app);
if (file_exists($configFile = __DIR__.'/../config.php')) {
$app->instance('flarum.config', include $configFile);
}
date_default_timezone_set('UTC');
$app->instance('config', $config = new ConfigRepository([
'view' => [
'paths' => [
realpath(base_path('resources/views'))
],
'compiled' => realpath(storage_path().'/framework/views'),
],
'mail' => [
'driver' => 'mail',
],
'cache' => [
'default' => 'file',
'stores' => [
'file' => [
'driver' => 'file',
'path' => storage_path().'/framework/cache',
],
],
'prefix' => 'flarum',
],
'filesystems' => [
'default' => 'local',
'cloud' => 's3',
'disks' => [
'flarum-avatars' => [
'driver' => 'local',
'root' => public_path('assets/avatars')
],
],
],
]));
$logger = new Monolog\Logger($app->environment());
$logPath = $app->storagePath() . '/logs/flarum.log';
$handler = new \Monolog\Handler\StreamHandler($logPath, Monolog\Logger::DEBUG);
$handler->setFormatter(new \Monolog\Formatter\LineFormatter(null, null, true, true));
$logger->pushHandler($handler);
$app->instance('log', $logger);
$app->alias('log', 'Psr\Log\LoggerInterface');
$app->singleton('cache', function ($app) {
$store = new FileStore(new Filesystem(), storage_path('framework/cache'));
$repository = new Repository($store);
$repository->setEventDispatcher($app->make('events'));
return $repository;
});
$app->alias('cache', 'Illuminate\Contracts\Cache\Repository');
$serviceProviders = [
'Flarum\Core\DatabaseServiceProvider',
'Flarum\Core\Settings\SettingsServiceProvider',
'Flarum\Locale\LocaleServiceProvider',
'Illuminate\Bus\BusServiceProvider',
'Illuminate\Filesystem\FilesystemServiceProvider',
'Illuminate\Hashing\HashServiceProvider',
'Illuminate\Mail\MailServiceProvider',
'Illuminate\View\ViewServiceProvider',
'Illuminate\Events\EventServiceProvider',
'Illuminate\Validation\ValidationServiceProvider',
];
foreach ($serviceProviders as $provider) {
$app->register(new $provider($app));
}
if (Core::isInstalled()) {
$settings = $app->make('Flarum\Core\Settings\SettingsRepository');
$app->register(new \Flarum\Core\CoreServiceProvider($app));
$config->set('mail.driver', Core::config('mail_driver'));
$config->set('mail.host', Core::config('mail_host'));
$config->set('mail.port', Core::config('mail_port'));
$config->set('mail.from.address', Core::config('mail_from'));
$config->set('mail.from.name', Core::config('forum_title'));
$config->set('mail.encryption', Core::config('mail_encryption'));
$config->set('mail.username', Core::config('mail_username'));
$config->set('mail.password', Core::config('mail_password'));
// Register extensions and tell them to listen for events
$app->register(new \Flarum\Support\ExtensionsServiceProvider($app));
}
$app->boot();
// If the version stored in the database doesn't match the version of the
// code, then run the upgrade script (migrations). This is temporary - a
// proper, more secure upgrade method is planned.
if (Core::isInstalled() && $settings->get('version') !== $app::VERSION) {
$input = new \Symfony\Component\Console\Input\StringInput('');
$output = new \Symfony\Component\Console\Output\BufferedOutput;
app('Flarum\Console\UpgradeCommand')->run($input, $output);
$settings->set('version', $app::VERSION);
app('flarum.formatter')->flush();
$forum = app('Flarum\Forum\Actions\ClientAction');
$forum->flushAssets();
$admin = app('Flarum\Admin\Actions\ClientAction');
$admin->flushAssets();
}
return $app;

19
flarum/composer.json

@ -1,19 +0,0 @@
{
"name": "flarum/flarum",
"description": "The Flarum forum skeleton.",
"keywords": ["forum", "flarum"],
"license": "MIT",
"type": "project",
"require": {
"illuminate/container": "5.1.*",
"monolog/monolog": "^1.16.0",
"zendframework/zend-stratigility": "^1.1",
"franzl/whoops-middleware": "dev-master"
},
"require-dev": {
"franzl/studio": "0.10.x@dev"
},
"config": {
"preferred-install": "dist"
}
}

937
flarum/composer.lock generated

@ -1,937 +0,0 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "50c4b41cd683467ad311331d48c6d8c6",
"packages": [
{
"name": "filp/whoops",
"version": "1.1.7",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
"reference": "72538eeb70bbfb11964412a3d098d109efd012f7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/filp/whoops/zipball/72538eeb70bbfb11964412a3d098d109efd012f7",
"reference": "72538eeb70bbfb11964412a3d098d109efd012f7",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
"mockery/mockery": "0.9.*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2-dev"
}
},
"autoload": {
"psr-0": {
"Whoops": "src/"
},
"classmap": [
"src/deprecated"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Filipe Dobreira",
"homepage": "https://github.com/filp",
"role": "Developer"
}
],
"description": "php error handling for cool kids",
"homepage": "https://github.com/filp/whoops",
"keywords": [
"error",
"exception",
"handling",
"library",
"silex-provider",
"whoops",
"zf2"
],
"time": "2015-06-29 05:42:04"
},
{
"name": "franzl/whoops-middleware",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/franzliedke/whoops-middleware.git",
"reference": "4f87c4d36653d95b27fbe85d21954e0d2de58136"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/franzliedke/whoops-middleware/zipball/4f87c4d36653d95b27fbe85d21954e0d2de58136",
"reference": "4f87c4d36653d95b27fbe85d21954e0d2de58136",
"shasum": ""
},
"require": {
"filp/whoops": "^1.1",
"zendframework/zend-diactoros": "^1.1@dev",
"zendframework/zend-stratigility": "^1.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Franzl\\Middleware\\Whoops\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"time": "2015-06-17 00:08:50"
},
{
"name": "illuminate/container",
"version": "v5.1.16",
"source": {
"type": "git",
"url": "https://github.com/illuminate/container.git",
"reference": "66621248395705cc64bc1ce9262b99b4bfa606f2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/container/zipball/66621248395705cc64bc1ce9262b99b4bfa606f2",
"reference": "66621248395705cc64bc1ce9262b99b4bfa606f2",
"shasum": ""
},
"require": {
"illuminate/contracts": "5.1.*",
"php": ">=5.5.9"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "5.1-dev"
}
},
"autoload": {
"psr-4": {
"Illuminate\\Container\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Taylor Otwell",
"email": "taylorotwell@gmail.com"
}
],
"description": "The Illuminate Container package.",
"homepage": "http://laravel.com",
"time": "2015-08-26 23:00:38"
},
{
"name": "illuminate/contracts",
"version": "v5.1.16",
"source": {
"type": "git",
"url": "https://github.com/illuminate/contracts.git",
"reference": "610aea16e3d91dfd85db4cf43703403a83b7cba2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/contracts/zipball/610aea16e3d91dfd85db4cf43703403a83b7cba2",
"reference": "610aea16e3d91dfd85db4cf43703403a83b7cba2",
"shasum": ""
},
"require": {
"php": ">=5.5.9"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "5.1-dev"
}
},
"autoload": {
"psr-4": {
"Illuminate\\Contracts\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Taylor Otwell",
"email": "taylorotwell@gmail.com"
}
],
"description": "The Illuminate Contracts package.",
"homepage": "http://laravel.com",
"time": "2015-08-31 12:59:22"
},
{
"name": "monolog/monolog",
"version": "1.17.1",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "0524c87587ab85bc4c2d6f5b41253ccb930a5422"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/0524c87587ab85bc4c2d6f5b41253ccb930a5422",
"reference": "0524c87587ab85bc4c2d6f5b41253ccb930a5422",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"psr/log": "~1.0"
},
"provide": {
"psr/log-implementation": "1.0.0"
},
"require-dev": {
"aws/aws-sdk-php": "^2.4.9",
"doctrine/couchdb": "~1.0@dev",
"graylog2/gelf-php": "~1.0",
"php-console/php-console": "^3.1.3",
"phpunit/phpunit": "~4.5",
"phpunit/phpunit-mock-objects": "2.3.0",
"raven/raven": "~0.11",
"ruflin/elastica": ">=0.90 <3.0",
"swiftmailer/swiftmailer": "~5.3",
"videlalvaro/php-amqplib": "~2.4"
},
"suggest": {
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
"doctrine/couchdb": "Allow sending log messages to a CouchDB server",
"ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
"ext-mongo": "Allow sending log messages to a MongoDB server",
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
"php-console/php-console": "Allow sending log messages to Google Chrome",
"raven/raven": "Allow sending log messages to a Sentry server",
"rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
"videlalvaro/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.16.x-dev"
}
},
"autoload": {
"psr-4": {
"Monolog\\": "src/Monolog"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
}
],
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
"homepage": "http://github.com/Seldaek/monolog",
"keywords": [
"log",
"logging",
"psr-3"
],
"time": "2015-08-31 09:17:37"
},
{
"name": "psr/http-message",
"version": "1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
"reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298",
"reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
"keywords": [
"http",
"http-message",
"psr",
"psr-7",
"request",
"response"
],
"time": "2015-05-04 20:22:00"
},
{
"name": "psr/log",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
"reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
"shasum": ""
},
"type": "library",
"autoload": {
"psr-0": {
"Psr\\Log\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
"keywords": [
"log",
"psr",
"psr-3"
],
"time": "2012-12-21 11:40:51"
},
{
"name": "zendframework/zend-diactoros",
"version": "1.1.3",
"source": {
"type": "git",
"url": "https://github.com/zendframework/zend-diactoros.git",
"reference": "e2f5c12916c74da384058d0dfbc7fbc0b03d1181"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/e2f5c12916c74da384058d0dfbc7fbc0b03d1181",
"reference": "e2f5c12916c74da384058d0dfbc7fbc0b03d1181",
"shasum": ""
},
"require": {
"php": ">=5.4",
"psr/http-message": "~1.0"
},
"provide": {
"psr/http-message-implementation": "~1.0.0"
},
"require-dev": {
"phpunit/phpunit": "~4.6",
"squizlabs/php_codesniffer": "^2.3.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev",
"dev-develop": "1.1-dev"
}
},
"autoload": {
"psr-4": {
"Zend\\Diactoros\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-2-Clause"
],
"description": "PSR HTTP Message implementations",
"homepage": "https://github.com/zendframework/zend-diactoros",
"keywords": [
"http",
"psr",
"psr-7"
],
"time": "2015-08-10 20:04:20"
},
{
"name": "zendframework/zend-escaper",
"version": "2.5.1",
"source": {
"type": "git",
"url": "https://github.com/zendframework/zend-escaper.git",
"reference": "a4b227d8a477f4e7e9073f8e0a7ae7dbd3104a73"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/a4b227d8a477f4e7e9073f8e0a7ae7dbd3104a73",
"reference": "a4b227d8a477f4e7e9073f8e0a7ae7dbd3104a73",
"shasum": ""
},
"require": {
"php": ">=5.3.23"
},
"require-dev": {
"fabpot/php-cs-fixer": "1.7.*",
"phpunit/phpunit": "~4.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.5-dev",
"dev-develop": "2.6-dev"
}
},
"autoload": {
"psr-4": {
"Zend\\Escaper\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"homepage": "https://github.com/zendframework/zend-escaper",
"keywords": [
"escaper",
"zf2"
],
"time": "2015-06-03 14:05:37"
},
{
"name": "zendframework/zend-stratigility",
"version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/zendframework/zend-stratigility.git",
"reference": "6a3b7e601dfe7eca0652a8b7f1a469ff4b8f3c28"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/zendframework/zend-stratigility/zipball/6a3b7e601dfe7eca0652a8b7f1a469ff4b8f3c28",
"reference": "6a3b7e601dfe7eca0652a8b7f1a469ff4b8f3c28",
"shasum": ""
},
"require": {
"php": ">=5.4.8",
"psr/http-message": "~1.0.0",
"zendframework/zend-escaper": "~2.3"
},
"require-dev": {
"phpunit/phpunit": "~4.7",
"squizlabs/php_codesniffer": "^2.3.1",
"zendframework/zend-diactoros": "~1.0"
},
"suggest": {
"psr/http-message-implementation": "Please install a psr/http-message-implementation to consume Stratigility; e.g., zendframework/zend-diactoros"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev",
"dev-develop": "1.1-dev"
}
},
"autoload": {
"psr-4": {
"Zend\\Stratigility\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "Middleware for PHP",
"homepage": "https://github.com/zendframework/zend-stratigility",
"keywords": [
"http",
"middleware",
"psr-7"
],
"time": "2015-08-25 18:39:13"
}
],
"packages-dev": [
{
"name": "danielstjules/stringy",
"version": "1.10.0",
"source": {
"type": "git",
"url": "https://github.com/danielstjules/Stringy.git",
"reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/danielstjules/Stringy/zipball/4749c205db47ee5b32e8d1adf6d9aff8db6caf3b",
"reference": "4749c205db47ee5b32e8d1adf6d9aff8db6caf3b",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Stringy\\": "src/"
},
"files": [
"src/Create.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Daniel St. Jules",
"email": "danielst.jules@gmail.com",
"homepage": "http://www.danielstjules.com"
}
],
"description": "A string manipulation library with multibyte support",
"homepage": "https://github.com/danielstjules/Stringy",
"keywords": [
"UTF",
"helpers",
"manipulation",
"methods",
"multibyte",
"string",
"utf-8",
"utility",
"utils"
],
"time": "2015-07-23 00:54:12"
},
{
"name": "doctrine/inflector",
"version": "v1.0.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
"reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/inflector/zipball/0bcb2e79d8571787f18b7eb036ed3d004908e604",
"reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604",
"shasum": ""
},
"require": {
"php": ">=5.3.2"
},
"require-dev": {
"phpunit/phpunit": "4.*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-0": {
"Doctrine\\Common\\Inflector\\": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
}
],
"description": "Common String Manipulations with regard to casing and singular/plural rules.",
"homepage": "http://www.doctrine-project.org",
"keywords": [
"inflection",
"pluralize",
"singularize",
"string"
],
"time": "2014-12-20 21:24:13"
},
{
"name": "franzl/studio",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/franzliedke/studio.git",
"reference": "5d66fb638aee8b338926231c6178f9f7235c8107"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/franzliedke/studio/zipball/5d66fb638aee8b338926231c6178f9f7235c8107",
"reference": "5d66fb638aee8b338926231c6178f9f7235c8107",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0",
"illuminate/support": "~5.0",
"symfony/console": "^2.7",
"symfony/filesystem": "~2.5",
"symfony/finder": "~2.5",
"symfony/process": "~2.5"
},
"replace": {
"franzliedke/studio": "self.version"
},
"require-dev": {
"composer/composer": "dev-master"
},
"bin": [
"bin/studio"
],
"type": "composer-plugin",
"extra": {
"branch-alias": {
"dev-master": "0.10.x-dev"
},
"class": "Studio\\Composer\\StudioPlugin"
},
"autoload": {
"psr-4": {
"Studio\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Develop your Composer libraries with style",
"keywords": [
"composer",
"development",
"workflow"
],
"time": "2015-08-26 12:34:26"
},
{
"name": "illuminate/support",
"version": "v5.1.16",
"source": {
"type": "git",
"url": "https://github.com/illuminate/support.git",
"reference": "c5389968d48517b3b51cfd8cd4abd72f0cc1575b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/support/zipball/c5389968d48517b3b51cfd8cd4abd72f0cc1575b",
"reference": "c5389968d48517b3b51cfd8cd4abd72f0cc1575b",
"shasum": ""
},
"require": {
"danielstjules/stringy": "~1.8",
"doctrine/inflector": "~1.0",
"ext-mbstring": "*",
"illuminate/contracts": "5.1.*",
"php": ">=5.5.9"
},
"suggest": {
"jeremeamia/superclosure": "Required to be able to serialize closures (~2.0).",
"symfony/var-dumper": "Required to use the dd function (2.7.*)."
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "5.1-dev"
}
},
"autoload": {
"psr-4": {
"Illuminate\\Support\\": ""
},
"files": [
"helpers.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Taylor Otwell",
"email": "taylorotwell@gmail.com"
}
],
"description": "The Illuminate Support package.",
"homepage": "http://laravel.com",
"time": "2015-09-03 15:47:41"
},
{
"name": "symfony/console",
"version": "v2.7.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/Console.git",
"reference": "9ff9032151186bd66ecee727d728f1319f52d1d8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Console/zipball/9ff9032151186bd66ecee727d728f1319f52d1d8",
"reference": "9ff9032151186bd66ecee727d728f1319f52d1d8",
"shasum": ""
},
"require": {
"php": ">=5.3.9"
},
"require-dev": {
"psr/log": "~1.0",
"symfony/event-dispatcher": "~2.1",
"symfony/phpunit-bridge": "~2.7",
"symfony/process": "~2.1"
},
"suggest": {
"psr/log": "For using the console logger",
"symfony/event-dispatcher": "",
"symfony/process": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.7-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Console\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
"time": "2015-09-03 11:40:38"
},
{
"name": "symfony/filesystem",
"version": "v2.7.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/Filesystem.git",
"reference": "f079e9933799929584200b9a926f72f29e291654"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Filesystem/zipball/f079e9933799929584200b9a926f72f29e291654",
"reference": "f079e9933799929584200b9a926f72f29e291654",
"shasum": ""
},
"require": {
"php": ">=5.3.9"
},
"require-dev": {
"symfony/phpunit-bridge": "~2.7"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.7-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Filesystem\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
"time": "2015-08-27 07:03:44"
},
{
"name": "symfony/finder",
"version": "v2.7.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/Finder.git",
"reference": "fff4b0c362640a0ab7355e2647b3d461608e9065"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Finder/zipball/fff4b0c362640a0ab7355e2647b3d461608e9065",
"reference": "fff4b0c362640a0ab7355e2647b3d461608e9065",
"shasum": ""
},
"require": {
"php": ">=5.3.9"
},
"require-dev": {
"symfony/phpunit-bridge": "~2.7"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.7-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Finder\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
"time": "2015-08-26 17:56:37"
},
{
"name": "symfony/process",
"version": "v2.7.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/Process.git",
"reference": "f7b3f73f70a7f8f49a1c838dc3debbf054732d8e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Process/zipball/f7b3f73f70a7f8f49a1c838dc3debbf054732d8e",
"reference": "f7b3f73f70a7f8f49a1c838dc3debbf054732d8e",
"shasum": ""
},
"require": {
"php": ">=5.3.9"
},
"require-dev": {
"symfony/phpunit-bridge": "~2.7"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.7-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Process\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
"time": "2015-08-27 06:45:45"
}
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
"franzl/whoops-middleware": 20,
"franzl/studio": 20
},
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform-dev": []
}

1
flarum/core

@ -1 +0,0 @@
Subproject commit 8b06a6c282227909ce433408f5798fef51874703

13
flarum/error/404.html

@ -1,13 +0,0 @@
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>404 Not Found</h1>
<p>Looks like this page could not be found.</p>
</body>
</html>

13
flarum/error/500.html

@ -1,13 +0,0 @@
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>500 Internal Server Error</h1>
<p>Something went wrong on our server.</p>
</body>
</html>

28
flarum/flarum

@ -1,28 +0,0 @@
#!/usr/bin/env php
<?php
/*
* This file is part of Flarum.
*
* (c) Toby Zerner <toby.zerner@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
use Flarum\Core;
use Symfony\Component\Console\Application;
$app = require_once __DIR__.'/bootstrap.php';
$console = new Application('Flarum', $app::VERSION);
if (!Core::isInstalled()) {
$app->register('Flarum\Install\InstallServiceProvider');
$console->add($app->make('Flarum\Install\Console\InstallCommand'));
}
$console->add($app->make('Flarum\Console\UpgradeCommand'));
$console->add($app->make('Flarum\Console\GenerateExtensionCommand'));
$console->add($app->make('Flarum\Console\GenerateMigrationCommand'));
exit($console->run());

1
flarum/storage/.gitignore vendored

@ -1 +0,0 @@
laravel.log

5
flarum/studio.json

@ -1,5 +0,0 @@
{
"packages": {
"flarum/core": "core"
}
}

232
fullbuild.sh

@ -1,232 +0,0 @@
#!/usr/bin/env bash
########
# fullbuild by Kulga
#
# This script should make creating a release much easier.
########
(
# Extensions to be compiled. Must by located in https://github.com/flarum/$extension
default_extensions='bbcode emoji likes lock markdown mentions pusher sticky subscriptions suspend tags akismet approval'
update_repos() {
### Update Repo's
cd $flarum_source
git pull || { git clone https://github.com/flarum/flarum; flarum_source="$flarum_source"/flarum; }
(
# Ensure base directory is up to date
cd $flarum_source
echo latest commit $(git log -1 | head -n1 | cut -d\ -f2 | cut -b1-10) - flarum
# Ensure Core is up to date - https://github.com/flarum/core
git clone https://github.com/flarum/core 2> /dev/null || (cd flarum/core/ && git pull)
echo latest commit $(git log -1 | head -n1 | cut -d\ -f2 | cut -b1-10) - flarum/core
# Ensure Extensions are up to date
for extension in $default_extensions;
do
(
cd extensions/
mkdir -p $extension
git clone https://github.com/flarum/"$extension" || (cd $extension; git pull)
(cd $extension; echo latest commit $(git log -1 | head -n1 | cut -d\ -f2 | cut -b1-10) - flarum/$extension)
)
done
)
}
copytorelease() {
### Copy files to compiling area
(
cd $flarum_source
# Primary flarum scripts
git archive --format tar --worktree-attributes HEAD | tar -xC $compiled_flarum
for extension in $default_extensions
do
(
mkdir -p $compiled_flarum/extensions/$extension
cd extensions/$extension
git archive --format tar --worktree-attributes HEAD | tar -xC "$compiled_flarum/extensions/$extension"
)
done
)
}
compilereleaseflarum() {
### Compile
## Compile Core
(
cd $compiled_flarum
(
cd flarum
composer require flarum/core:dev-master@dev --prefer-dist --update-no-dev
composer install --prefer-dist --optimize-autoloader --ignore-platform-reqs --no-dev
# Copy public files
rsync -av $compiled_flarum/flarum/vendor/flarum/core/public/* $compiled_flarum/assets
)
(
cd flarum/vendor/flarum/core/js
bower install
)
(
cd flarum/vendor/flarum/core/js
for app in forum admin
do
(
cd $app
npm link gulp flarum-gulp babel-core
gulp --production
rm -rf "$app"/node_modules
)
done
)
rm -rf flarum/vendor/flarum/core/js/bower_components
)
## | Compile Core
## Compile Extensions
(
cd $compiled_flarum
for extension in $default_extensions;
do
(
cd extensions/$extension
composer install --prefer-dist --optimize-autoloader --ignore-platform-reqs --no-dev
if [ -f js/bower.json ]; then ( cd js && bower install ); fi
for app in forum admin
do
if [ -d js/$app ]; then
(
cd js/$app
if [ -f bower.json ]; then bower install; fi
npm link gulp flarum-gulp
gulp --production
rm -rf node_modules bower_components
)
fi
done
)
rm -rf "$compiled_flarum/extensions/$extension/js/bower_components"
done
## Extra extensions should go here
)
## | Compile Extensions
}
removeextras() {
### Remove Extra Files
(
cd $compiled_flarum
rm -rf build.sh
rm -rf Vagrantfile
rm -rf flarum/vagrant
rm -rf flarum/core
rm -rf flarum/studio.json
)
}
wrapup() {
### Permissions
(
cd $compiled_flarum
find ./ -type d -exec chmod 0750 {} \;
find ./ -type f -exec chmod 0644 {} \;
chmod 0775 ./
chmod -R 0775 assets flarum/storage flarum/flarum
# Create Checksum - run md5sum -c in extracted directory to check
find . -type f -exec md5sum {} \; &> CHECKSUM
zip ./ /"$export"flarum_$(date +\%m_\%d_\%Y).zip
tar --preserve-permissions --preserve-order -zcf "$export"flarum_$(date +\%m_\%d_\%Y).tar.gz ./
# Remove /tmp/tmp.* files if not designated by -s
if [ ${removetmp:-no} == yes ]; then rm -fr $compiled_flarum; fi
echo -e '\nmd5sums'
md5sum "$export"flarum_$(date +\%m_\%d_\%Y).{zip,tar.gz}
)
}
while getopts "cd:e:his:" opt; do
case "$opt" in
c)
# Compiles the release flarum
update_repos
copytorelease
compilereleaseflarum
exit
;;
d)
compiled_flarum="$OPTARG"
if [ ! -d "$OPTARG" ]; then mkdir -p "$OPTARG"; fi
;;
e)
# Where to export files
export="$OPTARG"/
;;
h)
echo ""
echo -e "-c Compiles whatever files exist at -d\n"
echo -e "-d Designate where to place temporary compile files - defaults to /tmp/tmp.nn directory\n"
echo -e "-e Where to export .zip / tar of flarum\n"
echo -e "-i Full update and creation of latest Flarum\n"
echo -e "-h Display this help\n"
echo -e "-s Designate source of flarum files\n"
exit
;;
i)
#
wrapup
exit
;;
s)
flarum_source="$OPTARG"
if [ ! -d "$OPTARG" ]; then
mkdir -p "$OPTARG"
(
cd "$OPTARG"
git pull || git clone https://github.com/flarum/flarum .
)
fi
;;
\?)
echo "Invalid option: -$OPTARG" >&2
echo "-h for help"
exit
;;
esac
done
# Set flarum_source if not already set - default to script location
if [ -v $flarum_source ]; then flarum_source=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd); fi
# Set compiled_flarum location if not already set - default to random /tmp/tmp.* location
if [ -v $compiled_flarum ]; then compiled_flarum=$(mktemp -d); removetmp=yes; fi
if [ -v $export ]; then export=/tmp/; fi
update_repos
copytorelease
compilereleaseflarum
removeextras
wrapup
)

48
index.php

@ -9,52 +9,10 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
use Flarum\Core; define('FLARUM_START', microtime(true));
use Flarum\Forum\Middleware\HandleErrors;
use Franzl\Middleware\Whoops\Middleware as WhoopsMiddleware;
use Zend\Diactoros\Server;
use Zend\Stratigility\MiddlewarePipe;
$app = require __DIR__.'/flarum/bootstrap.php'; require 'vendor/autoload.php';
// If Flarum's configuration exists, then we can assume that installation has $server = new Flarum\Server\WebServer(__DIR__);
// been completed. We will set up a middleware pipe to route the request through
// to one of the main forum actions.
if (Core::isInstalled()) {
$app->register('Flarum\Forum\ForumServiceProvider');
$flarum = new MiddlewarePipe();
$flarum->pipe($app->make('Flarum\Forum\Middleware\LoginWithCookie'));
$flarum->pipe($app->make('Flarum\Api\Middleware\ReadJsonParameters'));
$basePath = parse_url(Core::url(), PHP_URL_PATH);
$router = $app->make('Flarum\Http\RouterMiddleware', ['routes' => $app->make('flarum.forum.routes')]);
$flarum->pipe($basePath, $router);
if (Core::inDebugMode()) {
$flarum->pipe(new WhoopsMiddleware());
} else {
$flarum->pipe(new HandleErrors(base_path('error')));
}
} else {
$app->register('Flarum\Install\InstallServiceProvider');
$flarum = new MiddlewarePipe();
$basePath = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$router = $app->make('Flarum\Http\RouterMiddleware', ['routes' => $app->make('flarum.install.routes')]);
$flarum->pipe($basePath, $router);
$flarum->pipe(new WhoopsMiddleware());
}
$server = Server::createServer(
$flarum,
$_SERVER,
$_GET,
$_POST,
$_COOKIE,
$_FILES
);
$server->listen(); $server->listen();

0
flarum/vagrant/aliases → scripts/aliases

64
scripts/build.sh

@ -0,0 +1,64 @@
#!/usr/bin/env bash
# This script builds a release of Flarum by installing dependencies and bundled
# extensions, compiling production assets, removing development files, and
# zipping up the result. It should be run from the root directory.
base=$PWD
release=/tmp/flarum
# Make a copy of the files
rm -rf ${release}
mkdir ${release}
git archive --format tar --worktree-attributes HEAD | tar -xC ${release}
# Install dependencies
cd ${release}/flarum
composer require flarum/core:dev-master@dev --prefer-dist --update-no-dev
composer install --prefer-dist --optimize-autoloader --ignore-platform-reqs --no-dev
# Copy public files
cp -R ${release}/flarum/vendor/flarum/core/public/* ${release}/assets
# Compile assets
cd ${release}/flarum/vendor/flarum/core
bash scripts/compile.sh
# Delete dev files
cd ${release}
rm -rf Vagrantfile
rm -rf scripts
rm -rf flarum/core
rm -rf flarum/studio.json
rm -rf `find . -type d -name node_modules`
rm -rf `find . -type d -name bower_components`
# Bundle default extensions
for extension in akismet approval bbcode emoji english flags likes lock markdown mentions pusher sticky subscriptions suspend tags; do
# Download and extract the extension archive
cd ${release}/extensions
curl "https://github.com/flarum/${extension}/archive/master.zip" -L -o ${extension}.zip
unzip ${extension}.zip -d ./${extension}
rm ${extension}.zip
# Compile assets
cd $extension
bash scripts/compile.sh
# Delete dev files
rm -rf `find . -type d -name node_modules`
rm -rf `find . -type d -name bower_components`
done
# Set file permissions
cd $release
find . -type d -exec chmod 0750 {} +
find . -type f -exec chmod 0644 {} +
chmod 0775 .
chmod -R 0775 assets flarum/storage
# Create the release archive
zip -r release.zip ./
mv release.zip ${base}/release.zip

16
flarum/vagrant/environment.sh → scripts/environment.sh

@ -59,7 +59,7 @@ sudo service nginx restart
sudo apt-get install -y phantomjs zsh exuberant-ctags sudo apt-get install -y phantomjs zsh exuberant-ctags
sudo chown -R vagrant:vagrant /home/vagrant sudo chown -R vagrant:vagrant /home/vagrant
cp /vagrant/flarum/vagrant/aliases ~/.aliases cp /vagrant/scripts/aliases ~/.aliases
### Create rc file ### ### Create rc file ###
if [ -e "/home/vagrant/.zshrc" ] if [ -e "/home/vagrant/.zshrc" ]
@ -75,21 +75,9 @@ mysql -u root -proot -e 'create database flarum'
cd /vagrant/flarum/core cd /vagrant/flarum/core
git pull git pull
composer install --prefer-dist composer install --prefer-dist
bash scripts/compile.sh
cd /vagrant/flarum cd /vagrant/flarum
composer install --prefer-dist composer install --prefer-dist
composer dump-autoload composer dump-autoload
cd /vagrant/flarum/core/js
bower install
cd /vagrant/flarum/core/js/forum
npm install
gulp
cd /vagrant/flarum/core/js/admin
npm install
gulp
cd /vagrant/flarum
php flarum install --defaults php flarum install --defaults

0
flarum/storage/app/.gitignore → storage/app/.gitignore vendored

0
flarum/storage/framework/.gitignore → storage/framework/.gitignore vendored

0
flarum/storage/framework/cache/.gitignore → storage/framework/cache/.gitignore vendored

0
flarum/storage/framework/views/.gitignore → storage/framework/views/.gitignore vendored

0
flarum/storage/less/.gitignore → storage/less/.gitignore vendored

0
flarum/storage/logs/.gitignore → storage/logs/.gitignore vendored

Loading…
Cancel
Save