28 lines
825 B
Factor
28 lines
825 B
Factor
|
! Copyright (C) 2010 Slava Pestov.
|
||
|
! See http://factorcode.org/license.txt for BSD license.
|
||
|
USING: accessors io.files.info io.pathnames kernel math
|
||
|
math.parser namespaces sequences mason.config ;
|
||
|
IN: mason.disk
|
||
|
|
||
|
: gb ( -- n ) 30 2^ ; inline
|
||
|
|
||
|
: sufficient-disk-space? ( -- ? )
|
||
|
! We want at least 300Mb to be available before starting
|
||
|
! a build.
|
||
|
current-directory get file-system-info available-space>>
|
||
|
gb > ;
|
||
|
|
||
|
: check-disk-space ( -- )
|
||
|
sufficient-disk-space? [
|
||
|
"Less than 1 Gb free disk space." throw
|
||
|
] unless ;
|
||
|
|
||
|
: mb-str ( n -- string ) gb /i number>string ;
|
||
|
|
||
|
: disk-usage ( -- string )
|
||
|
builds-dir get file-system-info
|
||
|
[ used-space>> ] [ total-space>> ] bi
|
||
|
[ [ mb-str ] bi@ " / " glue " Gb used" append ]
|
||
|
[ [ 100 * ] dip /i number>string "(" "%)" surround ] 2bi
|
||
|
" " glue ;
|