id = "liftoff" name = "Liftoff" homepage = "https://github.com/liftoffcli/liftoff" description = "Liftoff is a CLI for creating and configuring iOS Xcode projects." executables = ["liftoff"] platforms = ["macos"] [dotfiles] # liftoffrc(5), the FILES section, names one file: ~/.liftoffrc. The README # says the same from the other end — "If it can't find a key in ./.liftoffrc or # ~/.liftoffrc, it will use the default values" — so the home-directory copy is # the user-level half of a per-project pair. # # The same man page documents a templates directory in both scopes, # .liftoff/templates/ beside the project and ~/.liftoff/templates/ for the # user; the README's "Templates" section tells you to put your own copies in # ~/.liftoff/templates. Both are literal dotfiles in the home directory. # # macOS only: Liftoff configures Xcode projects, and its installation # instructions are a Homebrew tap. paths = [ "~/.liftoffrc", "~/.liftoff/templates/", ] # A YAML file of project defaults — author, company, prefix, indentation, # warnings, deployment target — plus text templates. Nothing signs or # authenticates anything. secret = [] # liftoff reads the rc file once per run and exits. side_effect = false # No machine_lines: `author`, `company` and `company_identifier` are the # user's own identity rather than one machine's, and the rest is project # configuration meant to be identical everywhere. [commands] format = 1 label = "Create an Xcode project" description = "Generate a new iOS Xcode project, or configure the one in the current directory, with the project name, company, author, prefix and identifier given up front. Per-feature on/off switches are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.source]] id = "man" kind = "manual" url = "https://github.com/liftoffcli/liftoff/blob/master/man/liftoff.1" revision = "2014-03-03" evidence = """ liftoff [--version] [--help] [--dependency-managers NAMES] [--no-open] [--template TEMPLATE_NAME] [--indentation N] [--name PROJECT_NAME] [--company COMPANY_NAME] [--author AUTHOR_NAME] [--prefix PREFIX] [--identifier IDENTIFIER] [--test-target-name TEST_TARGET_NAME] [PATH] --dependency-managers NAMES specify the dependency managers to use for the project --no-open Don't open Xcode after project generation --template TEMPLATE_NAME Use the specified template structure -t, --indentation N set the indentation width in spaces -n, --name PROJECT_NAME set the project name -c, --company COMPANY_NAME set the company name -a, --author AUTHOR_NAME set the author name. -p, --prefix PREFIX set the project's prefix -i, --identifier IDENTIFIER set the company identifier (com.mycompany). --test-target-name TEST_TARGET_NAME set the name for the test target If you pass a custom path on the command line, liftoff will use that path as the root folder for the project generation. """ [[commands.field]] id = "path" label = "Project root folder" description = "Defaults to a folder named after the project." type = "path" position = 0 path = { kind = "directory", role = "output", must_exist = false } sources = ["man"] [[commands.field]] id = "name" label = "Project name" type = "string" option = ["--name", "-n"] sources = ["man"] [[commands.field]] id = "company" label = "Company name" type = "string" option = ["--company", "-c"] sources = ["man"] [[commands.field]] id = "author" label = "Author name" type = "string" option = ["--author", "-a"] sources = ["man"] [[commands.field]] id = "prefix" label = "Class prefix" type = "string" option = ["--prefix", "-p"] sources = ["man"] [[commands.field]] id = "identifier" label = "Company identifier" description = "Reverse-DNS style, for example com.mycompany." type = "string" option = ["--identifier", "-i"] sources = ["man"] [[commands.field]] id = "indentation" label = "Indentation width" type = "integer" option = ["--indentation", "-t"] sources = ["man"] [[commands.field]] id = "template" label = "Template" type = "string" option = ["--template"] sources = ["man"] [[commands.field]] id = "test_target_name" label = "Test target name" type = "string" option = ["--test-target-name"] sources = ["man"] [[commands.field]] id = "no_open" label = "Do not open Xcode" type = "boolean" option = ["--no-open"] sources = ["man"] [[commands.task]] id = "new_project" label = "New project" fields = ["name", "company", "author", "prefix", "identifier", "no_open", "path"] required = ["name"] [[commands.group]] id = "basic" label = "Basic" fields = ["name", "company", "author", "prefix", "identifier", "path"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["indentation", "template", "test_target_name", "no_open"]