Swiftpack.co - tuist/xcbeautify as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by tuist.
tuist/xcbeautify 0.18.0
A little beautifier tool for xcodebuild
⭐️ 687
🕓 1 week ago
.package(url: "https://github.com/tuist/xcbeautify.git", from: "0.18.0")

xcbeautify

Build Status Latest Release License

xcbeautify is a little beautifier tool for xcodebuild.

Similar to xcpretty, but faster.

Features

  • ☑ 2x faster than xcpretty.
  • ☑ Human-friendly and colored output.
  • ☑ Supports the new build system's output.
  • ☑ Supports Xcode's parallel testing output.
  • ☑ Supports formatting Swift Package Manager output.
  • ☑ Supports formatting Bazel output.
  • ☑ Supports generating JUnit reports.
  • ☑ Supports macOS & Linux.
  • ☑ Written in Swift: xcbeautify compiles to a static binary which you can bring anywhere. This also means less Ruby-dependant in your development environment and CI.

Fun fact

xcbeautify uses itself to format its CI build logs.

Installation

If you use macOS 10.14.3 or earlier, install Swift 5 Runtime Support for Command Line Tools first:

brew cask install thii/swift-runtime/swift-runtime

Homebrew

brew install xcbeautify

Mint

mint install tuist/xcbeautify

CocoaPods

pod 'xcbeautify'

The xcbeautify binary will be installed at Pods/xcbeautify/xcbeautify

Swift Package Manager

Create a directory in the same location as the xcodeproj file, for example BuildTools.
In that directory, create a Package.swift file with the following contents.
In addition, add an empty file named Empty.swift to the same location.

// swift-tools-version: 5.6
import PackageDescription

let package = Package(
    name: "BuildTools",
    platforms: [.macOS(.v10_11)],
    dependencies: [
      .package(url: "https://github.com/tuist/xcbeautify", from: "0.13.0"),
    ],
    targets: [
      .target(name: "BuildTools", path: "")
    ]
)

Enter this command to execute.

swift run -c release --package-path ./BuildTools xcbeautify

Build from source

git clone https://github.com/tuist/xcbeautify.git
cd xcbeautify
make install

Usage

xcodebuild [flags] | xcbeautify

If you want xcbeautify to exit with the same status code as xcodebuild (e.g. on a CI):

set -o pipefail && xcodebuild [flags] | xcbeautify

For parallel and concurrent destination testing, it helps to use unbuffered I/O for stdout and to redirect stderr to stdout.

NSUnbufferedIO=YES xcodebuild [flags] 2>&1 | xcbeautify
swift test [flags] 2>&1 | xcbeautify

Parse Bazel's building and testing output:

set -o pipefail && bazel build //path/to/package:target 2>&1 | xcbeautify
set -o pipefail && bazel test //path/to/package:target 2>&1 | xcbeautify

Future work

  • ☐ Write more tests

Development

Generate Xcode project:

make xcode

Build with Bazel:

bazel build //Sources/xcbeautify

Release a new version, e.g. x.y.z:

make release version=x.y.z

Contributing

Please send a PR!

License

MIT

GitHub

link
Stars: 687
Last commit: 1 week ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

0.18.0
1 week ago

What's Changed

New Contributors

Full Changelog: https://github.com/tuist/xcbeautify/compare/0.17.0...0.18.0

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics