A CLI too powered by Swift to provision environments using an up.toml manifest file

Overview

tuist-up

tuist-up

tuist up was originally a Tuist built-in command to provision environments by reading the requirements in a manifest file Setup.swift. Although convenient for users, it was removed in Tuist 2.0 because it was distant from the project's core domain. Moreover, errors bubbling up from underlying commands made users believe they were Tuist bugs, and therefore they added up to the triaging and maintenance work.

This repository contains a Swift-powered CLI that provides the same functionality to ease the adoption of Tuist 2.0 for those users that were using Setup.swift with Tuist 1.x. Note that this tool uses a tuist.json instead of a manifest written in Swift.

Plugins 2.0

Tuist's long-term plan is to evolve our plugins architecture to be able to distribute and install CLI utilities like tuist-up directly from Tuist like Cargo does with Crates.

# The CLI below is orientative and therefore is subject to change.
tuist install tuist/tuist-up
tuist up

Run tuist-up

You can run tuist-up through Mint:

mint run tuist/tuist-up

up.json specification

[
  {
    "name": "Install Pods",
    "meet": [
      "bundle",
      "exec",
      "pod",
      "install"
    ],
    "is_met": [
      "diff",
      "Podfile.lock", 
      "Pods/Manifest.lock"
    ]
  },
  {
    "name": "Ensure the right version of Xcode is used",
    "meet": [
      "echo", 
      "'Install it through the App Store'"
    ],
    "is_met": [
      "scripts/check_xcode_version.sh"
    ]
  }
]
You might also like...
A silly CLI for replacing macosx.internal SDK settings in .xcodeproj files with macosx

fix-macos-internal-sdk A silly CLI for replacing macosx.internal SDK settings in .xcodeproj files with macosx.

An extremely simple CLI tool that was created to diagnose and further understand an issue in DriverKit causing kIOHIDOptionsTypeSeizeDevice to behave incorrectly when used in DriverKit system extensions.

IOKitHIDKeyboardTester This tool is NOT useful to, or intended for general users. IOKitHIDKeyboardTester is an extremely simple (one-file!) CLI tool t

Phiole - Allow to write or read from standards stream or files for script or CLI application

No longer maintained! Phiole - Φole Simple object to wrap three NSFileHandle: 'output', 'error' to write and 'input' to read There is of course a defa

A CLI to Alcatraz, the Xcode package manager.
A CLI to Alcatraz, the Xcode package manager.

Azkaban This project is deprecated in favor of Editor Extensions support in Xcode 8+. A CLI to Alcatraz, the Xcode package manager. Usage Install a pl

ipatool is a command line tool that allows you to search for iOS apps on the App Store and download a copy of the app package, known as an ipa file.
ipatool is a command line tool that allows you to search for iOS apps on the App Store and download a copy of the app package, known as an ipa file.

ipatool is a command line tool that allows you to search for iOS apps on the App Store and download a copy of the app package, known as an ipa file.

A command-line tool to sort Xcode's `.xcodeproj` file.

XcodeProjSorter A command-line tool to sort Xcode's .xcodeproj file. It sorts following sessions: PBXGroup PBXResourcesBuildPhase PBXSourcesBuildPhase

A command line tool to parse pricing from a pdf and generate an updated csv file for House Call Pro

A command line tool to parse pricing from a pdf and generate an updated csv file for House Call Pro

A command line application to create 3D models based on photogrametry using the macOS Monterey RealityCapture API.

PhotogrametryTool Generate 3D objects from images using RealityKit Object Capture. This project is a fork of the HelloPhotogrametry application by App

Mac App Store: Embedding a Command Line tool using paths as arguments

Mac App Store: Embedding a Command Line tool using paths as arguments Code snippets to embed a Command Line tool using paths as arguments on the Mac A

