All Projects → tighten → Lambo

tighten / Lambo

Licence: mit
Quick new application creation with Laravel and Valet

Projects that are alternatives of or similar to Lambo

Puppet Nginx
Puppet Module to manage NGINX on various UNIXes
Stars: ✭ 462 (-1.49%)
Mutual labels:  hacktoberfest
Thelounge
💬 ‎ Modern, responsive, cross-platform, self-hosted web IRC client
Stars: ✭ 4,618 (+884.65%)
Mutual labels:  hacktoberfest
Node Worker Nodes
A node.js library to run cpu-intensive tasks in a separate processes and not block the event loop.
Stars: ✭ 468 (-0.21%)
Mutual labels:  hacktoberfest
Poliastro
poliastro - 🚀 Astrodynamics in Python
Stars: ✭ 462 (-1.49%)
Mutual labels:  hacktoberfest
Typescript Language Server
TypeScript & JavaScript Language Server
Stars: ✭ 462 (-1.49%)
Mutual labels:  hacktoberfest
Wp Cli
⚙️ WP-CLI framework
Stars: ✭ 4,474 (+853.94%)
Mutual labels:  hacktoberfest
Net6 Mobile Samples
Xamarin .NET 6 *early* preview. Not for production use.
Stars: ✭ 445 (-5.12%)
Mutual labels:  hacktoberfest
Fheroes2
Free implementation of Heroes of Might and Magic II game engine
Stars: ✭ 471 (+0.43%)
Mutual labels:  hacktoberfest
Px4 Autopilot
PX4 Autopilot Software
Stars: ✭ 5,090 (+985.29%)
Mutual labels:  hacktoberfest
Traccar Web
Traccar GPS Tracking System
Stars: ✭ 465 (-0.85%)
Mutual labels:  hacktoberfest
Polaris
A cross-platform, minimalist web framework for PowerShell
Stars: ✭ 464 (-1.07%)
Mutual labels:  hacktoberfest
Json Viewer
A JSON viewer plugin for Notepad++. Displays the selected JSON string in a tree view.
Stars: ✭ 464 (-1.07%)
Mutual labels:  hacktoberfest
Betaflight
Open Source Flight Controller Firmware
Stars: ✭ 4,986 (+963.11%)
Mutual labels:  hacktoberfest
Bot
The community bot for the Python Discord community
Stars: ✭ 460 (-1.92%)
Mutual labels:  hacktoberfest
Got
Got: Simple golang package and CLI tool to download large files faster 🏃 than cURL and Wget!
Stars: ✭ 469 (+0%)
Mutual labels:  hacktoberfest
Example Ios Apps
 A curated list of Open Source example iOS apps developed in Swift. An amazing list for people who are beginners and learning ios development and for ios developers who need any example app or feature.
Stars: ✭ 461 (-1.71%)
Mutual labels:  hacktoberfest
Laravel Medialibrary
Associate files with Eloquent models
Stars: ✭ 4,743 (+911.3%)
Mutual labels:  hacktoberfest
Matestack Ui Core
Matestack enables you to create sophisticated, reactive UIs in pure Ruby, without touching JavaScript and HTML. You end up writing 50% less code while increasing productivity, maintainability and developer happiness.
Stars: ✭ 469 (+0%)
Mutual labels:  hacktoberfest
Luv
Bare libuv bindings for lua
Stars: ✭ 466 (-0.64%)
Mutual labels:  hacktoberfest
Default
Modern interface to UserDefaults + Codable support
Stars: ✭ 466 (-0.64%)
Mutual labels:  hacktoberfest

Lambo logo

Run tests

Super-powered laravel new for Laravel and Valet

Lambo is a command-line tool that replaces the Laravel installer and wraps up the most common tasks you might take when creating a Laravel app: opening it in your editor and your browser, initialize a git repository, tweak your .env and .env.example, and more.

Requirements

Installation

composer global require tightenco/lambo:^1.0

Upgrading

