@@ -19,43 +19,43 @@ export interface Config {
1919 git ?: Path
2020}
2121
22- function platform_cache_default ( ) {
22+ function platform_cache_default ( home : Path ) {
2323 switch ( Deno . build . os ) {
2424 case 'darwin' :
25- return Path . home ( ) . join ( 'Library/Caches' )
25+ return home . join ( 'Library/Caches' )
2626 case 'windows' :
27- return flatmap ( Deno . env . get ( "LOCALAPPDATA" ) , Path . abs ) ?? Path . home ( ) . join ( 'AppData/Local' )
27+ return flatmap ( Deno . env . get ( "LOCALAPPDATA" ) , Path . abs ) ?? home . join ( 'AppData/Local' )
2828 default :
29- return Path . home ( ) . join ( '.cache' )
29+ return home . join ( '.cache' )
3030 }
3131}
3232
33- function platform_data_home_default ( ) {
33+ function platform_data_home_default ( home : Path ) {
3434 switch ( host ( ) . platform ) {
3535 case 'darwin' :
36- return Path . home ( ) . join ( "Library/Application Support" )
36+ return home . join ( "Library/Application Support" )
3737 case 'windows' : {
3838 const LOCALAPPDATA = Deno . env . get ( 'LOCALAPPDATA' )
3939 if ( LOCALAPPDATA ) {
4040 return new Path ( LOCALAPPDATA ) . join ( "pkgx" )
4141 } else {
42- return Path . home ( ) . join ( "AppData/Local/pkgx" )
42+ return home . join ( "AppData/Local/pkgx" )
4343 } }
4444 default :
45- return Path . home ( ) . join ( ".local/share" )
45+ return home . join ( ".local/share" )
4646 }
4747}
4848
4949const SEP = Deno . build . os == 'windows' ? ';' : ':'
5050
5151export function ConfigDefault ( env = Deno . env . toObject ( ) ) : Config {
52- const prefix = flatmap ( env [ 'PKGX_DIR' ] ?. trim ( ) , x => new Path ( x ) ) ?? Path . home ( ) . join ( '.pkgx' )
52+ const home = flatmap ( env [ 'PKGX_HOME' ] , x => new Path ( x ) ) ?? Path . home ( )
53+ const prefix = flatmap ( env [ 'PKGX_DIR' ] ?. trim ( ) , x => new Path ( x ) ) ?? home . join ( '.pkgx' )
5354 const pantries = env [ 'PKGX_PANTRY_PATH' ] ?. split ( SEP ) . compact ( x => flatmap ( x . trim ( ) , x => Path . abs ( x ) ?? Path . cwd ( ) . join ( x ) ) ) ?? [ ]
54- const cache = ( flatmap ( env [ "XDG_CACHE_HOME" ] , Path . abs ) ?? platform_cache_default ( ) ) . join ( "pkgx" )
55- const data = ( flatmap ( env [ "XDG_DATA_HOME" ] , Path . abs ) ?? platform_data_home_default ( ) ) . join ( "pkgx" )
55+ const cache = ( flatmap ( env [ "XDG_CACHE_HOME" ] , Path . abs ) ?? platform_cache_default ( home ) ) . join ( "pkgx" )
56+ const data = ( flatmap ( env [ "XDG_DATA_HOME" ] , Path . abs ) ?? platform_data_home_default ( home ) ) . join ( "pkgx" )
5657 const isCI = boolize ( env [ 'CI' ] ) ?? false
5758 const UserAgent = flatmap ( getv ( ) , v => `libpkgx/${ v } ` ) ?? 'libpkgx'
58-
5959 //TODO prefer 'xz' on Linux (as well) if supported
6060 const compression = ! isCI && host ( ) . platform == 'darwin' ? 'xz' : 'gz'
6161
0 commit comments