Skip to content

Commit 9e11f09

Browse files
DD command implemented
1 parent d5969d2 commit 9e11f09

File tree

3 files changed

+56
-5
lines changed

3 files changed

+56
-5
lines changed

main.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,29 @@ func newBuildClient() src.Builder {
1212
func newParserClient() src.Parser {
1313
return &src.ParseHandler{}
1414
}
15+
16+
func newRootFSClient() src.RootFS {
17+
return &src.RootFSHandler{}
18+
}
1519
func main() {
16-
parserCli := newParserClient()
17-
buildCLi := newBuildClient()
20+
parserClient := newParserClient()
21+
buildCLient := newBuildClient()
22+
rootFsClient := newRootFSClient()
1823

19-
result, err := parserCli.ParseYamlFile("config.yaml")
24+
result, err := parserClient.ParseYamlFile("config.yaml")
2025
if err != nil {
2126
log.Err(err).Msg("Error while running parserCli.ParseYamlFile()")
2227
}
2328

24-
buildCLi.BuildExportDockerImage(result.Context, result.DockerfilePath, result.TargetDirectory)
29+
err = buildCLient.BuildExportDockerImage(result.Context, result.DockerfilePath, result.TargetDirectory)
30+
if err != nil {
31+
log.Err(err).Msg("Error while running buildCLient.BuildExportDockerImage()")
32+
}
33+
34+
err = rootFsClient.CreateFileDD(10, "ops")
35+
if err != nil {
36+
log.Err(err).Msg("Error while running rootFsClient.CreateFileDD()")
37+
}
38+
// Extract rootfs components now
2539

2640
}

src/container.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func (buildClient *BuildHandler) BuildExportDockerImage(context, dockerFile, tar
1717

1818
output, err := cmd.CombinedOutput()
1919
if err != nil {
20-
log.Err(err).Msg("docker buildx error :")
20+
log.Err(err).Msgf("docker buildx error : %s", output)
2121
return err
2222
}
2323
log.Info().Msgf("Build Result %s", string(output))

src/rootfs.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package src
2+
3+
import (
4+
"os"
5+
6+
"github.com/rs/zerolog/log"
7+
)
8+
9+
type RootFS interface {
10+
CreateFileDD(size int64, fileName string) error
11+
}
12+
13+
type RootFSHandler struct{}
14+
15+
func (rootfs *RootFSHandler) CreateFileDD(size int64, fileName string) error {
16+
17+
size = int64(size * 1024 * 1024) // in MiB files
18+
19+
file, err := os.Create(fileName)
20+
if err != nil {
21+
log.Err(err).Msg("Error creating file:")
22+
return err
23+
}
24+
defer file.Close()
25+
26+
zeroBlock := make([]byte, 1024*1024) // 1 MiB bufferred files in there
27+
for i := 0; i < 50; i++ {
28+
_, err := file.Write(zeroBlock)
29+
if err != nil {
30+
log.Err(err).Msg("Error writing to file:")
31+
return err
32+
}
33+
}
34+
35+
log.Info().Msg("rootfs.ext4 created successfully")
36+
return nil
37+
}

0 commit comments

Comments
 (0)