PackageBuilder builds a simple command-line structure by SwiftPM
Recently I created PackageBuilder to build a simple command-line structure easily by SwiftPM. It’s very simple, but it saves a lot your development time if you’d like to create a command line tool like Marathon created by @JohnSundell. This automatic tool is based on his great article. Also, This tool inspired by JohnSundell/SwiftPlate. If you agree with them, I’m sure you’ll like it:)
In its usage, what you have to do is just like this,
$ packagebuilder {PACKAGE_NAME}
$ packagebuilder {PACKAGE_NAME} --path ~/Developer/project
For instance,
$ packagebuilder AwesomePackage
The output is simple.
Executing `swift package init --type executable` at /Users/pixyzehn/Developer/projects/AwesomePackage/
Creating Sources/AwesomePackage...
Creating Sources/AwesomePackageCore...
Creating Tests/AwesomePackageTests...
Deleting original files created by SwiftPM...
Cloning PackageBulder by HTTPS to get files in Templates...
Renaming {PACKAGE_NAME} to AwesomePackage...
Renaming {YOUR_NAME} to Nagasawa Hiroki...
Renaming {THIS_YEAR} to 2017...
Moving files in Templates to a correct position...
Deleting the temp folder...
Executing `swift build` & `swift test --parallel`
Generating xcodeproj...
Enjoy AwesomePackage 🎉
And then, you will get the executable package like this,
.
├── AwesomePackage.xcodeproj
│ ├── AwesomePackageCore_Info.plist
│ ├── AwesomePackageTests_Info.plist
│ ├── project.pbxproj
│ └── xcshareddata
│ └── xcschemes
│ ├── AwesomePackage.xcscheme
│ └── xcschememanagement.plist
├── LICENSE
├── Package.swift
├── README.md
├── Sources
│ ├── AwesomePackage
│ │ └── main.swift
│ └── AwesomePackageCore
│ └── AwesomePackage.swift
└── Tests
├── AwesomePackageTests
│ └── AwesomePackageTests.swift
└── LinuxMain.swift
8 directories, 12 files
The merit of this tool is that you can work on creating a package as soon as you come up with a good idea. Let’s start creating an awesome package by opening xcodeproj
in Xcode!
Great new project generation tool by @pixyzehn - it's like SwiftPlate for Swift Package Manager-based command line tools! 👍 #swiftlang https://t.co/bcNQjME3gn
— John Sundell (@johnsundell) May 18, 2017
Thank you again, @JohnSundell.
Contributions are more than welcome!