File tree Expand file tree Collapse file tree 9 files changed +30
-58
lines changed
Expand file tree Collapse file tree 9 files changed +30
-58
lines changed Original file line number Diff line number Diff line change @@ -77,15 +77,9 @@ struct Install: SwiftlyCommand {
7777 }
7878
7979 mutating func run( _ ctx: SwiftlyCoreContext ) async throws {
80- try validateSwiftly ( ctx)
81-
82- let swiftlyRelease = try await ctx. httpClient. getCurrentSwiftlyRelease ( )
83- let shouldUpdateSwiftly = try swiftlyRelease. swiftlyVersion > SwiftlyCore . version
80+ let versionUpdateReminder = try await validateSwiftly ( ctx)
8481 defer {
85- if shouldUpdateSwiftly {
86- ctx. print ( " A new release of swiftly is available " )
87- ctx. print ( " Please run `swiftly self-update` to update. " )
88- }
82+ versionUpdateReminder ( )
8983 }
9084
9185 var config = try Config . load ( ctx)
Original file line number Diff line number Diff line change @@ -38,15 +38,9 @@ struct List: SwiftlyCommand {
3838 }
3939
4040 mutating func run( _ ctx: SwiftlyCoreContext ) async throws {
41- try validateSwiftly ( ctx)
42-
43- let swiftlyRelease = try await ctx. httpClient. getCurrentSwiftlyRelease ( )
44- let shouldUpdateSwiftly = try swiftlyRelease. swiftlyVersion > SwiftlyCore . version
41+ let versionUpdateReminder = try await validateSwiftly ( ctx)
4542 defer {
46- if shouldUpdateSwiftly {
47- ctx. print ( " A new release of swiftly is available " )
48- ctx. print ( " Please run `swiftly self-update` to update. " )
49- }
43+ versionUpdateReminder ( )
5044 }
5145
5246 let selector = try self . toolchainSelector. map { input in
Original file line number Diff line number Diff line change @@ -44,15 +44,9 @@ struct ListAvailable: SwiftlyCommand {
4444 }
4545
4646 mutating func run( _ ctx: SwiftlyCoreContext ) async throws {
47- try validateSwiftly ( ctx)
48-
49- let swiftlyRelease = try await ctx. httpClient. getCurrentSwiftlyRelease ( )
50- let shouldUpdateSwiftly = try swiftlyRelease. swiftlyVersion > SwiftlyCore . version
47+ let versionUpdateReminder = try await validateSwiftly ( ctx)
5148 defer {
52- if shouldUpdateSwiftly {
53- ctx. print ( " A new release of swiftly is available " )
54- ctx. print ( " Please run `swiftly self-update` to update. " )
55- }
49+ versionUpdateReminder ( )
5650 }
5751
5852 let selector = try self . toolchainSelector. map { input in
Original file line number Diff line number Diff line change @@ -58,15 +58,9 @@ struct Run: SwiftlyCommand {
5858 }
5959
6060 mutating func run( _ ctx: SwiftlyCoreContext ) async throws {
61- try validateSwiftly ( ctx)
62-
63- let swiftlyRelease = try await ctx. httpClient. getCurrentSwiftlyRelease ( )
64- let shouldUpdateSwiftly = try swiftlyRelease. swiftlyVersion > SwiftlyCore . version
61+ let versionUpdateReminder = try await validateSwiftly ( ctx)
6562 defer {
66- if shouldUpdateSwiftly {
67- ctx. print ( " A new release of swiftly is available " )
68- ctx. print ( " Please run `swiftly self-update` to update. " )
69- }
63+ versionUpdateReminder ( )
7064 }
7165
7266 // Handle the specific case where help is requested of the run subcommand
Original file line number Diff line number Diff line change @@ -21,7 +21,10 @@ struct SelfUpdate: SwiftlyCommand {
2121 }
2222
2323 mutating func run( _ ctx: SwiftlyCoreContext ) async throws {
24- try validateSwiftly ( ctx)
24+ let versionUpdateReminder = try await validateSwiftly ( ctx)
25+ defer {
26+ versionUpdateReminder ( )
27+ }
2528
2629 let swiftlyBin = Swiftly . currentPlatform. swiftlyBinDir ( ctx) . appendingPathComponent ( " swiftly " )
2730 guard FileManager . default. fileExists ( atPath: swiftlyBin. path) else {
Original file line number Diff line number Diff line change @@ -80,7 +80,7 @@ extension Data {
8080}
8181
8282extension SwiftlyCommand {
83- public mutating func validateSwiftly( _ ctx: SwiftlyCoreContext ) throws {
83+ public mutating func validateSwiftly( _ ctx: SwiftlyCoreContext ) async throws -> ( ) -> Void {
8484 for requiredDir in Swiftly . requiredDirectories ( ctx) {
8585 guard requiredDir. fileExists ( ) else {
8686 do {
@@ -94,5 +94,16 @@ extension SwiftlyCommand {
9494
9595 // Verify that the configuration exists and can be loaded
9696 _ = try Config . load ( ctx)
97+
98+ let swiftlyRelease = try await ctx. httpClient. getCurrentSwiftlyRelease ( )
99+ let shouldUpdateSwiftly = try swiftlyRelease. swiftlyVersion > SwiftlyCore . version
100+
101+ return {
102+ if shouldUpdateSwiftly {
103+ ctx. print ( " ---------------------------- " )
104+ ctx. print ( " A new release of swiftly is available " )
105+ ctx. print ( " Please run `swiftly self-update` to update. " )
106+ }
107+ }
97108 }
98109}
Original file line number Diff line number Diff line change @@ -48,15 +48,9 @@ struct Uninstall: SwiftlyCommand {
4848 }
4949
5050 mutating func run( _ ctx: SwiftlyCoreContext ) async throws {
51- try validateSwiftly ( ctx)
52-
53- let swiftlyRelease = try await ctx. httpClient. getCurrentSwiftlyRelease ( )
54- let shouldUpdateSwiftly = try swiftlyRelease. swiftlyVersion > SwiftlyCore . version
51+ let versionUpdateReminder = try await validateSwiftly ( ctx)
5552 defer {
56- if shouldUpdateSwiftly {
57- ctx. print ( " A new release of swiftly is available " )
58- ctx. print ( " Please run `swiftly self-update` to update. " )
59- }
53+ versionUpdateReminder ( )
6054 }
6155
6256 let startingConfig = try Config . load ( ctx)
Original file line number Diff line number Diff line change @@ -82,15 +82,9 @@ struct Update: SwiftlyCommand {
8282 }
8383
8484 public mutating func run( _ ctx: SwiftlyCoreContext ) async throws {
85- try validateSwiftly ( ctx)
86-
87- let swiftlyRelease = try await ctx. httpClient. getCurrentSwiftlyRelease ( )
88- let shouldUpdateSwiftly = try swiftlyRelease. swiftlyVersion > SwiftlyCore . version
85+ let versionUpdateReminder = try await validateSwiftly ( ctx)
8986 defer {
90- if shouldUpdateSwiftly {
91- ctx. print ( " A new release of swiftly is available " )
92- ctx. print ( " Please run `swiftly self-update` to update. " )
93- }
87+ versionUpdateReminder ( )
9488 }
9589
9690 var config = try Config . load ( ctx)
Original file line number Diff line number Diff line change @@ -59,15 +59,9 @@ struct Use: SwiftlyCommand {
5959 }
6060
6161 mutating func run( _ ctx: SwiftlyCoreContext ) async throws {
62- try validateSwiftly ( ctx)
63-
64- let swiftlyRelease = try await ctx. httpClient. getCurrentSwiftlyRelease ( )
65- let shouldUpdateSwiftly = try swiftlyRelease. swiftlyVersion > SwiftlyCore . version
62+ let versionUpdateReminder = try await validateSwiftly ( ctx)
6663 defer {
67- if shouldUpdateSwiftly {
68- ctx. print ( " A new release of swiftly is available " )
69- ctx. print ( " Please run `swiftly self-update` to update. " )
70- }
64+ versionUpdateReminder ( )
7165 }
7266
7367 var config = try Config . load ( ctx)
You can’t perform that action at this time.
0 commit comments