]>
Commit | Line | Data |
---|---|---|
1 | # Lyricli (lrc) | |
2 | ||
3 | A command line tool to show the lyrics of your current song. | |
4 | ||
5 | ## Usage | |
6 | ||
7 | Lyricli can be invoked with the command `lrc`. | |
8 | ||
9 | ``` | |
10 | $ lrc [-t] | |
11 | ``` | |
12 | ||
13 | When you run it without arguments, it will look in the available source | |
14 | to try to find a playing song and extract the lyrics. If you include the | |
15 | `-t` flag, it will show the song and artist names before the lyrics. | |
16 | ||
17 | ``` | |
18 | $ lrc [-t] <artist_name> <song_name> | |
19 | ``` | |
20 | ||
21 | When you run it with arguments, it will use them to search for the | |
22 | lyrics. This won't work if you manually disable the arguments source in | |
23 | your configuration file. If you include the `-t` flag, it will show the | |
24 | song and artist names before the lyrics. | |
25 | ||
26 | ### Commands | |
27 | ||
28 | In order to configure sources, lyricli provides a few commands: | |
29 | ||
30 | * `lrc -l` or `lrc --list-sources` lists the available sources. Enabled | |
31 | sourcess will have a `*` | |
32 | * `lrc -e` or `lrc --enable-source <source>` enables a source | |
33 | * `lrc -d` or `lrc --disable-source <source>` disables a source without | |
34 | resetting its configuration. | |
35 | * `lrc -r` or `lrc --reset-source <source>` resets the configuration | |
36 | for a source and disables it. | |
37 | ||
38 | And you can print the help or the version: | |
39 | ||
40 | * `lrc -v` or `lrc --version` prints the version | |
41 | * `lrc -h` or `lrc --help` display built-in help | |
42 | ||
43 | ## Building | |
44 | ||
45 | The build has only been tested on OSX using Swift 5.8 Building defaults | |
46 | to the debug configuration. | |
47 | ||
48 | ``` | |
49 | make | |
50 | ``` | |
51 | ||
52 | ### Configuration | |
53 | ||
54 | To avoid storing the API key in source control, clientToken in the | |
55 | lyrics_engine is using a placeholder value. You'll need to replace this | |
56 | before building | |
57 | ||
58 | * `GENIUS_CLIENT_TOKEN`: The Client token for your genius API client | |
59 | ||
60 | ## Installing from source | |
61 | ||
62 | Builds lyricli in release configuration and copies the executable as | |
63 | `lrc` to `/usr/local/bin` | |
64 | ||
65 | ``` | |
66 | make install | |
67 | ``` | |
68 | ||
69 | ### Installing to a custom directory | |
70 | ||
71 | This can be done by overriding the `install_path` variable | |
72 | ||
73 | ``` | |
74 | make install install_path=/opt/bin | |
75 | ``` | |
76 | ||
77 | ## Linting and Generating Documentation | |
78 | ||
79 | We use [swiftlint][swiftlint] to lint, and `make lint` to run it. | |
80 | We use [jazzy][jazzy] and [SourceKitten][sourcekitten] to document, and | |
81 | `make document` to generate it. | |
82 | ||
83 | ## Running tests | |
84 | ||
85 | No tests at the moment 😬... but the makefile is mapped to run the swift | |
86 | tests. | |
87 | ||
88 | ``` | |
89 | make test | |
90 | ``` | |
91 | ||
92 | [swiftlint]: https://github.com/realm/SwiftLint | |
93 | [jazzy]: https://github.com/realm/jazzy | |
94 | [sourcekitten]: https://github.com/jpsim/SourceKitten |