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() {
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 {
tfhub_token := os.input('Please enter your tfhub token: ')
@ -108,31 +97,23 @@ fn login() {
info_message('Your Flist Hub token is already saved.')
}
if !docker_logged_in {
info_message('Logging in to Docker Hub...')
exit_code := os.system('sudo docker login')
if exit_code == 0 {
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.')
result := os.system('sudo docker login')
if result == 0 {
info_message('\nYou are already logged in to Docker.')
}
success_message('Login process completed.')
}
fn logout() {
if !os.exists(token_file) {
error_message('You are not logged in.')
return
if os.exists(token_file) {
os.rm(token_file) or {panic(err)}
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')
if exit_code != 0 {
error_message('Failed to log out from Docker Hub.')
@ -144,7 +125,7 @@ fn logout() {
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')
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)
}