@@ -32,12 +32,25 @@ pub async fn start_redis_server() -> Result<(RedisServer, String), Box<dyn std::
32
32
let redis_home = Path :: new ( & colink_home) . join ( "redis-server" ) ;
33
33
let program = Path :: new ( & redis_home) . join ( "redis-server" ) ;
34
34
if std:: fs:: metadata ( program. clone ( ) ) . is_err ( ) {
35
- download_tgz (
36
- "https://github.com/CoLearn-Dev/redis-static-binaries/releases/download/7.0.8/redis-server.tar.gz" ,
37
- "a28519717820c8af1d7d2371eeb17feb2abb4d70651f1a975b57977f9be7aacc" ,
38
- redis_home. to_str ( ) . unwrap ( ) ,
39
- )
40
- . await ?;
35
+ let base_url = "https://github.com/CoLearn-Dev/redis-binaries/releases/download/7.0.8" ;
36
+ let platform = format ! ( "{}-{}" , std:: env:: consts:: OS , std:: env:: consts:: ARCH ) ;
37
+ let ( url, sha256) = match platform. as_str ( ) {
38
+ "linux-x86_64" => (
39
+ format ! ( "{}/redis-server-{}.tar.gz" , base_url, platform) ,
40
+ "5575cf43f41ef1bc9915667ca42822836e1c8f89f8bf338c2a9942617ba83714" ,
41
+ ) ,
42
+ "macos-x86_64" => (
43
+ format ! ( "{}/redis-server-{}.tar.gz" , base_url, platform) ,
44
+ "97c23a254283c259b764ad42ddd83eef4e138dbde057c7b862290bb283938a3b" ,
45
+ ) ,
46
+ _ => {
47
+ return Err ( format ! (
48
+ "Cannot find the redis-server binary for platform {}." ,
49
+ platform
50
+ ) ) ?;
51
+ }
52
+ } ;
53
+ download_tgz ( & url, sha256, redis_home. to_str ( ) . unwrap ( ) ) . await ?;
41
54
}
42
55
let process = Command :: new ( program)
43
56
. args ( [
0 commit comments