63 lines
1.6 KiB
Factor
63 lines
1.6 KiB
Factor
|
|
USING: kernel classes strings quotations words math math.parser arrays
|
|
combinators.cleave
|
|
accessors
|
|
system prettyprint splitting
|
|
sequences combinators sequences.deep
|
|
io
|
|
io.launcher
|
|
io.encodings.utf8
|
|
calendar
|
|
calendar.format ;
|
|
|
|
IN: update.util
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
DEFER: to-strings
|
|
|
|
: to-string ( obj -- str )
|
|
dup class
|
|
{
|
|
{ \ string [ ] }
|
|
{ \ quotation [ call ] }
|
|
{ \ word [ execute ] }
|
|
{ \ fixnum [ number>string ] }
|
|
{ \ array [ to-strings concat ] }
|
|
}
|
|
case ;
|
|
|
|
: to-strings ( seq -- str )
|
|
dup [ string? ] all?
|
|
[ ]
|
|
[ [ to-string ] map flatten ]
|
|
if ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
: cpu- ( -- cpu ) cpu unparse "." split "-" join ;
|
|
|
|
: platform ( -- string ) { [ os unparse ] cpu- } to-strings "-" join ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
: branch-name ( -- string ) "clean-" platform append ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
: gnu-make ( -- string )
|
|
os { freebsd openbsd netbsd } member? [ "gmake" ] [ "make" ] if ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
: git-id ( -- id )
|
|
{ "git" "show" } utf8 <process-reader> [ readln ] with-input-stream
|
|
" " split second ;
|
|
|
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
: datestamp ( -- string )
|
|
now
|
|
{ year>> month>> day>> hour>> minute>> } <arr>
|
|
[ pad-00 ] map "-" join ;
|