Skip to content

Commit

Permalink
fix: update helm chart transformer
Browse files Browse the repository at this point in the history
Signed-off-by: shashank381 <satholashashank@gmail.com>
  • Loading branch information
shashank381 committed Apr 4, 2024
1 parent 1ffc618 commit db2fb8d
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 30 deletions.
Binary file modified maven-helmchartgen-wasm/helmchartgen.wasm
Binary file not shown.
59 changes: 29 additions & 30 deletions maven-helmchartgen-wasm/transformer.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,28 @@ const PomFile = "pom.xml"

var input []byte = make([]byte, 2048)

// Reads a null-terminated string (ala C strings) from the provided pointer
func readPtr(dataPointer *int32) string {
nth := 0
var dataStr strings.Builder
pointer := uintptr(unsafe.Pointer(dataPointer))
for {
s := *(*int32)(unsafe.Pointer(pointer + uintptr(nth)))
if byte(s) == 0 {
break
}
func unpack(combined uint64) (uint32, uint32) {
pointer := uint32(combined >> 32) // Extracts the upper 32 bits
size := uint32(combined) // Extracts the lower 32 bits
return pointer, size
}

dataStr.WriteByte(byte(s))
nth++
}
func pack(pointer uint32, size uint32) uint64 {
return (uint64(pointer) << 32) | uint64(size)
}

return dataStr.String()
func readData(dataPointer uint64) string {
pointer, size := unpack(dataPointer)
bytes := make([]byte, size)
for i := uint32(0); i < size; i++ {
bytes[i] = *(*byte)(unsafe.Pointer(uintptr(pointer) + uintptr(i)))
}
return string(bytes)
}

//export directoryDetect
func directoryDetect(dataPointer *int32) *int32 {
dir := readPtr(dataPointer)
func directoryDetect(dataPointer uint64) uint64 {
dir := readData(dataPointer)
dataFilePath := filepath.Join(dir, PomFile)

transform_return_data := make(map[string]interface{})
Expand All @@ -58,11 +59,11 @@ func directoryDetect(dataPointer *int32) *int32 {
fmt.Println(err)
os.Exit(1)
}
r := make([]int32, 2)
r[0] = int32(uintptr(unsafe.Pointer(&(transform_return_data_byt[0]))))
r[1] = int32(len(transform_return_data_byt))

return &r[0]
DDptr := uint32(uintptr(unsafe.Pointer(&(transform_return_data_byt[0]))))
DDsize := uint32(len(transform_return_data_byt))

return pack(DDptr, DDsize)
} else {
fmt.Printf("wasm stat failed: %v\n", err)
}
Expand All @@ -73,16 +74,15 @@ func directoryDetect(dataPointer *int32) *int32 {
fmt.Println(err)
os.Exit(1)
}
r := make([]int32, 2)
r[0] = int32(uintptr(unsafe.Pointer(&(transform_return_data_byt[0]))))
r[1] = int32(len(transform_return_data_byt))
DDptr := uint32(uintptr(unsafe.Pointer(&(transform_return_data_byt[0]))))
DDsize := uint32(len(transform_return_data_byt))

return &r[0]
return pack(DDptr, DDsize)
}

//export transform
func transform(dataPointer *int32) *int32 {
rawData := readPtr(dataPointer)
func transform(dataPointer uint64) uint64 {
rawData := readData(dataPointer)

var data map[string]interface{}
err := json.Unmarshal([]byte(rawData), &data)
Expand Down Expand Up @@ -138,11 +138,10 @@ func transform(dataPointer *int32) *int32 {
fmt.Println(err)
os.Exit(1)
}
r := make([]int32, 2)
r[0] = int32(uintptr(unsafe.Pointer(&(transform_return_data_byt[0]))))
r[1] = int32(len(transform_return_data_byt))
TTptr := uint32(uintptr(unsafe.Pointer(&(transform_return_data_byt[0]))))
TTsize := uint32(len(transform_return_data_byt))

return &r[0]
return pack(TTptr, TTsize)
}

// getServiceName extracts service name from pom file
Expand Down
1 change: 1 addition & 0 deletions maven-helmchartgen-wasm/transformer.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ spec:
move2kube.konveyor.io/built-in: "true"
config:
wasm_module: helmchartgen.wasm
execution_mode: compiler

0 comments on commit db2fb8d

Please # to comment.