Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Swifty Terminal Spinner

License

NotificationsYou must be signed in to change notification settings

kiliankoe/CLISpinner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Travis

60+ spinners for use in the terminal

Shamelessly ripped off fromsindresorhus/cli-spinners.

Install

.package(url:"https://github.com/kiliankoe/CLISpinner", from:"see latest release")

Usage

Just want to display a simple spinner for two seconds?

lets=Spinner(pattern:.dots)s.start()sleep(2)s.stop()

Want some changing text and patterns?

lets=Spinner(pattern:.dots, text:"Foobar...", color:.lightCyan)s.start()sleep(2)s.succeed(text:"Barfoo")// will change the displayed text to '✔ Barfoo'

Made your own custom pattern?

letpattern=tryPattern.load(from:"/path/to/your/pattern.json")lets=spinner(pattern: pattern)s.start()sleep(2)s.stop()

Want all the patterns fromsindresorhus/cli-spinners?

letpatterns=tryPatterns(from:"/path/to/spinners.json")lets=spinner(pattern:patterns["christmas"]!)s.start()sleep(2)s.stop()

That's basically it 👌

Creating your own Pattern

ThePattern type can read in patterns from a JSON file using the following format:

{"frames": ["1","2","3","4","5"    ],"speed":0.08}

To keep multiple patterns in a single file:

{"pattern-name1": {"frames": ["<(**<)","<(**)>","(>**)>"        ],"speed":0.01    },"pattern-name2": {"frames": ["1","2","3","2"        ],"speed":0.12    }}

Caveat

To looknice the spinner hides the user's cursor as long as it's running and displays it again when stopped. The issue with this is that the cursor will still be hidden if the user interrupts the process (by sending a SIGINT throughctrl+c for example). The best way to handle this is by setting up a signal handler in your code and callingspinner.unhideCursor() on exiting. This library purposefully does not do that for you so as not to interfere with any possible signal handlers you might already have set up.

SeeIBM-Swift/BlueSignals for a clean and safe way of handling signals. The appropriate signal handler for your project could look something like this.

import Signalsletspinner=Spinner(pattern:.dots)// ...Signals.trap(signal:.int){ _in    spinner.unhideCursor()exit(0)}

Used by

About

Swifty Terminal Spinner

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp