11use crate :: token:: { get_smb_token:: get_smb_token, is_logged_in:: is_logged_in} ;
22use anyhow:: { anyhow, Result } ;
3- use dialoguer:: { theme:: ColorfulTheme , Input } ;
3+ use dialoguer:: { console:: Term , theme:: ColorfulTheme , Input , Select } ;
4+ use smbcloud_model:: runner:: Runner ;
45use smbcloud_network:: environment:: Environment ;
56use smbcloud_networking_project:: {
6- crud_project_read:: get_project, crud_project_update:: update_project_description ,
7+ crud_project_read:: get_project, crud_project_update:: update_project ,
78} ;
89use spinners:: Spinner ;
910
@@ -13,10 +14,7 @@ use crate::{
1314 ui:: { description, succeed_message, succeed_symbol} ,
1415} ;
1516
16- pub async fn process_project_update_description (
17- env : Environment ,
18- project_id : String ,
19- ) -> Result < CommandResult > {
17+ pub async fn process_project_update ( env : Environment , project_id : String ) -> Result < CommandResult > {
2018 // Check credentials.
2119 let is_logged_in = is_logged_in ( env) . await ?;
2220 if !is_logged_in {
@@ -29,6 +27,7 @@ pub async fn process_project_update_description(
2927 if let Some ( project_description) = project. description {
3028 println ! ( "Description: {}" , description( & project_description) ) ;
3129 }
30+ println ! ( "Runner: {}" , project. runner) ;
3231
3332 // Prompt for new description
3433 let new_description = match Input :: < String > :: with_theme ( & ColorfulTheme :: default ( ) )
@@ -38,11 +37,20 @@ pub async fn process_project_update_description(
3837 Ok ( desc) => desc,
3938 Err ( _) => return Err ( anyhow ! ( "Invalid description." ) ) ,
4039 } ;
40+
41+ let runners = vec ! [ Runner :: NodeJs , Runner :: Swift , Runner :: Ruby ] ;
42+ let runner = Select :: with_theme ( & ColorfulTheme :: default ( ) )
43+ . items ( & runners)
44+ . default ( 0 )
45+ . interact_on_opt ( & Term :: stderr ( ) )
46+ . map ( |i| runners[ i. unwrap ( ) ] )
47+ . unwrap ( ) ;
48+
4149 let spinner = Spinner :: new (
4250 spinners:: Spinners :: SimpleDotsScrolling ,
4351 succeed_message ( "Loading" ) ,
4452 ) ;
45- update_project_description ( env, access_token, project_id, & new_description) . await ?;
53+ update_project ( env, access_token, project_id, & new_description, runner ) . await ?;
4654 Ok ( CommandResult {
4755 spinner,
4856 symbol : succeed_symbol ( ) ,
0 commit comments