@@ -1777,7 +1777,7 @@ const fonts = {
1777
1777
"?" : "\uff1f"
1778
1778
}
1779
1779
} ;
1780
- let font = titles = false ;
1780
+ let font = titles = random = false ;
1781
1781
1782
1782
function unicodereverse ( s ) {
1783
1783
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) {
1816
1816
1817
1817
function getfancy ( txt ) {
1818
1818
( txt === '' ) && usage ( ) ;
1819
+ if ( random ) {
1820
+ var keys = Object . keys ( fonts ) ;
1821
+ font = keys [ Math . floor ( Math . random ( ) * keys . length ) ] ;
1822
+ }
1819
1823
if ( font ) {
1820
1824
fonts . hasOwnProperty ( font ) ? walk ( txt , font ) : usage ( 'unknown font' ) ;
1821
1825
} else {
@@ -1837,6 +1841,10 @@ function setArgs() {
1837
1841
type : "boolean" ,
1838
1842
short : "t" ,
1839
1843
} ,
1844
+ random : {
1845
+ type : "boolean" ,
1846
+ short : "r" ,
1847
+ }
1840
1848
} ;
1841
1849
try {
1842
1850
const { values, positionals } = parseArgs ( {
@@ -1846,6 +1854,7 @@ function setArgs() {
1846
1854
} ) ;
1847
1855
font = values . font || false ;
1848
1856
titles = values . titles || false ;
1857
+ random = values . random || false ;
1849
1858
getfancy ( positionals . join ( " " ) ) ;
1850
1859
} catch ( e ) {
1851
1860
usage ( ) ;
@@ -1854,17 +1863,18 @@ function setArgs() {
1854
1863
1855
1864
function usage ( msg ) {
1856
1865
( 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
1858
1867
1859
1868
flags:
1860
1869
-f|--font (font) : output in a single font
1861
1870
-t|--titles : display titles in output
1871
+ -r|--random : pick a random font (clobbers -f)
1862
1872
1863
1873
examples:
1864
1874
sofancy -f wide aesthetics
1865
1875
aesthetics
1866
1876
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: /' )"
1868
1878
` ) ;
1869
1879
process . exit ( ) ;
1870
1880
}
0 commit comments