Giter Site home page Giter Site logo

intrepidpursuits / homebrew-liftoff Goto Github PK

View Code? Open in Web Editor NEW

This project forked from liftoffcli/liftoff

0.0 30.0 0.0 23.68 MB

CLI for creating and configuring new Xcode projects

License: MIT License

Ruby 94.89% Shell 2.50% Objective-C 2.00% Swift 0.61%

homebrew-liftoff's Introduction

Logo

Liftoff is a CLI for creating and configuring iOS Xcode projects.

Installation

brew tap thoughtbot/formulae
brew install liftoff

Liftoff was previously distributed via RubyGems. This method of installation has been deprecated, and all new releases will be done through Homebrew. If you are migrating from RubyGems, you should uninstall the gem version to avoid confusion in the future.

Usage

Run this command in a directory

liftoff

View the documentation:

man liftoff
man liftoffrc

When Liftoff finds an existing project in the current directory, it will perform the following configurations:

  • Set the indentation level (In spaces, 4 by default).
  • Treat warnings as errors for release schemes.
  • Enable warnings at the project level, check liftoffrc(5) for a list of the warnings.
  • Turn on Static Analysis for the project.
  • Add a build phase shell script that turns "TODO:" and "FIXME:" into warnings.
  • Add a build phase shell script that sets the version to the latest Git tag, and the build number to the number of commits on master.
  • Perform arbitrary configuration as defined in the user's liftoffrc. See liftoffrc(5) for more information.
  • Add default .gitignore and .gitattributes files.
  • Initialize a new git repo and create an initial commit (if needed).

When you run Liftoff in a directory without a project file, it will create a new directory structure for a project, and generate a well-configured Xcode project in that subdirectory:

$ cd ~/dev/
$ liftoff
Project name? MyCoolApp
Company name? thoughtbot
Author name? Gordon Fontenot
Prefix? MCA
Creating MyCoolApp
Creating MyCoolApp/Categories
Creating MyCoolApp/Classes
[snip]

Liftoff will generate a brand new project for you based on the provided values. Generating projects via Liftoff has these advantages:

  • Minimized time reorganizing the repository
  • Sets up git repository automatically
  • Defined group structure
  • Matching directory structure on disk (linked to the proper group)
  • Easily customizable
  • Configurations can be shared easily

Configuration

You can use a liftoffrc file to speed up your workflow by defining your preferred configuration for Liftoff.

Liftoff will look for config files in the local directory and then the home directory. If it can't find a key in ./.liftoffrc or ~/.liftoffrc, it will use the default values. Check liftoffrc(5) for more information:

man liftoffrc

You can see the current liftoffrc on master, but be aware that the keys might not match up completely with the current released version.

Directory Structure and Templates

One of the most powerful things that Liftoff can do for you is let you quickly and easily customize your project's group and directory structure. By defining a YAML dictionary inside your local or user .liftoffrc, you can completely dictate the structure that will be created. This includes group structure, order, placement of template files, etc. And remember that these groups will be mimicked on disk as well.

You can also create your own templates, or override the defaults by adding them to ~/.liftoff/templates or ./.liftoff/templates. Liftoff will use the same fallback order when looking for templates as it does for the .liftoffrc.

These files (and filenames) will be parsed with ERB, using the values provided at run time (or the default values from a liftoffrc).

Contributing

See the CONTRIBUTING document. Thank you, contributors!

Need Help?

We offer 1-on-1 coaching. We can help you with functional programming in Swift, get started writing unit tests, and convert from Objective-C to Swift. Get in touch.

License

Liftoff is Copyright (c) 2015 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.

About

thoughtbot

Liftoff is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.

We love open source software! See our other projects or look at our product case studies and hire us to help build your iOS app.

homebrew-liftoff's People

Contributors

gfontenot avatar hyperspacemark avatar bitcrumb avatar jpsim avatar mokagio avatar jakecraige avatar keith avatar matt-oakes avatar tonyd256 avatar cfdrake avatar fabiopelosin avatar netbe avatar gabebw avatar jferris avatar jsteiner avatar imkevinxu avatar mikaelbartlett avatar attomos avatar captainron avatar

Watchers

Glenn R. Martin avatar  avatar Ying Quan Tan avatar James Cloos avatar Evan Denerley avatar Maximilian Litteral avatar Patrick Butkiewicz avatar Intrepid Pursuits avatar Tim Morrill avatar Justin Fyles avatar Kelvin Long avatar  avatar David Brooks avatar xchuang avatar Colin Tan avatar logan avatar John McCormack avatar Peter Farlow avatar Jalil Kennedy avatar S. Wingchi Wong avatar Nick Servidio avatar Christopher Shea avatar Ricky Chen avatar Ankit Sharma avatar Kiley avatar Justine Kay avatar Leo Espinal avatar  avatar Anna Kassaraba avatar  avatar

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.