Skip to content

Commit 6dc4f8b

Browse files
committed
snapshot
1 parent ab1546f commit 6dc4f8b

File tree

3 files changed

+159
-0
lines changed

3 files changed

+159
-0
lines changed

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
> Render ascii progress bar(s) on the terminal.
44
5+
![snapshot](snapshot.gif?raw=true)
6+
57
## Install
68

79
```
@@ -175,6 +177,25 @@ And with the `bg` prefix, such as `bgRed`, the color will be applied to the back
175177

176178
The above progress bar has blue background and red foreground.
177179

180+
### Gradient
181+
182+
```
183+
:bar.gradient(red,blue)
184+
```
185+
186+
The arguments can be color names or hex color:
187+
188+
- red
189+
- cyan
190+
- blue
191+
- grey
192+
- white
193+
- black
194+
- green
195+
- yellow
196+
- magenta
197+
- #xxxxxx
198+
178199

179200
### Font style
180201

examples/snapshot.js

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
var ProgressBar = require('../index.js');
2+
3+
console.log();
4+
console.log();
5+
console.log();
6+
console.log();
7+
console.log();
8+
9+
var tokens = ':current.underline.magenta/:total.italic.green :percent.bold.yellow :elapseds.italic.blue :etas.italic.cyan';
10+
11+
var bar0 = new ProgressBar({
12+
schema : ' [:bar] :current/:total :percent :elapseds :etas',
13+
width : 70,
14+
current: 0
15+
});
16+
17+
var bar1 = new ProgressBar({
18+
schema : ' [:bar] :current/:total :percent :elapseds :etas',
19+
width : 70,
20+
current: 10
21+
});
22+
23+
var bar2 = new ProgressBar({
24+
schema : ' [.white:completed.brightGreen:blank.brightYellow].white :current.red/:total.grey :percent.green :elapseds :etas',
25+
width : 70,
26+
current: 20
27+
});
28+
29+
var bar3 = new ProgressBar({
30+
schema : ' [:bar] :current/:total :percent :elapseds :etas',
31+
width : 70,
32+
current: 30
33+
});
34+
35+
var bar4 = new ProgressBar({
36+
schema : ' [:bar] :current/:total :percent :elapseds :etas',
37+
width : 70,
38+
current: 40
39+
});
40+
41+
var bar5 = new ProgressBar({
42+
schema : ' [.white:completed.gradient(red,magenta):blank] :current/:total :percent :elapseds :etas',
43+
width : 70,
44+
current: 50
45+
});
46+
47+
48+
var index = 0;
49+
var steps = [0.1, 0.15, 0.2, 0.25,
50+
0.1,
51+
0.3, 0.35, 0.4, 0.45,
52+
0.2,
53+
0.5, 0.55, 0.6, 0.65,
54+
0.3,
55+
0.3, 0.35, 0.4, 0.45,
56+
0.4,
57+
0.7, 0.75, 0.8, 0.85,
58+
0.4,
59+
0.9, 0.95, 0.8, 0.85,
60+
0.7,
61+
0.8, 1.0];
62+
63+
var backward = false;
64+
var forward = false;
65+
66+
var timer = setInterval(function () {
67+
68+
var color = '';
69+
var current = bar4.current;
70+
71+
if (current < 60) {
72+
color = 'red';
73+
} else if (current < 70) {
74+
color = 'magenta';
75+
} else if (current < 80) {
76+
color = 'yellow';
77+
} else if (current < 90) {
78+
color = 'blue';
79+
} else if (current < 100) {
80+
color = 'green';
81+
}
82+
83+
var schema = ' [.white:completed.' + color + ':blank.grey] .white' + tokens;
84+
85+
bar4.setSchema(schema);
86+
87+
bar0.tick();
88+
89+
//bar1.tick();
90+
91+
if (index >= steps.length) {
92+
} else {
93+
bar1.update(steps[index++]);
94+
}
95+
96+
97+
bar2.tick();
98+
99+
if (!forward) {
100+
bar3.tick();
101+
if (bar3.current >= 50) {
102+
forward = true;
103+
}
104+
} else if (!backward) {
105+
bar3.tick(-1);
106+
if (bar3.current <= 10) {
107+
backward = true;
108+
}
109+
} else {
110+
bar3.tick();
111+
}
112+
113+
114+
bar4.tick();
115+
bar5.tick();
116+
117+
if (bar0.completed
118+
&& bar1.completed
119+
&& bar2.completed
120+
&& bar3.completed
121+
&& bar4.completed
122+
&& bar5.completed) {
123+
clearInterval(timer);
124+
console.log();
125+
console.log();
126+
console.log();
127+
console.log();
128+
console.log();
129+
}
130+
131+
}, 50);
132+
133+
134+
console.log();
135+
console.log();
136+
console.log();
137+
console.log();
138+
console.log();

snapshot.gif

417 KB
Loading

0 commit comments

Comments
 (0)