- self.port = os.environ.get('MPD_PORT', '6600')
- mpd_host_env = os.environ.get('MPD_HOST')
- if mpd_host_env:
- # If password is set:
- # mpd_host_env = ['pass', 'host'] because MPD_HOST=pass@host
- mpd_host_env = mpd_host_env.split('@')
- mpd_host_env.reverse()
- self.host = mpd_host_env[0]
- if len(mpd_host_env) > 1 and mpd_host_env[1]:
- self.pwd = mpd_host_env[1]
+ self.port = os.getenv('MPD_PORT', '6600')
+ if os.getenv('MPD_HOST'):
+ # If password is set: MPD_HOST=pass@host
+ if '@' in os.getenv('MPD_HOST'):
+ mpd_host_env = os.getenv('MPD_HOST').split('@', 1)
+ if mpd_host_env[0]:
+ # A password is actually set
+ self.pwd = mpd_host_env[0]
+ self.host = mpd_host_env[1]
+ else:
+ # No password set but leading @ is an abstract socket
+ self.host = '@'+mpd_host_env[1]
+ else:
+ # MPD_HOST is a plain host
+ self.host = os.getenv('MPD_HOST')