Skip to content

Commit b715485

Browse files
committed
Initial Commit
0 parents  commit b715485

14 files changed

+863
-0
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.DS_Store
2+
/.build
3+
/Packages
4+
/*.xcodeproj

LICENSE

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
MIT License
2+
3+
Copyright (c) 2018 Yutaro Muta
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
22+

Makefile

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
demo:
2+
swift run Demo
3+
4+
test:
5+
swift test
6+
7+
generate_xcodeproj:
8+
swift package generate-xcodeproj
9+
10+
clean:
11+
swift package clean
12+
13+
.PHONY: demo test generate_xcodeproj clean

Package.resolved

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"object": {
3+
"pins": [
4+
{
5+
"package": "SwiftPM",
6+
"repositoryURL": "https://github.com/apple/swift-package-manager.git",
7+
"state": {
8+
"branch": null,
9+
"revision": "6983434787dec4e543e9d398a0a9acf63ccd4da1",
10+
"version": "0.2.1"
11+
}
12+
}
13+
]
14+
},
15+
"version": 1
16+
}

Package.swift

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// swift-tools-version:4.0
2+
// The swift-tools-version declares the minimum version of Swift required to build this package.
3+
4+
import PackageDescription
5+
6+
let package = Package(
7+
name: "ProgressSpinnerKit",
8+
products: [
9+
.library(name: "ProgressSpinnerKit", targets: ["ProgressSpinnerKit"]),
10+
],
11+
dependencies: [
12+
.package(url: "https://github.com/apple/swift-package-manager.git", from: "0.2.1"),
13+
],
14+
targets: [
15+
.target(name: "ProgressSpinnerKit", dependencies: ["Utility"]),
16+
.testTarget(name: "ProgressSpinnerKitTests", dependencies: ["ProgressSpinnerKit"]),
17+
.target(name: "Demo", dependencies: ["ProgressSpinnerKit"]),
18+
]
19+
)

ProgressSpinnerKit.gif

105 KB
Loading

README.md

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<p align="left">
2+
<a href="https://developer.apple.com/swift"><img alt="Swift 4.1" src="https://img.shields.io/badge/Swift-4.1-orange.svg?style=flat"/></a>
3+
<a href="https://swift.org/package-manager/"><img alt="Swift Package Manager" src="https://img.shields.io/badge/Swift_Package_Manager-compatible-green.svg?style=flat"/></a>
4+
<a href="https://github.com/yutailang0119/ProgressSpinnerKit/blob/master/LICENSE"><img alt="Lincense" src="https://img.shields.io/badge/license-MIT-black.svg?style=flat"/></a>
5+
</p>
6+
7+
<p align="center">
8+
<img src="./ProgressSpinnerKit.gif">
9+
</p>
10+
11+
A library to display an ActivityIndicator for CLI.
12+
Motivated by
13+
14+
* [Swift Package Manager/Utility/ProgressBar](https://github.com/apple/swift-package-manager/blob/master/Sources/Utility/ProgressBar.swift)
15+
* [briandowns/spinner](https://github.com/briandowns/spinner)
16+
17+
## A Work In Progress
18+
19+
ProgressSpinnerKit is still in active development.
20+
21+
## Dome
22+
23+
![](./Sources/Demo/Demo.gif)
24+
25+
## Installation
26+
27+
### [Swift Package Manager](https://swift.org/package-manager/)
28+
29+
```swift
30+
// swift-tools-version:4.0
31+
// The swift-tools-version declares the minimum version of Swift required to build this package.
32+
33+
import PackageDescription
34+
35+
let package = Package(
36+
name: "test",
37+
dependencies: [
38+
.package(url: "https://github.com/yutailang0119/ProgressSpinnerKit", from: "0.1.0"),
39+
],
40+
targets: [
41+
.target(name: "targetName", dependencies: ["ProgressSpinnerKit"]),
42+
]
43+
)
44+
45+
```
46+
47+
https://github.com/apple/swift-package-manager
48+
49+
## Usege
50+
51+
```swift
52+
import Basic
53+
import ProgressSpinnerKit
54+
55+
let spinner = createProgressSpinner(forStream: Basic.stdoutStream, header: " Loading:")
56+
spinner.start()
57+
// Something on the main thread.
58+
spinner.stop()
59+
```
60+
61+
## Author
62+
63+
[Yutaro Muta](https://github.com/yutailang0119)
64+
65+
- [@yutailang0119](https://twitter.com/yutailang0119)
66+
67+
## License
68+
69+
ProgressSpinnerKit is available under the MIT license. See [the LICENSE file](./LICENSE) for more info.
70+
This software includes the work that is distributed in the Apache License 2.0.

Sources/Demo/Demo.gif

288 KB
Loading

Sources/Demo/main.swift

+209
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
//
2+
// main.swift
3+
// Demo
4+
//
5+
// Created by Yutaro Muta on 2018/08/25.
6+
//
7+
8+
import Foundation
9+
import Basic
10+
import POSIX
11+
import ProgressSpinnerKit
12+
13+
private let duration = useconds_t(Double(2.0) * pow(1000, 2))
14+
15+
do {
16+
let defaultSpinner = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " default:")
17+
defaultSpinner.start()
18+
usleep(duration)
19+
defaultSpinner.stop()
20+
}
21+
22+
do {
23+
let box1 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " box1:", spinner: Spinner(kind: .box1))
24+
box1.start()
25+
usleep(duration)
26+
box1.stop()
27+
}
28+
29+
do {
30+
let box2 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " box2:", spinner: Spinner(kind: .box2))
31+
box2.start()
32+
usleep(duration)
33+
box2.stop()
34+
}
35+
36+
do {
37+
let box3 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " box3:", spinner: Spinner(kind: .box3))
38+
box3.start()
39+
usleep(duration)
40+
box3.stop()
41+
}
42+
43+
do {
44+
let box4 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " box4:", spinner: Spinner(kind: .box4))
45+
box4.start()
46+
usleep(duration)
47+
box4.stop()
48+
}
49+
50+
do {
51+
let box5 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " box5:", spinner: Spinner(kind: .box5))
52+
box5.start()
53+
usleep(duration)
54+
box5.stop()
55+
}
56+
57+
do {
58+
let box6 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " box6:", spinner: Spinner(kind: .box6))
59+
box6.start()
60+
usleep(duration)
61+
box6.stop()
62+
}
63+
64+
do {
65+
let box7 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " box7:", spinner: Spinner(kind: .box7))
66+
box7.start()
67+
usleep(duration)
68+
box7.stop()
69+
}
70+
71+
do {
72+
let bar1 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " bar1:", spinner: Spinner(kind: .bar1))
73+
bar1.start()
74+
usleep(duration)
75+
bar1.stop()
76+
}
77+
78+
do {
79+
let bar2 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " bar2:", spinner: Spinner(kind: .bar2))
80+
bar2.start()
81+
usleep(duration)
82+
bar2.stop()
83+
}
84+
85+
do {
86+
let bar3 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " bar3:", spinner: Spinner(kind: .bar3))
87+
bar3.start()
88+
usleep(duration)
89+
bar3.stop()
90+
}
91+
92+
do {
93+
let bar4 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " bar4:", spinner: Spinner(kind: .bar4))
94+
bar4.start()
95+
usleep(duration)
96+
bar4.stop()
97+
}
98+
99+
do {
100+
let bar5 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " bar5:", spinner: Spinner(kind: .bar5))
101+
bar5.start()
102+
usleep(duration)
103+
bar5.stop()
104+
}
105+
106+
do {
107+
let bar6 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " bar6:", spinner: Spinner(kind: .bar6))
108+
bar6.start()
109+
usleep(duration)
110+
bar6.stop()
111+
}
112+
113+
do {
114+
let spin1 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin1:", spinner: Spinner(kind: .spin1))
115+
spin1.start()
116+
usleep(duration)
117+
spin1.stop()
118+
}
119+
120+
do {
121+
let spin2 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin2:", spinner: Spinner(kind: .spin2))
122+
spin2.start()
123+
usleep(duration)
124+
spin2.stop()
125+
}
126+
127+
do {
128+
let spin3 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin3:", spinner: Spinner(kind: .spin3))
129+
spin3.start()
130+
usleep(duration)
131+
spin3.stop()
132+
}
133+
134+
do {
135+
let spin4 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin4:", spinner: Spinner(kind: .spin4))
136+
spin4.start()
137+
usleep(duration)
138+
spin4.stop()
139+
}
140+
141+
do {
142+
let spin5 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin5:", spinner: Spinner(kind: .spin5))
143+
spin5.start()
144+
usleep(duration)
145+
spin5.stop()
146+
}
147+
148+
do {
149+
let spin6 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin6:", spinner: Spinner(kind: .spin6))
150+
spin6.start()
151+
usleep(duration)
152+
spin6.stop()
153+
}
154+
155+
do {
156+
let spin7 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin7:", spinner: Spinner(kind: .spin7))
157+
spin7.start()
158+
usleep(duration)
159+
spin7.stop()
160+
}
161+
162+
do {
163+
let spin8 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin8:", spinner: Spinner(kind: .spin8))
164+
spin8.start()
165+
usleep(duration)
166+
spin8.stop()
167+
}
168+
169+
do {
170+
let spin9 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin9:", spinner: Spinner(kind: .spin9))
171+
spin9.start()
172+
usleep(duration)
173+
spin9.stop()
174+
}
175+
176+
do {
177+
let spin10 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin10:", spinner: Spinner(kind: .spin10))
178+
spin10.start()
179+
usleep(duration)
180+
spin10.stop()
181+
}
182+
183+
do {
184+
let spin11 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin11:", spinner: Spinner(kind: .spin11))
185+
spin11.start()
186+
usleep(duration)
187+
spin11.stop()
188+
}
189+
190+
do {
191+
let spin12 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin12:", spinner: Spinner(kind: .spin12))
192+
spin12.start()
193+
usleep(duration)
194+
spin12.stop()
195+
}
196+
197+
do {
198+
let spin13 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin13:", spinner: Spinner(kind: .spin13))
199+
spin13.start()
200+
usleep(duration)
201+
spin13.stop()
202+
}
203+
204+
do {
205+
let spin14 = ProgressSpinnerKit.createProgressSpinner(forStream: Basic.stderrStream, header: " spin14:", spinner: Spinner(kind: .spin14))
206+
spin14.start()
207+
usleep(duration)
208+
spin14.stop()
209+
}

0 commit comments

Comments
 (0)