mirror of
https://github.com/librespot-org/librespot.git
synced 2024-12-18 17:11:53 +00:00
Merge pull request #595 from Johannesd3/const_versions
Replace version functions by constants
This commit is contained in:
commit
56f1fb6dae
6 changed files with 43 additions and 53 deletions
|
@ -102,7 +102,7 @@ fn initial_state() -> State {
|
||||||
fn initial_device_state(config: ConnectConfig) -> DeviceState {
|
fn initial_device_state(config: ConnectConfig) -> DeviceState {
|
||||||
{
|
{
|
||||||
let mut msg = DeviceState::new();
|
let mut msg = DeviceState::new();
|
||||||
msg.set_sw_version(version::version_string());
|
msg.set_sw_version(version::VERSION_STRING.to_string());
|
||||||
msg.set_is_active(false);
|
msg.set_is_active(false);
|
||||||
msg.set_can_play(true);
|
msg.set_can_play(true);
|
||||||
msg.set_volume(0);
|
msg.set_volume(0);
|
||||||
|
|
|
@ -15,5 +15,6 @@ fn main() {
|
||||||
.map(|()| rng.sample(Alphanumeric))
|
.map(|()| rng.sample(Alphanumeric))
|
||||||
.take(8)
|
.take(8)
|
||||||
.collect();
|
.collect();
|
||||||
println!("cargo:rustc-env=VERGEN_BUILD_ID={}", build_id);
|
|
||||||
|
println!("cargo:rustc-env=LIBRESPOT_BUILD_ID={}", build_id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ impl Default for SessionConfig {
|
||||||
fn default() -> SessionConfig {
|
fn default() -> SessionConfig {
|
||||||
let device_id = Uuid::new_v4().to_hyphenated().to_string();
|
let device_id = Uuid::new_v4().to_hyphenated().to_string();
|
||||||
SessionConfig {
|
SessionConfig {
|
||||||
user_agent: version::version_string(),
|
user_agent: version::VERSION_STRING.to_string(),
|
||||||
device_id: device_id,
|
device_id: device_id,
|
||||||
proxy: None,
|
proxy: None,
|
||||||
ap_port: None,
|
ap_port: None,
|
||||||
|
|
|
@ -88,11 +88,11 @@ pub fn authenticate(
|
||||||
.mut_system_info()
|
.mut_system_info()
|
||||||
.set_system_information_string(format!(
|
.set_system_information_string(format!(
|
||||||
"librespot_{}_{}",
|
"librespot_{}_{}",
|
||||||
version::short_sha(),
|
version::SHA_SHORT,
|
||||||
version::build_id()
|
version::BUILD_ID
|
||||||
));
|
));
|
||||||
packet.mut_system_info().set_device_id(device_id);
|
packet.mut_system_info().set_device_id(device_id);
|
||||||
packet.set_version_string(version::version_string());
|
packet.set_version_string(version::VERSION_STRING.to_string());
|
||||||
|
|
||||||
let cmd = 0xab;
|
let cmd = 0xab;
|
||||||
let data = packet.write_to_bytes().unwrap();
|
let data = packet.write_to_bytes().unwrap();
|
||||||
|
|
|
@ -1,44 +1,17 @@
|
||||||
pub fn version_string() -> String {
|
/// Version string of the form "librespot-<sha>"
|
||||||
format!("librespot-{}", short_sha())
|
pub const VERSION_STRING: &str = concat!("librespot-", env!("VERGEN_SHA_SHORT"));
|
||||||
}
|
|
||||||
|
|
||||||
// Generate a timestamp representing now (UTC) in RFC3339 format.
|
/// Generate a timestamp string representing the build date (UTC).
|
||||||
pub fn now() -> &'static str {
|
pub const BUILD_DATE: &str = env!("VERGEN_BUILD_DATE");
|
||||||
env!("VERGEN_BUILD_TIMESTAMP")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate a timstamp string representing now (UTC).
|
/// Short sha of the latest git commit.
|
||||||
pub fn short_now() -> &'static str {
|
pub const SHA_SHORT: &str = env!("VERGEN_SHA_SHORT");
|
||||||
env!("VERGEN_BUILD_DATE")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate a SHA string
|
/// Date of the latest git commit.
|
||||||
pub fn sha() -> &'static str {
|
pub const COMMIT_DATE: &str = env!("VERGEN_COMMIT_DATE");
|
||||||
env!("VERGEN_SHA")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate a short SHA string
|
/// Librespot crate version.
|
||||||
pub fn short_sha() -> &'static str {
|
pub const SEMVER: &str = env!("CARGO_PKG_VERSION");
|
||||||
env!("VERGEN_SHA_SHORT")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate the commit date string
|
/// A random build id.
|
||||||
pub fn commit_date() -> &'static str {
|
pub const BUILD_ID: &str = env!("LIBRESPOT_BUILD_ID");
|
||||||
env!("VERGEN_COMMIT_DATE")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate the target triple string
|
|
||||||
pub fn target() -> &'static str {
|
|
||||||
env!("VERGEN_TARGET_TRIPLE")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate a semver string
|
|
||||||
pub fn semver() -> &'static str {
|
|
||||||
// env!("VERGEN_SEMVER")
|
|
||||||
env!("CARGO_PKG_VERSION")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate a random build id.
|
|
||||||
pub fn build_id() -> &'static str {
|
|
||||||
env!("VERGEN_BUILD_ID")
|
|
||||||
}
|
|
||||||
|
|
32
src/main.rs
32
src/main.rs
|
@ -71,6 +71,16 @@ fn list_backends() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn print_version() {
|
||||||
|
println!(
|
||||||
|
"librespot {semver} {sha} (Built on {build_date}, Build ID: {build_id})",
|
||||||
|
semver = version::SEMVER,
|
||||||
|
sha = version::SHA_SHORT,
|
||||||
|
build_date = version::BUILD_DATE,
|
||||||
|
build_id = version::BUILD_ID
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
struct Setup {
|
struct Setup {
|
||||||
backend: fn(Option<String>) -> Box<dyn Sink>,
|
backend: fn(Option<String>) -> Box<dyn Sink>,
|
||||||
|
@ -103,7 +113,7 @@ fn setup(args: &[String]) -> Setup {
|
||||||
"Path to a directory where system files (credentials, volume) will be cached. Can be different from cache option value",
|
"Path to a directory where system files (credentials, volume) will be cached. Can be different from cache option value",
|
||||||
"SYTEMCACHE",
|
"SYTEMCACHE",
|
||||||
).optflag("", "disable-audio-cache", "Disable caching of the audio data.")
|
).optflag("", "disable-audio-cache", "Disable caching of the audio data.")
|
||||||
.reqopt("n", "name", "Device name", "NAME")
|
.optopt("n", "name", "Device name", "NAME")
|
||||||
.optopt("", "device-type", "Displayed device type", "DEVICE_TYPE")
|
.optopt("", "device-type", "Displayed device type", "DEVICE_TYPE")
|
||||||
.optopt(
|
.optopt(
|
||||||
"b",
|
"b",
|
||||||
|
@ -119,6 +129,7 @@ fn setup(args: &[String]) -> Setup {
|
||||||
)
|
)
|
||||||
.optflag("", "emit-sink-events", "Run program set by --onevent before sink is opened and after it is closed.")
|
.optflag("", "emit-sink-events", "Run program set by --onevent before sink is opened and after it is closed.")
|
||||||
.optflag("v", "verbose", "Enable verbose output")
|
.optflag("v", "verbose", "Enable verbose output")
|
||||||
|
.optflag("V", "version", "Display librespot version string")
|
||||||
.optopt("u", "username", "Username to sign in with", "USERNAME")
|
.optopt("u", "username", "Username to sign in with", "USERNAME")
|
||||||
.optopt("p", "password", "Password", "PASSWORD")
|
.optopt("p", "password", "Password", "PASSWORD")
|
||||||
.optopt("", "proxy", "HTTP proxy to use when connecting", "PROXY")
|
.optopt("", "proxy", "HTTP proxy to use when connecting", "PROXY")
|
||||||
|
@ -225,15 +236,20 @@ fn setup(args: &[String]) -> Setup {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if matches.opt_present("version") {
|
||||||
|
print_version();
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
let verbose = matches.opt_present("verbose");
|
let verbose = matches.opt_present("verbose");
|
||||||
setup_logging(verbose);
|
setup_logging(verbose);
|
||||||
|
|
||||||
info!(
|
info!(
|
||||||
"librespot {} ({}). Built on {}. Build ID: {}",
|
"librespot {semver} {sha} (Built on {build_date}, Build ID: {build_id})",
|
||||||
version::short_sha(),
|
semver = version::SEMVER,
|
||||||
version::commit_date(),
|
sha = version::SHA_SHORT,
|
||||||
version::short_now(),
|
build_date = version::BUILD_DATE,
|
||||||
version::build_id()
|
build_id = version::BUILD_ID
|
||||||
);
|
);
|
||||||
|
|
||||||
let backend_name = matches.opt_str("backend");
|
let backend_name = matches.opt_str("backend");
|
||||||
|
@ -311,7 +327,7 @@ fn setup(args: &[String]) -> Setup {
|
||||||
.map(|port| port.parse::<u16>().unwrap())
|
.map(|port| port.parse::<u16>().unwrap())
|
||||||
.unwrap_or(0);
|
.unwrap_or(0);
|
||||||
|
|
||||||
let name = matches.opt_str("name").unwrap();
|
let name = matches.opt_str("name").unwrap_or("Librespot".to_string());
|
||||||
|
|
||||||
let credentials = {
|
let credentials = {
|
||||||
let cached_credentials = cache.as_ref().and_then(Cache::credentials);
|
let cached_credentials = cache.as_ref().and_then(Cache::credentials);
|
||||||
|
@ -334,7 +350,7 @@ fn setup(args: &[String]) -> Setup {
|
||||||
let device_id = device_id(&name);
|
let device_id = device_id(&name);
|
||||||
|
|
||||||
SessionConfig {
|
SessionConfig {
|
||||||
user_agent: version::version_string(),
|
user_agent: version::VERSION_STRING.to_string(),
|
||||||
device_id: device_id,
|
device_id: device_id,
|
||||||
proxy: matches.opt_str("proxy").or(std::env::var("http_proxy").ok()).map(
|
proxy: matches.opt_str("proxy").or(std::env::var("http_proxy").ok()).map(
|
||||||
|s| {
|
|s| {
|
||||||
|
|
Loading…
Reference in a new issue