@@ -1704,21 +1704,11 @@ function ends_with_semicolon(code)
17041704 return semi
17051705end
17061706
1707- """
1708- banner(io::IO = stdout, preferred::Symbol = :full)
1709-
1710- Print the "Julia" informative banner to `io`, using the `preferred` variant
1711- if reasonable and known.
1712-
1713- !!! warning
1714- The particular banner selected by `preferred` is liable to being changed
1715- without warning. The current variants are: `:tiny`, `:short`, `:narrow`, and `:full`.
1716- """
1717- function banner (io:: IO = stdout , preferred:: Symbol = :full )
1718- commit_string = if Base. GIT_VERSION_INFO. tagged_commit
1719- Base. AnnotatedString (TAGGED_RELEASE_BANNER, :face => :shadow )
1707+ function banner (io:: IO = stdout ; short = false )
1708+ if Base. GIT_VERSION_INFO. tagged_commit
1709+ commit_string = Base. TAGGED_RELEASE_BANNER
17201710 elseif isempty (Base. GIT_VERSION_INFO. commit)
1721- styled ""
1711+ commit_string = " "
17221712 else
17231713 days = Int (floor ((ccall (:jl_clock_now , Float64, ()) - Base. GIT_VERSION_INFO. fork_master_timestamp) / (60 * 60 * 24 )))
17241714 days = max (0 , days)
@@ -1727,65 +1717,60 @@ function banner(io::IO = stdout, preferred::Symbol = :full)
17271717 commit = Base. GIT_VERSION_INFO. commit_short
17281718
17291719 if distance == 0
1730- styled """ Commit {grey:$commit} \
1731- ({warning:⌛ {italic:$days $unit}} old master)"""
1720+ commit_string = " Commit $(commit) ($(days) $(unit) old master)"
17321721 else
17331722 branch = Base. GIT_VERSION_INFO. branch
1734- styled """ {emphasis:$branch}/{grey:$commit} \
1735- ({italic:{success:{bold,(slant=normal):↑} $distance commits}, \
1736- {warning:{(slant=normal):⌛} $days $unit}})"""
1723+ commit_string = " $(branch) /$(commit) (fork: $(distance) commits, $(days) $(unit) )"
17371724 end
17381725 end
17391726
1740- commit_date = isempty (Base. GIT_VERSION_INFO. date_string) ? " " : styled " {light:($(split(Base.GIT_VERSION_INFO.date_string)[1]))}"
1741- doclink = styled " {bold:Documentation:} {(underline=grey),link={https://docs.julialang.org}:https://docs.julialang.org}"
1742- help = styled " Type {repl_prompt_help:?} for help, {repl_prompt_pkg:]?} for {(underline=grey),link={https://pkgdocs.julialang.org/}:Pkg} help."
1743-
1744- sizenames = (:tiny , :short , :narrow , :full )
1745- maxsize = something (findfirst (== (preferred), sizenames), length (sizenames))
1746- size = min (if all (displaysize (io) .>= (8 , 70 )); 4 # Full size
1747- elseif all (displaysize (io) .>= (8 , 45 )); 3 # Narrower
1748- elseif all (displaysize (io) .>= (3 , 50 )); 2 # Tiny
1749- else 1 end ,
1750- max (0 , maxsize))
1751-
1752- if size == 4 # Full size
1753- print (io, styled """
1754- {bold,green:_}
1755- {bold,blue:_} _ {bold:{red:_}{green:(_)}{magenta:_}} {shadow:│} $doclink
1756- {bold,blue:(_)} | {bold:{red:(_)} {magenta:(_)}} {shadow:│}
1757- _ _ _| |_ __ _ {shadow:│} $help
1758- | | | | | | |/ _` | {shadow:│}
1759- | | |_| | | | (_| | {shadow:│} Version {bold:$VERSION}$commit_date
1760- _/ |\\ __'_|_|_|\\ __'_| {shadow:│} $commit_string
1761- |__/ {shadow:│}
1762- \n """ )
1763- elseif size == 3 # Rotated
1764- print (io, styled """
1765- {bold,green:_}
1766- {bold,blue:_} _ {bold:{red:_}{green:(_)}{magenta:_}}
1767- {bold,blue:(_)} | {bold:{red:(_)} {magenta:(_)}}
1768- _ _ _| |_ __ _
1769- | | | | | | |/ _` |
1770- | | |_| | | | (_| |
1771- _/ |\\ __'_|_|_|\\ __'_|
1772- |__/
1773-
1774- $doclink
1775- $help
1776-
1777- Version {bold:$VERSION}$commit_date
1778- $commit_string
1779- \n """ )
1780- elseif size == 2 # Tiny
1781- print (io, styled """
1782- {bold,green:o} {shadow:│} Version {bold:$VERSION}$commit_date
1783- {bold:{red:o} {magenta:o}} {shadow:│} $commit_string
1784- """ , ifelse (displaysize (io) > (12 , 0 ), " \n " , " " ))
1785- elseif size == 1 && Base. GIT_VERSION_INFO. tagged_commit # Text only
1786- print (io, styled """ {bold:{blue:∴} {magenta:Julia} $VERSION}$commit_date\n """ )
1787- elseif size == 1 # Text only
1788- print (io, styled """ {bold:{blue:∴} {magenta:Julia} $VERSION}$commit_date $commit_string\n """ )
1727+ commit_date = isempty (Base. GIT_VERSION_INFO. date_string) ? " " : " ($(split (Base. GIT_VERSION_INFO. date_string)[1 ]) )"
1728+
1729+ if get (io, :color , false ):: Bool
1730+ c = Base. text_colors
1731+ tx = c[:normal ] # text
1732+ jl = c[:normal ] # julia
1733+ d1 = c[:bold ] * c[:blue ] # first dot
1734+ d2 = c[:bold ] * c[:red ] # second dot
1735+ d3 = c[:bold ] * c[:green ] # third dot
1736+ d4 = c[:bold ] * c[:magenta ] # fourth dot
1737+
1738+ if short
1739+ print (io,"""
1740+ $(d3) o$(tx) | Version $(VERSION )$(commit_date)
1741+ $(d2) o$(tx) $(d4) o$(tx) | $(commit_string)
1742+ """ )
1743+ else
1744+ print (io,""" $(d3) _$(tx)
1745+ $(d1) _$(tx) $(jl) _$(tx) $(d2) _$(d3) (_)$(d4) _$(tx) | Documentation: https://docs.julialang.org
1746+ $(d1) (_)$(jl) | $(d2) (_)$(tx) $(d4) (_)$(tx) |
1747+ $(jl) _ _ _| |_ __ _$(tx) | Type \" ?\" for help, \" ]?\" for Pkg help.
1748+ $(jl) | | | | | | |/ _` |$(tx) |
1749+ $(jl) | | |_| | | | (_| |$(tx) | Version $(VERSION )$(commit_date)
1750+ $(jl) _/ |\\ __'_|_|_|\\ __'_|$(tx) | $(commit_string)
1751+ $(jl) |__/$(tx) |
1752+
1753+ """ )
1754+ end
1755+ else
1756+ if short
1757+ print (io,"""
1758+ o | Version $(VERSION )$(commit_date)
1759+ o o | $(commit_string)
1760+ """ )
1761+ else
1762+ print (io,"""
1763+ _
1764+ _ _ _(_)_ | Documentation: https://docs.julialang.org
1765+ (_) | (_) (_) |
1766+ _ _ _| |_ __ _ | Type \" ?\" for help, \" ]?\" for Pkg help.
1767+ | | | | | | |/ _` | |
1768+ | | |_| | | | (_| | | Version $(VERSION )$(commit_date)
1769+ _/ |\\ __'_|_|_|\\ __'_| | $(commit_string)
1770+ |__/ |
1771+
1772+ """ )
1773+ end
17891774 end
17901775end
17911776
0 commit comments