@@ -638,8 +638,9 @@ fn config_from_env() -> Result<EnvConfig> {
638
638
// ======= redis =======
639
639
let redis = if let Ok ( url) = env:: var ( "SCCACHE_REDIS" ) {
640
640
let ttl = number_from_env_var ( "SCCACHE_REDIS_EXPIRATION" )
641
- . or_else ( || number_from_env_var ( "SCCACHE_REDIS_TTL" ) ) ;
642
- let ttl = ttl. transpose ( ) ?. unwrap_or ( DEFAULT_REDIS_CACHE_TTL ) ;
641
+ . or_else ( || number_from_env_var ( "SCCACHE_REDIS_TTL" ) )
642
+ . transpose ( ) ?
643
+ . unwrap_or ( DEFAULT_REDIS_CACHE_TTL ) ;
643
644
644
645
let key_prefix = key_prefix_from_env_var ( "SCCACHE_REDIS_KEY_PREFIX" ) ;
645
646
@@ -652,21 +653,28 @@ fn config_from_env() -> Result<EnvConfig> {
652
653
None
653
654
} ;
654
655
656
+ if env:: var_os ( "SCCACHE_REDIS_EXPIRATION" ) . is_some ( )
657
+ && env:: var_os ( "SCCACHE_REDIS_TTL" ) . is_some ( )
658
+ {
659
+ bail ! ( "You mustn't set both SCCACHE_REDIS_EXPIRATION and SCCACHE_REDIS_TTL. Use only one." ) ;
660
+ }
661
+
655
662
// ======= memcached =======
656
- let expiration = match env:: var ( "SCCACHE_MEMCACHED_EXPIRATION" ) . ok ( ) {
657
- None => DEFAULT_MEMCACHED_CACHE_EXPIRATION ,
658
- Some ( v) => v
659
- . parse ( )
660
- . map_err ( |err| anyhow ! ( "SCCACHE_MEMCACHED_EXPIRATION value is invalid: {err:?}" ) ) ?,
661
- } ;
663
+ let memcached = if let Ok ( url) = env:: var ( "SCCACHE_MEMCACHED" ) {
664
+ let expiration = number_from_env_var ( "SCCACHE_MEMCACHED_EXPIRATION" )
665
+ . transpose ( ) ?
666
+ . unwrap_or ( DEFAULT_MEMCACHED_CACHE_EXPIRATION ) ;
662
667
663
- let memcached = env :: var ( "SCCACHE_MEMCACHED" )
664
- . ok ( )
665
- . map ( |url| MemcachedCacheConfig {
668
+ let key_prefix = key_prefix_from_env_var ( "SCCACHE_MEMCACHED_KEY_PREFIX" ) ;
669
+
670
+ Some ( MemcachedCacheConfig {
666
671
url,
667
672
expiration,
668
- key_prefix : String :: new ( ) ,
669
- } ) ;
673
+ key_prefix,
674
+ } )
675
+ } else {
676
+ None
677
+ } ;
670
678
671
679
// ======= GCP/GCS =======
672
680
if ( env:: var ( "SCCACHE_GCS_CREDENTIALS_URL" ) . is_ok ( )
0 commit comments