os/exec
package main
import (
"os/exec"
...
)
func main(){
...
//Чтобы получить приглашение в консоли
cmd := exec.Command("sudo", "su")
err := cmd.Run()
if err != nil {
fmt.Printf("%s", err)
}
...
//Или чтобы выпало окошко
out, err := exec.Command("osascript", "-e", "do shell script /path/to/myscript with administrator privileges").Output()
if err != nil {
fmt.Printf("%s", err)
}
...
}
qemu-img convert -f raw /var/lib/libvirt/images/VM.img -O vmdk VM.tmp.vmdk -o compat6
или от wmware https://www.vmware.com/products/converter.html header
, а error при попытке tw.Flush()
, который вы не проверили. После записи header
, нужно залить собственно данные tw.Write(data []byte)
и уже потом делать tw.Flush()
. Вы в header
пообещали залить данные и не залили. Кажется должно быть что то вродеif err := tw.WriteHeader(hdr); err != nil {
return err
}
if n, err := tw.Write(content); err != nil { //вот это не видно как вы сделали
return err
}
if tw.Flush(); err != nil{ //и нужно проверять все ошибки
return err
}
GO111MODULE=auto go get github.com/kataras/iris/v12@latest
func TestRaceDeposit(t *testing.T) {
setBalance(0)
go Deposit(10) //Просто этого вызова уже достаточно
Deposit(10)
if Balance() != 20 {
t.Errorf("unexpected balance: value - %d expect 20", Balance())
}
}