composer global update tightenco/lambo

Usage

Make sure ~/.composer/vendor/bin is in your terminal's path.

cd ~/Sites
lambo new myNextProject

What exactly does it do?

  • laravel new $PROJECTNAME
  • Initialize a git repo, add all of the files, and, after some changes below, make a commit with the text "Initial commit."
  • Replace the .env (and .env.example) database credentials with the default macOS MySQL credentials: database of $PROJECTNAME, user root, and empty password
  • Replace the .env (and .env.example) APP_URL with $PROJECTNAME.$YOURVALETTLD
  • Generate an app key
  • Open the project in your favorite editor
  • Open $PROJECTNAME.$YOURVALETTLD in your browser

Note: If your $PROJECTNAME has dashes (-) in it, they will be replaced with underscores (_) in the database name.

There are also a few optional behaviors based on the parameters you pass (or define in your config file), including creating a database, migrating, installing Jetstream, running Valet Link and/or Secure, and running a custom bash script of your definition after the fact.

Customizing Lambo

While the default actions Lambo provides are great, most users will want to customize at least a few of the steps. Thankfully, Lambo is built to be customized!

There are two ways to customize your usage of Lambo: command-line arguments and a config file.

Most users will want to set their preferred configuration options once and then never think about it again. That's best solved by creating a config file.

But if you find yourself needing to change the way you interact with Lambo on a project-by-project basis, you may also want to use the command-line parameters to customize Lambo when you're using it.

Creating a config file

You can create a config file at ~/.lambo/config rather than pass the same arguments each time you create a new project.

The following command creates the file, if it doesn't exist, and edits it:

lambo edit-config

The config file contains the configuration parameters you can customize, and will be read on every usage of Lambo.

Using command-line parameters

Any command-line parameters passed in will override Lambo's defaults and your config settings. See a full list of the parameters you can pass in.

Commands

  • edit-config edits your config file (and creates one if it doesn't exist)

    lambo edit-config
    
  • edit-after edits your "after" file (and creates one if it doesn't exist)

    lambo edit-after
    

After File

You can create an after file at ~/.lambo/after to run additional commands after you create a new project.

The following command creates the file, if it doesn't exist, and edits it:

lambo edit-after

The after file is interpreted as a bash script, so you can include any commands here such as installing additional composer dependencies...

# Install additional composer dependencies as you would from the command line.
echo "Installing Composer Dependencies"
composer require tightenco/mailthief tightenco/quicksand

...or copying additional files to your new project.

# To copy standard files to new lambo project place them in ~/.lambo/includes directory.
echo "Copying Include Files"
cp -R ~/.lambo/includes/ $PROJECTPATH

You also have access to variables from your config file such as $PROJECTPATH and $CODEEDITOR.

Configurable parameters

List coming soon. For now, just run lambo help and it'll give you the full list.


For contributors:

Process for release

If you're working with us and are assigned to push a release, here's the easiest process:

  1. Visit the Lambo Releases page; figure out what your next tag will be (increase the third number if it's a patch or fix; increase the second number if it's adding features)

  2. On your local machine, pull down the latest version of main (git checkout main && git pull)

  3. Build for the version you're targeting (./lambo app:build)

  4. Run the build once to make sure it works (./builds/lambo)

  5. Commit your build and push it up

  6. Draft a new release with both the tag version and release title of your tag (e.g. v1.5.1)

  7. Set the body to be a bullet-point list with simple descriptions for each of the PRs merged, as well as the PR link in parentheses at the end. For example:

    - Add a superpower (#92)

  8. Hit Publish release

  9. Profit

Notes for future development

  • All new configuration keys must be added to the $newConfiguration property in UpgradeSavedConfiguration
  • All removed or deprecated configuration keys must be added to the $removedConfigurationKeys property in UpgradeSavedConfiguration
  • Any time configuration keys are changed, the $configurationVersion property in UpgradeSavedConfiguration needs to be incremented
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].