X-Git-Url: https://git.r.bdr.sh/rbdr/lyricli/blobdiff_plain/1f7088f6391dfbffcd8f243f8d1509be8a209604..3a398bc031f1a1659073208e83d778a357a8243a:/README.md diff --git a/README.md b/README.md index 71d7259..b2c5430 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,94 @@ # Lyricli (lrc) -A command line tool to show the lyrics of your current song +A command line tool to show the lyrics of your current song. + +## Usage + +Lyricli can be invoked with the command `lrc`. + +``` +$ lrc [-t] +``` + +When you run it without arguments, it will look in the available source +to try to find a playing song and extract the lyrics. If you include the +`-t` flag, it will show the song and artist names before the lyrics. + +``` +$ lrc [-t] +``` + +When you run it with arguments, it will use them to search for the +lyrics. This won't work if you manually disable the arguments source in +your configuration file. If you include the `-t` flag, it will show the +song and artist names before the lyrics. + +### Commands + +In order to configure sources, lyricli provides a few commands: + +* `lrc -l` or `lrc --list-sources` lists the available sources. Enabled + sourcess will have a `*` +* `lrc -e` or `lrc --enable-source ` enables a source +* `lrc -d` or `lrc --disable-source ` disables a source without + resetting its configuration. +* `lrc -r` or `lrc --reset-source ` resets the configuration + for a source and disables it. + +And you can print the help or the version: + +* `lrc -v` or `lrc --version` prints the version +* `lrc -h` or `lrc --help` display built-in help ## Building -Run `swift build` +The build has only been tested on OSX using Swift 5.8 Building defaults +to the debug configuration. + +``` +make +``` + +### Configuration + +To avoid storing the API key in source control, clientToken in the +lyrics_engine is using a placeholder value. You'll need to replace this +before building + +* `GENIUS_CLIENT_TOKEN`: The Client token for your genius API client + +## Installing from source + +Builds lyricli in release configuration and copies the executable as +`lrc` to `/usr/local/bin` + +``` +make install +``` + +### Installing to a custom directory + +This can be done by overriding the `install_path` variable + +``` +make install install_path=/opt/bin +``` + +## Linting and Generating Documentation + +We use [swiftlint][swiftlint] to lint, and `make lint` to run it. +We use [jazzy][jazzy] and [SourceKitten][sourcekitten] to document, and +`make document` to generate it. ## Running tests -Run `swift test` +No tests at the moment 😬... but the makefile is mapped to run the swift +tests. + +``` +make test +``` + +[swiftlint]: https://github.com/realm/SwiftLint +[jazzy]: https://github.com/realm/jazzy +[sourcekitten]: https://github.com/jpsim/SourceKitten