Add carton package cmd (#96)
* Ignore generate-xcodeproj artifact * Add carton package command which proxies to swift-package in the selected toolchain
This commit is contained in:
parent
6d71bdfa0c
commit
86c9998a32
|
@ -40,7 +40,7 @@ playground.xcworkspace
|
|||
# Packages/
|
||||
# Package.pins
|
||||
# Package.resolved
|
||||
# *.xcodeproj
|
||||
*.xcodeproj
|
||||
#
|
||||
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
|
||||
# hence it is not needed unless you have added a package configuration file to your project
|
||||
|
|
|
@ -277,4 +277,10 @@ public final class Toolchain {
|
|||
try ProcessRunner(initArgs, terminal)
|
||||
.waitUntilFinished()
|
||||
}
|
||||
|
||||
public func runPackage(_ arguments: [String]) throws {
|
||||
let args = [swiftPath.pathString, "package"] + arguments
|
||||
try ProcessRunner(args, terminal)
|
||||
.waitUntilFinished()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,6 @@ struct Carton: ParsableCommand {
|
|||
static let configuration = CommandConfiguration(
|
||||
abstract: "📦 Watcher, bundler, and test runner for your SwiftWasm apps.",
|
||||
version: cartonVersion,
|
||||
subcommands: [Init.self, Dev.self, SDK.self, Test.self]
|
||||
subcommands: [Init.self, Dev.self, SDK.self, Test.self, Package.self]
|
||||
)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
// Copyright 2020 Carton contributors
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import ArgumentParser
|
||||
import SwiftToolchain
|
||||
import TSCBasic
|
||||
|
||||
/// Proxy swift-package command to locally pinned toolchain version.
|
||||
struct Package: ParsableCommand {
|
||||
static let configuration = CommandConfiguration(abstract: """
|
||||
Perform operations on Swift packages.
|
||||
""")
|
||||
|
||||
@Argument(wrappedValue: [], parsing: .remaining)
|
||||
var arguments: [String]
|
||||
|
||||
func run() throws {
|
||||
guard let terminal = TerminalController(stream: stdoutStream)
|
||||
else { fatalError("failed to create an instance of `TerminalController`") }
|
||||
let toolchain = try Toolchain(localFileSystem, terminal)
|
||||
try toolchain.runPackage(arguments)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue