Skip to content

Commit 261b090

Browse files
committed
Add version option.
1 parent 822b50d commit 261b090

File tree

4 files changed

+35
-2
lines changed

4 files changed

+35
-2
lines changed

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 📻 spotify-cmd v0.1.8
1+
# 📻 spotify-cmd v0.1.9
22

33
`spotify-cmd` is a Spotify client that allows controlling the playback of **albums and playlists from a user's library** (based on names or Spotify URIs) and individual tracks (based solely on Spotify URIs). The application is intended for use with [spotifyd](https://github.com/Spotifyd/spotifyd), but it works with any Spotify-enabled device.
44

@@ -43,6 +43,7 @@ socket_buffer_size = 1024
4343
* `set shuffle <on|off>`: Toggles shuffle mode.
4444
* `set volume <0-100>`: Sets the volume level.
4545
* `find <search_type> <query>`: Searches for items on Spotify. Acceptable search types are `album`, `artist`, `playlist`, `track`, `episode`, and `show`.
46+
* `version`: Prints the installed `spotify-cmd` version.
4647

4748
## Output Format
4849

@@ -67,6 +68,10 @@ spotify-cmd find artist "Nils Frahm"
6768

6869
Developers can create interfaces for `spotify-cmd-daemon` using `/tmp/spotify-cmd-daemon.sock`. Socket handling and data format details are in the `./src/common` directory (there is no documentation).
6970

71+
Daemon helper:
72+
73+
* `spotify-cmd-daemon --version` prints the installed daemon version.
74+
7075
## Planned Features and Upcoming Development
7176

7277
* Displaying tracks from specific albums or playlists.

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
setup(
88
name="spotify-cmd",
9-
version="0.1.8",
9+
version="0.1.9",
1010
packages=find_packages(),
1111
install_requires=[
1212
'argparse==1.4.0',

src/spotify_cmd_client/main.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
import socket
22
import argparse
33
import json
4+
from importlib.metadata import version, PackageNotFoundError
45
from .client import Client
56

7+
def get_pkg_version():
8+
try:
9+
return version("spotify-cmd")
10+
except PackageNotFoundError:
11+
return "unknown"
12+
613
def main():
714
# Parse arguments
815
parser = argparse.ArgumentParser(description='Client for controlling Spotify playback through a spotify-cmd-daemon.')
916
subparsers = parser.add_subparsers(dest='command', required=True)
17+
subparsers.add_parser('version', help='show spotify-cmd version and exit')
1018

1119
# Basic commands
1220
play_parser = subparsers.add_parser('play', help='start playback')
@@ -53,6 +61,14 @@ def main():
5361

5462
args = parser.parse_args()
5563

64+
if args.version == 'version':
65+
print(get_pkg_version())
66+
return
67+
68+
if args.command == 'version':
69+
print(get_pkg_version())
70+
return
71+
5672
payload = {
5773
'command': args.command,
5874
'setting': getattr(args, 'setting', None),

src/spotify_cmd_daemon/main.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import argparse
44
import os
55
import daemon
6+
from importlib.metadata import version, PackageNotFoundError
67
from .spotify_controller import SpotifyController
78
from .socket_server import SocketServer
89

@@ -12,14 +13,25 @@ def signal_handler(sig, frame, server):
1213
os.remove(lock_file)
1314
sys.exit(0)
1415

16+
def get_pkg_version():
17+
try:
18+
return version("spotify-cmd")
19+
except PackageNotFoundError:
20+
return "unknown"
21+
1522
def run_server(server):
1623
with daemon.DaemonContext():
1724
server.start_server()
1825

1926
parser = argparse.ArgumentParser()
2027
parser.add_argument("-f", "--foreground", action="store_true", help="Run in foreground mode (not as a daemon)")
28+
parser.add_argument("--version", action="store_true", help="Show spotify-cmd-daemon version and exit")
2129
args = parser.parse_args()
2230

31+
if args.version:
32+
print(get_pkg_version())
33+
sys.exit(0)
34+
2335
spotify = SpotifyController()
2436
server = SocketServer(spotify)
2537

0 commit comments

Comments
 (0)