From b927fc5b5de22a76c10eaa99bfcdd2e8433c99fe Mon Sep 17 00:00:00 2001 From: despiegk Date: Wed, 1 Jan 2025 15:25:58 +0100 Subject: [PATCH] ggolang install ok --- examples/installers/installers.vsh | 2 +- lib/core/readme.md | 1 + lib/installers/lang/golang/golang_actions.v | 9 ++------- lib/osal/cmds.v | 11 ++++++++++- lib/osal/file.v | 21 +++++++++++++++++++-- lib/virt/docker/docker_engine.v | 7 +++---- 6 files changed, 36 insertions(+), 15 deletions(-) diff --git a/examples/installers/installers.vsh b/examples/installers/installers.vsh index d0820656..a1d65dcd 100755 --- a/examples/installers/installers.vsh +++ b/examples/installers/installers.vsh @@ -39,4 +39,4 @@ core.interactive_set()! //make sure the sudo works so we can do things even if i // rust.install(reset:false)! // python.install(reset:false)! // nodejs.install(reset:false)! -golang.install(reset:true)! \ No newline at end of file +golang.install(reset:false)! \ No newline at end of file diff --git a/lib/core/readme.md b/lib/core/readme.md index c52e8684..7507f931 100644 --- a/lib/core/readme.md +++ b/lib/core/readme.md @@ -73,6 +73,7 @@ value := core.memdb_get('key') ``` ### Sudo Operations + ```v // Check sudo requirements if core.sudo_required()! { diff --git a/lib/installers/lang/golang/golang_actions.v b/lib/installers/lang/golang/golang_actions.v index db258c48..ce56fd42 100644 --- a/lib/installers/lang/golang/golang_actions.v +++ b/lib/installers/lang/golang/golang_actions.v @@ -24,8 +24,6 @@ fn installed_() !bool { vstring = vstring.all_after_first('version').all_after_first('go').all_before(' ').trim_space() v := texttools.version(vstring) - println(vstring) - println(v) if v >= texttools.version(version) { return true } @@ -59,11 +57,8 @@ fn install_() ! { minsize_kb: 40000 expand_dir: expand_dir )! - - println(dest) - if true{exit(0)} - go_dest := '${osal.usr_local_path()!}/go' + println(go_dest) os.mv('${expand_dir}/go', go_dest)! os.rmdir_all(expand_dir)! osal.profile_path_add_remove(paths2add: '${go_dest}/bin')! @@ -90,7 +85,7 @@ fn destroy_() ! { osal.rm(' #next will find go as a binary and remove is like cmd delete ~/hero/bin/go - #/usr/local/go + /usr/local/go /root/hero/bin/go ~/.go ~/go diff --git a/lib/osal/cmds.v b/lib/osal/cmds.v index 541c7bc6..844e52db 100644 --- a/lib/osal/cmds.v +++ b/lib/osal/cmds.v @@ -245,7 +245,16 @@ pub fn cmd_delete(cmd string) ! { res := cmd_path(cmd2) or { '' } if res.len > 0 { if os.exists(res) { - os.rm(res)! + if core.sudo_path_ok(res)!{ + os.rm(res)! + }else{ + if core.interactive()!{ + execute_silent("sudo rm -rf ${res}")! + }else{ + return error("can't remove ${res} as sudo because non interactive as part of cmd delete.") + } + } + } } } diff --git a/lib/osal/file.v b/lib/osal/file.v index 40e0f693..8d6d5b9b 100644 --- a/lib/osal/file.v +++ b/lib/osal/file.v @@ -42,20 +42,37 @@ pub fn rm(todelete_ string) ! { if item.trim_space() == ''|| item.trim_space().starts_with("#"){ continue } + if item.len <2{ + return error("not allowed to remove anything with less than 2 chars. ${item}") + } item = item.replace('~', os.home_dir()) console.print_debug(' - rm: ${item}') if item.starts_with('/') { if os.exists(item) { + if os.is_dir(item) { + if core.sudo_path_ok(item)!{ //console.print_debug("rm deletedir: ${item}") - os.rmdir_all(core.sudo_path_check(item)!)! + os.rmdir_all(item)! + }else{ + if core.interactive()!{ + execute_silent("sudo rm -rf ${item}")! + }else{ + return error("can't remove ${item} as sudo because non interactive") + } + + } } else { //console.print_debug("rm delete file: ${item}") if core.sudo_path_ok(item)!{ os.rm(item)! }else{ - + if core.interactive()!{ + execute_silent("sudo rm -f ${item}")! + }else{ + return error("can't remove ${item} as sudo because non interactive") + } } } diff --git a/lib/virt/docker/docker_engine.v b/lib/virt/docker/docker_engine.v index 4f314654..a2f1458c 100644 --- a/lib/virt/docker/docker_engine.v +++ b/lib/virt/docker/docker_engine.v @@ -1,9 +1,8 @@ module docker -import freeflowuniverse.herolib.osal { cputype, exec, platform } +import freeflowuniverse.herolib.osal {exec} import freeflowuniverse.herolib.core.texttools import freeflowuniverse.herolib.virt.utils -import freeflowuniverse.herolib.ui.console import freeflowuniverse.herolib.core // import freeflowuniverse.herolib.installers.swarm @@ -38,9 +37,9 @@ pub fn (mut e DockerEngine) init() ! { exec(cmd: 'mkdir -p ${e.buildpath}', stdout: false)! } if e.platform == [] { - if core.platform()! == .ubuntu && cputype()! == .intel { + if core.platform()! == .ubuntu && core.cputype()! == .intel { e.platform = [.linux_amd64] - } else if core.platform()! == .osx && cputype()! == .arm { + } else if core.platform()! == .osx && core.cputype()! == .arm { e.platform = [.linux_arm64] } else { return error('only implemented ubuntu on amd and osx on arm for now for docker engine.')