made flist cli work for linux and macos

This commit is contained in:
mik-tf 2024-10-03 02:49:11 -04:00
parent 8d45ef4a4c
commit 72842a70d4

39
flist.v
View File

@ -88,17 +88,6 @@ fn uninstall() {
fn login() { fn login() {
mut token_exists := os.exists(token_file) mut token_exists := os.exists(token_file)
mut docker_logged_in := false
docker_user_result := os.execute('docker-credential-$(jq -r .credsStore ~/.docker/config.json) list | jq -r \'. | to_entries[] | select(.key | contains("docker.io")) | last(.value)\' | head -n 1')
if docker_user_result.exit_code == 0 && docker_user_result.output.trim_space() != '' {
docker_logged_in = true
}
if token_exists && docker_logged_in {
info_message('You are already logged in to Docker Hub and your Flist Hub token is present.')
return
}
if !token_exists { if !token_exists {
tfhub_token := os.input('Please enter your tfhub token: ') tfhub_token := os.input('Please enter your tfhub token: ')
@ -108,31 +97,23 @@ fn login() {
info_message('Your Flist Hub token is already saved.') info_message('Your Flist Hub token is already saved.')
} }
if !docker_logged_in { result := os.system('sudo docker login')
info_message('Logging in to Docker Hub...')
exit_code := os.system('sudo docker login') if result == 0 {
if exit_code == 0 { info_message('\nYou are already logged in to Docker.')
success_message('Successfully logged in to Docker Hub.')
} else {
error_message('Failed to log in to Docker Hub.')
return
}
} else {
info_message('Already logged in to Docker Hub.')
} }
success_message('Login process completed.') success_message('Login process completed.')
} }
fn logout() { fn logout() {
if !os.exists(token_file) { if os.exists(token_file) {
error_message('You are not logged in.') os.rm(token_file) or {panic(err)}
return success_message('Your Flist Hub Token has been removed')
} else {
info_message('Your Flist Hub Token was already not present.')
} }
os.rm(token_file) or { panic(err) }
info_message('Logging out from Docker Hub...')
exit_code := os.system('sudo docker logout') exit_code := os.system('sudo docker logout')
if exit_code != 0 { if exit_code != 0 {
error_message('Failed to log out from Docker Hub.') error_message('Failed to log out from Docker Hub.')
@ -144,7 +125,7 @@ fn logout() {
fn push(tag string) { fn push(tag string) {
docker_user_result := os.execute('docker-credential-$(jq -r .credsStore ~/.docker/config.json) list | jq -r \'. | to_entries[] | select(.key | contains("docker.io")) | last(.value)\' | head -n 1') docker_user_result := os.execute('docker-credential-$(jq -r .credsStore ~/.docker/config.json) list | jq -r \'. | to_entries[] | select(.key | contains("docker.io")) | last(.value)\' | head -n 1')
if docker_user_result.exit_code != 0 || docker_user_result.output.trim_space() == '' { if docker_user_result.exit_code != 0 || docker_user_result.output.trim_space() == '' {
error_message('Failed to get Docker username. Please ensure you are logged in to Docker.') error_message('Failed to get Docker username.')
exit(1) exit(1)
} }