spawn A small command-line tool to quickly tryout a Swift Package Manager (SPM) package locally.
As of Xcode 11, this has been sherlock'ed by Xcode 11 Package support :), as in from Xcode 11 onwards, Xcode will automatically resolve package dependencies and open Xcode project for you, no 3rd party tool needed. But I will keep this tool as learning purpose.
Its job is to check if current repo has any Package.swift and resolve dependencies and then open the Xcode for you.
$ spawn
Completed resolution in 0.22s
📦 ... Everything is already up-to-date
🛠... generated: ./spawn.xcodeproj
📂 ... opening updated Xcode project
✅ all done!NOTE: you might want to close Xcode to have the xed . taking into effect, or chose Revert option from Xcode alert.
When you want to try out or to edit a SPM package in Xcode, or after adding any new .package under SPM's package manifest file; you need to either run swift package update or swift package generate-xcodeproj and reload Xcode again.
This small wrapper aims to automate that process.
tldr; before:
$ git clone https://github.com/vinhnx/DictionaryNestedSubscript # clone any Swift Package Manager project
$ cd DictionaryNestedSubscript # change directory to newly cloned repo
$ swift package update # update or resolve package dependencies
$ swift package generate-xcodeproj # generate a .xcodeproj to edit on Xcode
$ xed . # open generated .xcodeproj automaticallyafter:
$ git clone https://github.com/vinhnx/DictionaryNestedSubscript # clone any Swift Package Manager project
$ cd DictionaryNestedSubscript # change directory to newly cloned repo
$ spawnTODO: I will be looking at the way to automate cloning from remote repo in the future, for example:
$ spawn https://github.com/vinhnx/DictionaryNestedSubscript # not yet workingOn any Swift package directory, after git clone:
$ spawnYou can use spawn as replacement for Vapor's vapor xcode -y command
before:
$ vapor xcode -yafter:
$ spawn🆕 swiftbrew
"A package manager that installs prebuilt Swift command line tool packages, or Homebrew for Swift packages."
$ swift brew install vinhnx/spawn
$ brew tap vinhnx/homebrew-formulae
$ brew install spawnor
$ brew install vinhnx/homebrew-formulae/spawn$ mint install vinhnx/spawn$ marathon install vinhnx/spawnMake
$ git clone https://github.com/vinhnx/spawn.git
$ cd spawn
$ makeSwift Package Manager
$ git clone https://github.com/vinhnx/spawn.git
$ cd spawn
$ swift build -c release
$ cp -f .build/release/spawn /usr/local/bin/spawnIf you like this tool, checkout my vintage, it's a tool to check for any outdated packages.
Combo:
$ vintage && spawn # vintage: check for any outdated packages, spawn: generate and update packages for youI hope you like it! :)
Feel free to contact me on Twitter for discussions, news & announcements & other projects. 🚀