Coder Social home page Coder Social logo

acacha / llum Goto Github PK

View Code? Open in Web Editor NEW
108.0 7.0 13.0 181 KB

Llum (light in catalan language) illuminates your Laravel projects speeding up your Github/Laravel development workflow

License: MIT License

PHP 96.65% Shell 3.35%
laravel laravel-5-package devtools llum php github github-api

llum's Introduction

llum

Speed up you Github/Laravel development workflow illuminating packages with llum:

asciicast

Total Downloads Latest Stable Version Scrutinizer Code Quality Build Status StyleCI Build Status

Now supports Laravel 5.4.

See also:

Install notes

composer global require "acacha/llum=~1.0"

Requirements

Some commands use bash commands like GNU sed and touch.On Windows you can use CygWin or see StackOverflow

On MAC OS use GNU sed instead of default installed BSD sed

brew install gnu-sed --with-default-names

Commands

init

Execute:

llum init
Please enter your github username (sergi) ? 
Do you want to use our assistant to obtain token via Github API (Y/n)?Y
Github password?

To configure your Bithub user and obtain a token to interact with github using llum commands (see github command section below). This command creates file ~/.llumrc , an example:

~ cat .llumrc 
; Llum configuration file

[github]
username = acacha
token = token_here
token_name = your token name here