Comments
  • Running mint run tuist/tuist-up fails

    Running mint run tuist/tuist-up fails

    Hi, running command mint run tuist/tuist-up fails with error Failed to build tuist-up master with SPM. I have local 3.12.1 version of tuist installed.

    Device: MacBook Pro 2021 Apple M1 Pro Memory 16 GB macOS Ventura 13.0

    Xcode 14.1

    Tuist 3.12.1

    Full output:

    % mint run tuist/tuist-up
    🌱 Finding latest version of tuist-up
    🌱 Cloning tuist-up master
    🌱 Resolving package
    🌱 Building package
    Building for production...
    [0/3] Compiling TSCclibc process.c
    [1/3] Compiling TSCclibc libc.c
    remark: Incremental compilation has been disabled: it is not compatible with whole module optimizationremark: Incremental compilation has been disabled: it is not compatible with whole module optimization[3/5] Compiling TSCLibc libc.swift
    remark: Incremental compilation has been disabled: it is not compatible with whole module optimization[4/6] Compiling ColorizeSwift ColorizeSwift.swift
    [5/6] Compiling TSCBasic Await.swift
    remark: Incremental compilation has been disabled: it is not compatible with whole module optimization[6/7] Compiling TSCUtility Archiver.swift
    /private/var/folders/x2/6zng0z5169z73htkwyzgs3bw0000gn/T/mint/github.com_tuist_tuist-up/.build/checkouts/swift-tools-support-core/Sources/TSCUtility/FSWatch.swift:677:15: error: cannot assign value of type 'Thread' to type 'Thread?'
                    self.thread = thread
                                ^
    🌱 Encountered error during "swift build -c release -Xswiftc -target -Xswiftc arm64-apple-macosx13.0". Use --verbose to see full output
    🌱  Failed to build tuist-up master with SPM
    
    opened by wojtek717 1
Owner
Tuist
A tool to bootstrap, maintain, and interact with Xcode projects at any scale.
Tuist
CLI tool for macOS that transcribes speech from the microphone using Apple’s speech recognition API, SFSpeechRecognizer. (help.)

CLI tool for macOS that uses SFSpeechRecognizer to transcribe speech from the microphone. The recognition result will be written to the standard output as JSON string.

Thai Pangsakulyanont 23 Sep 20, 2022
A CLI utility to check or uncheck Open Using Rosetta preference for Apple Silicon macs.

SetArchPrefForURL A CLI utility to "check" or "uncheck" "Open Using Rosetta" preference for Apple Silicon macs. Usage: SetArchPrefForURL <path-to-the-

Tapan Thaker 19 Oct 31, 2022
Swift-cli - Example of building command-line tools in Swift

swift-cli Example of building command-line tools in Swift Step 1: Create CLI wit

Noah Gift 2 Jan 17, 2022
Guaka - Smart and beautiful POSIX compliant CLI framework for Swift.

Guaka - Smart and beautiful POSIX compliant CLI framework for Swift. It helps you create modern and familiar CLI apps in the vein of widely used proje

Omar Abdelhafith 1.1k Dec 24, 2022
A starting point to create CLI utilities with swift

cli tuist template A starting point to create CLI utilities with swift Installation Just create a Tuist folder and a Templates folder inside it. Creat

humdrum 6 May 3, 2022
A Tuist Template to quickly create CLI apps in Swift

macOS CLI Template Motivation I'm writing more and more Swift CLI apps these days. And as I solve more problems with this litte tools, I find that I'm

Diego Freniche 21 Dec 28, 2022
A cli program written in swift (with async/await) that removes the unnecessary parts of xcframeworks.

xctrim A cli program written in swift (with async/await) that removes the unnecessary parts of xcframeworks. Usecase Say you downloaded firebase sdk a

Mustafa Yusuf 32 Jul 18, 2022
A library and CLI Utility to manage NVRAM Stuff, written in Swift.

NVRAMKit A Library and CLI Utility to manage NVRAM Stuff, written in Swift. Library Adding Library to Project Simply add this line to the dependencies

Serena 7 Sep 25, 2022
Snpm - Snippet Manager CLI With Swift

Snippet Manager CLI Usage foo@bar:~$ snpm --help OVERVIEW: Utill for searching s

Gleb Zavyalov 5 Jan 5, 2023
ConcurrentTest - Swift macOS CLI example on how to NOT do concurrent coding

Swift Concurrent Test Open the .xcodeproj file in Xcode, and try running it seve

Thisura Dodangoda 0 Jan 21, 2022