@@ -1777,7 +1777,7 @@ const fonts = {
17771777 "?" : "\uff1f"
17781778 }
17791779} ;
1780- let font = titles = false ;
1780+ let font = titles = random = false ;
17811781
17821782function unicodereverse ( s ) {
17831783 var regexSymbolWithCombiningMarks = / ( [ \0 - \u02FF \u0370 - \u1AAF \u1B00 - \u1DBF \u1E00 - \u20CF \u2100 - \uD7FF \uE000 - \uFE1F \uFE30 - \uFFFF ] | [ \uD800 - \uDBFF ] [ \uDC00 - \uDFFF ] | [ \uD800 - \uDBFF ] (? ! [ \uDC00 - \uDFFF ] ) | (?: [ ^ \uD800 - \uDBFF ] | ^ ) [ \uDC00 - \uDFFF ] ) ( [ \u0300 - \u036F \u1AB0 - \u1AFF \u1DC0 - \u1DFF \u20D0 - \u20FF \uFE20 - \uFE2F ] + ) / g;
@@ -1816,6 +1816,10 @@ function walk(txt, f) {
18161816
18171817function getfancy ( txt ) {
18181818 ( txt === '' ) && usage ( ) ;
1819+ if ( random ) {
1820+ var keys = Object . keys ( fonts ) ;
1821+ font = keys [ Math . floor ( Math . random ( ) * keys . length ) ] ;
1822+ }
18191823 if ( font ) {
18201824 fonts . hasOwnProperty ( font ) ? walk ( txt , font ) : usage ( 'unknown font' ) ;
18211825 } else {
@@ -1837,6 +1841,10 @@ function setArgs() {
18371841 type : "boolean" ,
18381842 short : "t" ,
18391843 } ,
1844+ random : {
1845+ type : "boolean" ,
1846+ short : "r" ,
1847+ }
18401848 } ;
18411849 try {
18421850 const { values, positionals } = parseArgs ( {
@@ -1846,6 +1854,7 @@ function setArgs() {
18461854 } ) ;
18471855 font = values . font || false ;
18481856 titles = values . titles || false ;
1857+ random = values . random || false ;
18491858 getfancy ( positionals . join ( " " ) ) ;
18501859 } catch ( e ) {
18511860 usage ( ) ;
@@ -1854,17 +1863,18 @@ function setArgs() {
18541863
18551864function usage ( msg ) {
18561865 ( msg ) && console . log ( `error: ${ msg } \n` ) ;
1857- console . log ( `usage: sofancy [-f (font) | -t] string
1866+ console . log ( `usage: sofancy [-f (font) | -t | -r ] string
18581867
18591868 flags:
18601869 -f|--font (font) : output in a single font
18611870 -t|--titles : display titles in output
1871+ -r|--random : pick a random font (clobbers -f)
18621872
18631873 examples:
18641874 sofancy -f wide aesthetics
18651875aesthetics
18661876 sofancy -t some string | fzf | xsel -i
1867- git commit -m "$(sofancy -f bolditalic STYLIN )"
1877+ git commit -m "$(sofancy -tr message | sed 's/^.* /docs: /' )"
18681878` ) ;
18691879 process . exit ( ) ;
18701880}
0 commit comments