@@ -26,21 +26,16 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
26
26
return None ;
27
27
}
28
28
29
- match get_go_version ( ) {
30
- Some ( go_version) => {
31
- let mut module = context. new_module ( "golang" ) ;
32
- let config: GoConfig = GoConfig :: try_load ( module. config ) ;
29
+ let mut module = context. new_module ( "golang" ) ;
30
+ let config: GoConfig = GoConfig :: try_load ( module. config ) ;
33
31
34
- module. set_style ( config. style ) ;
35
- module. create_segment ( "symbol" , & config. symbol ) ;
32
+ module. set_style ( config. style ) ;
33
+ module. create_segment ( "symbol" , & config. symbol ) ;
36
34
37
- let formatted_version = format_go_version ( & go_version ) ?;
38
- module. create_segment ( "version" , & config. version . with_value ( & formatted_version) ) ;
35
+ let formatted_version = format_go_version ( & get_go_version ( ) ? ) ?;
36
+ module. create_segment ( "version" , & config. version . with_value ( & formatted_version) ) ;
39
37
40
- Some ( module)
41
- }
42
- None => None ,
43
- }
38
+ Some ( module)
44
39
}
45
40
46
41
fn get_go_version ( ) -> Option < String > {
@@ -52,6 +47,9 @@ fn get_go_version() -> Option<String> {
52
47
}
53
48
54
49
fn format_go_version ( go_stdout : & str ) -> Option < String > {
50
+ // go version output looks like this:
51
+ // go version go1.13.3 linux/amd64
52
+
55
53
let version = go_stdout
56
54
// split into ["", "1.12.4 linux/amd64"]
57
55
. splitn ( 2 , "go version go" )
@@ -62,10 +60,7 @@ fn format_go_version(go_stdout: &str) -> Option<String> {
62
60
// return "1.12.4"
63
61
. next ( ) ?;
64
62
65
- let mut formatted_version = String :: with_capacity ( version. len ( ) + 1 ) ;
66
- formatted_version. push ( 'v' ) ;
67
- formatted_version. push_str ( version) ;
68
- Some ( formatted_version)
63
+ Some ( format ! ( "v{}" , version) )
69
64
}
70
65
71
66
#[ cfg( test) ]
0 commit comments