1
+ # https://github.com/JuliaLang/julia/blob/fae0d0ad3e5d9804533435fe81f4eaac819895af/stdlib/REPL/src/REPL.jl#L1727C1-L1795C4
2
+
3
+ function banner (io:: IO = stdout ; short = false )
4
+ if Base. GIT_VERSION_INFO. tagged_commit
5
+ commit_string = Base. TAGGED_RELEASE_BANNER
6
+ elseif isempty (Base. GIT_VERSION_INFO. commit)
7
+ commit_string = " "
8
+ else
9
+ days = Int (floor ((ccall (:jl_clock_now , Float64, ()) - Base. GIT_VERSION_INFO. fork_master_timestamp) / (60 * 60 * 24 )))
10
+ days = max (0 , days)
11
+ unit = days == 1 ? " day" : " days"
12
+ distance = Base. GIT_VERSION_INFO. fork_master_distance
13
+ commit = Base. GIT_VERSION_INFO. commit_short
14
+
15
+ if distance == 0
16
+ commit_string = " Commit $(commit) ($(days) $(unit) old master)"
17
+ else
18
+ branch = Base. GIT_VERSION_INFO. branch
19
+ commit_string = " $(branch) /$(commit) (fork: $(distance) commits, $(days) $(unit) )"
20
+ end
21
+ end
22
+
23
+ commit_date = isempty (Base. GIT_VERSION_INFO. date_string) ? " " : " ($(split (Base. GIT_VERSION_INFO. date_string)[1 ]) )"
24
+
25
+ if get (io, :color , false ):: Bool
26
+ c = Base. text_colors
27
+ tx = c[:normal ] # text
28
+ jl = c[:normal ] # julia
29
+ jc = c[:blue ] # juliacall
30
+ d1 = c[:bold ] * c[:blue ] # first dot
31
+ d2 = c[:bold ] * c[:red ] # second dot
32
+ d3 = c[:bold ] * c[:green ] # third dot
33
+ d4 = c[:bold ] * c[:magenta ] # fourth dot
34
+
35
+ if short
36
+ print (io,"""
37
+ $(d3) o$(tx) | Version $(VERSION ) PythonCall: $(PythonCall. VERSION )
38
+ $(d2) o$(tx) $(d4) o$(tx) | $(commit_string)
39
+ """ )
40
+ else
41
+ print (io,""" $(d3) _$(tx)
42
+ $(d1) _$(tx) $(jl) _$(tx) $(d2) _$(d3) (_)$(d4) _$(tx)$(jc) _ _ $(tx) | Documentation: https://juliapy.github.io/PythonCall.jl/
43
+ $(d1) (_)$(jl) | $(d2) (_)$(tx) $(d4) (_)$(tx)$(jc) | || |$(tx) |
44
+ $(jl) _ _ _| |_ __ _$(jc) ___ __ _ | || |$(tx) | Julia: $(VERSION )
45
+ $(jl) | | | | | | |/ _` |$(jc) / __|/ _` || || |$(tx) | PythonCall: $(PythonCall. VERSION )
46
+ $(jl) | | |_| | | | (_| |$(jc) |__ (_| || || |$(tx) |
47
+ $(jl) _/ |\\ __'_|_|_|\\ __'_|$(jc) \\ ___|\\ __'_||_||_|$(tx) | This REPL is running via Python using JuliaCall.
48
+ $(jl) |__/$(tx) | Only basic features are supported.
49
+
50
+ """ )
51
+ end
52
+ else
53
+ if short
54
+ print (io,"""
55
+ o | Version $(VERSION ) PythonCall: $(PythonCall. VERSION )
56
+ o o | $(commit_string)
57
+ """ )
58
+ else
59
+ print (io,"""
60
+ _
61
+ _ _ _(_)_ _ _ | Documentation: https://juliapy.github.io/PythonCall.jl/
62
+ (_) | (_) (_) | || | |
63
+ _ _ _| |_ __ _ ___ __ _ | || | | Julia: $(VERSION )
64
+ | | | | | | |/ _` |/ __|/ _` || || | | PythonCall: $(PythonCall. VERSION )
65
+ | | |_| | | | (_| | |__ (_| || || | |
66
+ _/ |\\ __'_|_|_|\\ __'_|\\ ___|\\ __'_||_||_| | This REPL is running via Python using JuliaCall.
67
+ |__/ | Only basic features are supported.
68
+
69
+ """ )
70
+ end
71
+ end
72
+ end
0 commit comments