Skip to content

Commit 0ab76f8

Browse files
author
Adriano Santos
committed
feat: add sdk init wrapper
1 parent dfdb72e commit 0ab76f8

File tree

6 files changed

+91
-0
lines changed

6 files changed

+91
-0
lines changed

tools/sdk-init/bin/sdk-init

1.38 MB
Binary file not shown.

tools/sdk-init/cmd/main.go

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package main
2+
3+
import (
4+
"log"
5+
"os"
6+
7+
"sdk-init/pkg/copier"
8+
"sdk-init/pkg/runner"
9+
)
10+
11+
func main() {
12+
srcDir := "/protos"
13+
destDir := "/shared/protos"
14+
15+
// Copiar os arquivos
16+
if err := copier.CopyDir(srcDir, destDir); err != nil {
17+
log.Fatalf("Erro ao copiar arquivos: %v", err)
18+
}
19+
log.Println("Arquivos copiados com sucesso.")
20+
21+
// Executar o comando do usuário
22+
if len(os.Args) > 1 {
23+
if err := runner.RunCommand(os.Args[1], os.Args[2:]...); err != nil {
24+
log.Fatalf("Erro ao executar o comando: %v", err)
25+
}
26+
} else {
27+
log.Println("Nenhum comando especificado. Finalizando...")
28+
}
29+
}

tools/sdk-init/go.mod

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module sdk-init
2+
3+
go 1.18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package shared
2+
3+
const (
4+
DefaultSrcDir = "/protos"
5+
DefaultDestDir = "/shared/protos"
6+
)

tools/sdk-init/pkg/copier/copier.go

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package copier
2+
3+
import (
4+
"io"
5+
"os"
6+
"path/filepath"
7+
)
8+
9+
// CopyDir copia todos os arquivos e subdiretórios de uma origem para um destino.
10+
func CopyDir(src string, dest string) error {
11+
return filepath.Walk(src, func(path string, info os.FileInfo, err error) error {
12+
if err != nil {
13+
return err
14+
}
15+
16+
relPath, _ := filepath.Rel(src, path)
17+
destPath := filepath.Join(dest, relPath)
18+
19+
if info.IsDir() {
20+
return os.MkdirAll(destPath, info.Mode())
21+
}
22+
23+
srcFile, err := os.Open(path)
24+
if err != nil {
25+
return err
26+
}
27+
defer srcFile.Close()
28+
29+
destFile, err := os.Create(destPath)
30+
if err != nil {
31+
return err
32+
}
33+
defer destFile.Close()
34+
35+
_, err = io.Copy(destFile, srcFile)
36+
return err
37+
})
38+
}

tools/sdk-init/pkg/runner/runner.go

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package runner
2+
3+
import (
4+
"os"
5+
"os/exec"
6+
)
7+
8+
// RunCommand executa o comando especificado com argumentos.
9+
func RunCommand(cmd string, args ...string) error {
10+
command := exec.Command(cmd, args...)
11+
command.Stdout = os.Stdout
12+
command.Stderr = os.Stderr
13+
14+
return command.Run()
15+
}

0 commit comments

Comments
 (0)