You can avoid providing password creating manually this file an putting your personal Github acces token (https://github.com/settings/tokens) on ~/.llumrc file.

Github

IMPORTANT: Requires previous execution of llum init command to work.

github:init

IMPORTANT: Requires previous execution of llum init command to work.

This commands initializes a Github repo, create a first commit, create a Github repo and syncs local content with Github repo. The commands executed are:

git init
git add .
git commit -a -m "Initial version"
llum github:repo
git pull origin master
git push origin master

Example:

$ cd myproject
$ llum github:init
Running command git init...
S'ha inicialitzat un buit dipòsit de Git a /home/sergi/myproject/.git/
Running command git add ....
Running command git commit -a -m "Initial version"...
[master (comissió d'arrel) 563473d] Initial version
 1 file changed, 0 insertions(+), 0 deletions(-)
 ...
Running command llum github:repo...
Repository myproject created
Running command git remote add origin [email protected]:acacha/myproject.git...
Running command git pull origin master...
fatal: Couldn't find remote ref master
Running command git push origin master...
Comptant els objectes: 3, fet.
Escrivint els objectes: 100% (3/3), 216 bytes | 0 bytes/s, fet.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:acacha/myproject.git
 * [new branch]      master -> master

github:repo

IMPORTANT: Requires previous execution of llum init command to work.

Create a new Github repo:

mkdir && cd newrepo
llum github:repo

This create a new Github repo called {yourgithubusername}/newrepo (the current folder name is used) . You can provide a name for the repo with:

llum github:repo reponame

boot

Execute commands:

  • devtools
  • sqlite
  • migrate
  • serve

And your are ready to go!

devtools

Install and configure amazing debug tools Laravel Debugbar and Laravel-ide-helper

llum devtools

debugbar

You can install only Laravel Debugbar devtool with:

llum debugbar

idehelper

You can install only Laravel-ide-helper devtool with:

llum idehelper

sqlite

Once you've installed a new laravel project use sqlite command to active sqlite

laravel new larapp
cd larapp
llum sqlite
File database/database.sqlite created successfully
.env file updated successfully

And sqlite is ready to go:

php artisan migrate 
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table

provider

Add a provider to config/app.php file:

llum provider Acacha\AdminLTETemplateLaravel\Providers\AdminLTETemplateServiceProvider::class

alias

Add an alias/Facade to config/app.php file:

llum alias Socialite Laravel\Socialite\Facades\Socialite::class

serve

Similar to php artisan serve but some enhacements:

  • First tyry to use port 8000 but if is already in use (in mi case so many times this occurs because Laravel homestead is up) then tries with following port numbers (8001, 8002, 8003)
  • If sensible-browser command is available then starts browser
llum serve
Running php artisan serve --port=8002
Opening http://localhost:8002 with default browser

migrate

Runs php artisan migrate

llum migrate

Packagist

https://packagist.org/packages/acacha/admin

Troubleshooting

GNU sed on MAC OS

Acacha llum need GNU sed to work so replace BSD sed with GNU sed using:

brew install gnu-sed --with-default-names

Check you version of sed with:

man sed

sed GNU version path is:

$ which sed
/usr/local/bin/sed

Instead of default path of BSD sed (installed by default on MAC OS):

/usr/bin/sed

More info at mdbootstrap/adminlte-laravel#58

Working notes

Update value in .env file with sed:

sed -i '/^MAIL_DRIVER=/s/=.*/=log/' .env

Comment database entries:

sed -i 's/^DB_/#DB_/g' .env

Add sqlite before database entries:

sed 's/.*DB_HOST.*/DB_CONNECTION=sqlite\n&/' .env

Artisan serve always working:

$continue = true;
$port = 8000;
do {
    echo "Testing with port: ". $port;
    if (check_port($port)) {
        passthru('php artisan serve --port=' . $port);
        $continue=false;
    }
    $port++;
} while ($continue);

echo "END";
function check_port($port,$host = '127.0.0.1') {
    $fp = @fsockopen($host, $port,$errno, $errstr, 5);
    if (!$fp) {
        return true;
    } else {
        // port is open and available
        return false;
        fclose($fp);
    }
}

Solution with php preg_replace function:

file_put_contents(base_path('.env'), preg_replace("/(MAIL_DRIVER)=(.*)/", "$1=log", file_get_contents(base_path('.env'))));

Insert provider in config/app.php file:

sed '/.*#llum_providers.*/a \\tBarryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider::class,\n' config/app.php

llum's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

llum's Issues

provider commands doesn't support \ in provider name

If I execute:

llum provider Prettus\Repository\Providers\RepositoryServiceProvider::class

Then;

 php artisan make:entity Shit
                                                                        
  [Symfony\Component\Debug\Exception\FatalThrowableError]                
  Class 'PrettusRepositoryProvidersRepositoryServiceProvider' not found  

So scape \

Error

PHP Fatal error: Uncaught TypeError: Argument 1 passed to Acacha\Llum\Console\BootCommand::serve() must implement interface Symfony\Component\Console\Input\InputInterface, none given, called in /home/sergi/.composer/vendor/acacha/llum/src/Console/BootCommand.php on line 50 and defined in /home/sergi/.composer/vendor/acacha/llum/src/Traits/Serve.php:21
Stack trace:
#0 /home/sergi/.composer/vendor/acacha/llum/src/Console/BootCommand.php(50): Acacha\Llum\Console\BootCommand->serve()
#1 /home/sergi/.composer/vendor/acacha/llum/src/Console/LlumCommand.php(331): Acacha\Llum\Console\BootCommand->boot(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#2 /home/sergi/.composer/vendor/symfony/console/Command/Command.php(256): Acacha\Llum\Console\LlumCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 /home/sergi/.composer/vendor/symfony/console/Application.php(820): Symfony\Component\Console\Command\Command in /home/sergi/.composer/vendor/acacha/llum/src/Traits/Serve.php on line 21

Llum boot does not work without .env file

In Laravel projects cloned from a Github repo .env does not exists. Make llum boot cp .env.example file to .env if .env file does not exists and execute:
$ php artisan key:generate

ide-helper recommends different install method and post-update-cmd missing from composer.json

Instead of adding the service provider in the config/app.php file, add the following code to your app/Providers/AppServiceProvider.php file, within the register() method:

public function register()
{
    if($this->app->environment() !== 'production') {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}

lumm also does not add the post-update-cmd lines to composer.json:

You can configure your composer.json to do this after each commit:

"scripts":{
    "post-update-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postUpdate",
        "php artisan ide-helper:generate",
        "php artisan ide-helper:meta",
        "php artisan optimize"
    ]
},

Problems to run version 2.

When I run every llum command I received

PHP Fatal error:  Uncaught Error: Class 'Illuminate\Config\Repository' not found in /Users/myUser/.composer/vendor/acacha/llum/src/Console/LlumCommand.php:256
Stack trace:
#0 /Users/myUser/.composer/vendor/acacha/llum/src/Console/LlumCommand.php(114): Acacha\Llum\Console\LlumCommand->obtainConfig()
#1 /Users/myUser/.composer/vendor/acacha/llum/llum(20): Acacha\Llum\Console\LlumCommand->__construct()
#2 {main}
  thrown in /Users/myUser/.composer/vendor/acacha/llum/src/Console/LlumCommand.php on line 256

Fatal error: Uncaught Error: Class 'Illuminate\Config\Repository' not found in /Users/myUser/.composer/vendor/acacha/llum/src/Console/LlumCommand.php:256
Stack trace:
#0 /Users/myUser/.composer/vendor/acacha/llum/src/Console/LlumCommand.php(114): Acacha\Llum\Console\LlumCommand->obtainConfig()
#1 /Users/myUser/.composer/vendor/acacha/llum/llum(20): Acacha\Llum\Console\LlumCommand->__construct()
#2 {main}
  thrown in /Users/myUser/.composer/vendor/acacha/llum/src/Console/LlumCommand.php on line 256

Add mysql:user command

Create a user credentials an database in mysql using debian-sys-maint user (file /etc/mysql/debian.cnf root permissions needed) using .env data

Service Providers and Aliases set multiple times if run again after error

I've noticed that llum adds the Service Providers and Aliases in config/app.php multiple times if you have an error (and thus the installation failed) and then run it again.

I was having an error with composer when running PHP 7.0.8 from MAMP. After switching to 5.6 for cli it managed to get through but then I got errors because of the duplicate SPs and Aliases.

New command llum login

Login with default user (the same user used with command adminlte:admin). Use Laravel dusk to Login?

How can i fix this

Failed to listen on 127.0.0.1:80 (reason: Address already in use) how can i fixed this please help

Problem Installing Acacha/llum

I'm try to install Acacha/llum with Laravel 5.4. i'm use Valet how http/mysql service.
I' fixed removing valet and install llum then install valet.

The errors is on this packages:

Problem 1
- Conclusion: don't install acacha/llum 1.1.12
- Conclusion: don't install acacha/llum 1.1.11
- Conclusion: don't install acacha/llum 1.1.10
- Conclusion: don't install acacha/llum 1.1.8
- Conclusion: don't install acacha/llum 1.1.7
- Conclusion: don't install acacha/llum 1.1.6
- Conclusion: don't install acacha/llum 1.1.5
- Conclusion: don't install acacha/llum 1.1.4
- Conclusion: don't install acacha/llum 1.1.3
- Conclusion: don't install acacha/llum 1.1.2
- Conclusion: don't install acacha/llum 1.1.1
- Conclusion: remove illuminate/contracts v5.4.19
- Installation request for tightenco/collect (locked at v5.4.20) -> satisfiable by tightenco/collect[v5.4.20].
- Installation request for symfony/console (locked at v3.2.8) -> satisfiable by symfony/console[v3.2.8].
- Installation request for acacha/llum ^1.1 -> satisfiable by acacha/llum[1.1, 1.1.1, 1.1.10, 1.1.11, 1.1.12, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.1.7, 1.1.8].
- Conclusion: don't install illuminate/contracts v5.4.19
- acacha/llum 1.1 requires illuminate/config ~5.3.0 -> satisfiable by illuminate/config[v5.3.0, v5.3.16, v5.3.23, v5.3.4].
- illuminate/config v5.3.0 requires illuminate/contracts 5.3.* -> satisfiable by illuminate/contracts[v5.3.0, v5.3.16, v5.3.23, v5.3.4].
- illuminate/config v5.3.16 requires illuminate/contracts 5.3.* -> satisfiable by illuminate/contracts[v5.3.0, v5.3.16, v5.3.23, v5.3.4].
- illuminate/config v5.3.23 requires illuminate/contracts 5.3.* -> satisfiable by illuminate/contracts[v5.3.0, v5.3.16, v5.3.23, v5.3.4].
- illuminate/config v5.3.4 requires illuminate/contracts 5.3.* -> satisfiable by illuminate/contracts[v5.3.0, v5.3.16, v5.3.23, v5.3.4].
- Can only install one of: illuminate/contracts[v5.3.0, v5.4.19].
- Can only install one of: illuminate/contracts[v5.3.16, v5.4.19].
- Can only install one of: illuminate/contracts[v5.3.23, v5.4.19].
- Can only install one of: illuminate/contracts[v5.3.4, v5.4.19].
- Installation request for illuminate/contracts (locked at v5.4.19) -> satisfiable by illuminate/contracts[v5.4.19].

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.