]> git.r.bdr.sh - rbdr/lyricli/blob - README.md
Use swiftsoup for parsing
[rbdr/lyricli] / README.md
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