Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
ollama
Commits
e4300e1e
Commit
e4300e1e
authored
Jul 17, 2023
by
Michael Yang
Browse files
add spinner to create
parent
aba706ea
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
59 additions
and
19 deletions
+59
-19
cmd/cmd.go
cmd/cmd.go
+15
-19
cmd/spinner.go
cmd/spinner.go
+44
-0
No files found.
cmd/cmd.go
View file @
e4300e1e
...
...
@@ -24,9 +24,17 @@ func create(cmd *cobra.Command, args []string) error {
filename
,
_
:=
cmd
.
Flags
()
.
GetString
(
"file"
)
client
:=
api
.
NewClient
()
var
spinner
*
Spinner
request
:=
api
.
CreateRequest
{
Name
:
args
[
0
],
Path
:
filename
}
fn
:=
func
(
resp
api
.
CreateProgress
)
error
{
fmt
.
Println
(
resp
.
Status
)
if
spinner
!=
nil
{
spinner
.
Stop
()
}
spinner
=
NewSpinner
(
resp
.
Status
)
go
spinner
.
Spin
(
100
*
time
.
Millisecond
)
return
nil
}
...
...
@@ -34,6 +42,10 @@ func create(cmd *cobra.Command, args []string) error {
return
err
}
if
spinner
!=
nil
{
spinner
.
Stop
()
}
return
nil
}
...
...
@@ -129,24 +141,8 @@ func generate(cmd *cobra.Command, model, prompt string) error {
if
len
(
strings
.
TrimSpace
(
prompt
))
>
0
{
client
:=
api
.
NewClient
()
spinner
:=
progressbar
.
NewOptions
(
-
1
,
progressbar
.
OptionSetWriter
(
os
.
Stderr
),
progressbar
.
OptionThrottle
(
60
*
time
.
Millisecond
),
progressbar
.
OptionSpinnerType
(
14
),
progressbar
.
OptionSetRenderBlankState
(
true
),
progressbar
.
OptionSetElapsedTime
(
false
),
progressbar
.
OptionClearOnFinish
(),
)
go
func
()
{
for
range
time
.
Tick
(
60
*
time
.
Millisecond
)
{
if
spinner
.
IsFinished
()
{
break
}
spinner
.
Add
(
1
)
}
}()
spinner
:=
NewSpinner
(
""
)
go
spinner
.
Spin
(
60
*
time
.
Millisecond
)
var
latest
api
.
GenerateResponse
...
...
cmd/spinner.go
0 → 100644
View file @
e4300e1e
package
cmd
import
(
"fmt"
"os"
"time"
"github.com/schollz/progressbar/v3"
)
type
Spinner
struct
{
description
string
*
progressbar
.
ProgressBar
}
func
NewSpinner
(
description
string
)
*
Spinner
{
return
&
Spinner
{
description
:
description
,
ProgressBar
:
progressbar
.
NewOptions
(
-
1
,
progressbar
.
OptionSetWriter
(
os
.
Stderr
),
progressbar
.
OptionThrottle
(
60
*
time
.
Millisecond
),
progressbar
.
OptionSpinnerType
(
14
),
progressbar
.
OptionSetRenderBlankState
(
true
),
progressbar
.
OptionSetElapsedTime
(
false
),
progressbar
.
OptionClearOnFinish
(),
progressbar
.
OptionSetDescription
(
description
),
),
}
}
func
(
s
*
Spinner
)
Spin
(
tick
time
.
Duration
)
{
for
range
time
.
Tick
(
tick
)
{
if
s
.
IsFinished
()
{
break
}
s
.
Add
(
1
)
}
}
func
(
s
*
Spinner
)
Stop
()
{
s
.
Finish
()
fmt
.
Println
(
s
.
description
)
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment