Skip to content

Commit d9a00ae

Browse files
Applying 2nd round of review comments
1 parent 124d569 commit d9a00ae

File tree

12 files changed

+46
-48
lines changed

12 files changed

+46
-48
lines changed

.github/workflows/lint_format.yaml

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
name: Go CI
22

3-
on:
4-
push:
5-
branches: [ "main" ]
6-
7-
pull_request:
8-
branches: [ "main" ]
9-
3+
on: [push, pull_request]
104

115
jobs:
126
build:
@@ -22,9 +16,7 @@ jobs:
2216

2317

2418
lint_and_format:
25-
if: github.event_name == 'pull_request'
2619
runs-on: ubuntu-latest
27-
timeout-minutes: 5
2820
steps:
2921
- uses: actions/checkout@v3
3022
- uses: actions/setup-go@v4
@@ -37,5 +29,8 @@ jobs:
3729
version: v1.56.0
3830
args: --timeout 3m
3931
- name: Go Format
40-
run: gofmt -s -w . && git diff --exit-code
32+
uses: Jerome1337/gofmt-action@v1.0.5
33+
with:
34+
gofmt-path: './src'
35+
gofmt-flags: '-l -d'
4136

cmd/cat/main.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,16 @@ func main() {
1616
flag.BoolVar(&numbering, "n", false, "defines whether or not the lines will be ordered")
1717
flag.Parse()
1818

19-
var scanner *bufio.Scanner
20-
21-
if len(flag.Args()) == 0 || flag.Args()[0] == "-" {
22-
scanner = bufio.NewScanner(os.Stdin)
23-
} else {
19+
scanner := bufio.NewScanner(os.Stdin)
20+
if len(flag.Args()) > 0 && flag.Args()[0] != "-" {
2421
data, err := os.ReadFile(flag.Args()[0])
2522
if err != nil {
2623
log.Fatal("Error in reading the file")
2724
}
28-
2925
scanner = bufio.NewScanner(strings.NewReader(string(data)))
3026
}
31-
internal.Cat(scanner, numbering)
27+
err := internal.Cat(scanner, numbering)
28+
if err != nil {
29+
log.Fatal("Error in scanning std input")
30+
}
3231
}

cmd/head/main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,8 @@ func main() {
2626

2727
scanner := bufio.NewScanner(strings.NewReader(string(data)))
2828

29-
internal.Head(scanner, n)
29+
err = internal.Head(scanner, n)
30+
if err != nil {
31+
log.Fatal("Error in scanning std input")
32+
}
3033
}

cmd/tail/main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,8 @@ func main() {
2626

2727
scanner := bufio.NewScanner(strings.NewReader(string(data)))
2828

29-
internal.Tail(scanner, n)
29+
err = internal.Tail(scanner, n)
30+
if err != nil {
31+
log.Fatal("Error in scanning std input")
32+
}
3033
}

cmd/wc/main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ func main() {
3636
isChars = true
3737
}
3838

39-
internal.Wc(scanner, isLines, isWords, isChars)
39+
err = internal.Wc(scanner, isLines, isWords, isChars)
40+
if err != nil {
41+
log.Fatal("Error in scanning std input")
42+
}
4043

4144
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module github.com/codescalersinternships/Coreutils-Rawan-Mostafa
22

3-
go 1.22.3
3+
go 1.18

internal/cat.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ package internal
33
import (
44
"bufio"
55
"fmt"
6-
"log"
76
)
87

9-
func Cat(scanner *bufio.Scanner, numbering bool) {
8+
func Cat(scanner *bufio.Scanner, numbering bool) error {
109

1110
scanner.Split(bufio.ScanLines)
1211
count := 0
@@ -17,8 +16,6 @@ func Cat(scanner *bufio.Scanner, numbering bool) {
1716
} else {
1817
fmt.Printf("%s\n", string(scanner.Bytes()))
1918
}
20-
if scanner.Err() != nil {
21-
log.Fatal("Error in scanning std input")
22-
}
2319
}
20+
return scanner.Err()
2421
}

internal/echo.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ package internal
22

33
import (
44
"fmt"
5+
"strings"
56
)
67

78
func Echo(noNewLine bool, args []string) {
89

9-
for _, arg := range args {
10-
fmt.Printf("%s ", arg)
11-
}
10+
argString := strings.Join(args, " ")
11+
fmt.Print(argString)
1212
if !noNewLine {
1313
fmt.Print("\n")
1414
}

internal/head.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ package internal
33
import (
44
"bufio"
55
"fmt"
6-
"log"
76
)
87

9-
func Head(scanner *bufio.Scanner, n int) {
8+
func Head(scanner *bufio.Scanner, n int) error {
109

1110
scanner.Split(bufio.ScanLines)
1211
count := 0
@@ -16,7 +15,5 @@ func Head(scanner *bufio.Scanner, n int) {
1615
fmt.Printf("%s \n", string(scanner.Bytes()))
1716
}
1817
}
19-
if scanner.Err() != nil {
20-
log.Fatal("Error in scanning std input")
21-
}
18+
return scanner.Err()
2219
}

internal/tail.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ package internal
33
import (
44
"bufio"
55
"fmt"
6-
"log"
76
)
87

9-
func Tail(scanner *bufio.Scanner, n int) {
8+
func Tail(scanner *bufio.Scanner, n int) error {
109

1110
scanner.Split(bufio.ScanLines)
1211
count := 0
@@ -15,14 +14,12 @@ func Tail(scanner *bufio.Scanner, n int) {
1514
count++
1615
lines = append(lines, string(scanner.Bytes()))
1716
}
18-
if scanner.Err() != nil {
19-
log.Fatal("Error in scanning std input")
20-
}
17+
2118
if n >= len(lines) {
2219
n = len(lines)
2320
}
2421
for i := len(lines) - n; i < len(lines); i++ {
2522
fmt.Println(lines[i])
2623
}
27-
24+
return scanner.Err()
2825
}

internal/wc.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ package internal
33
import (
44
"bufio"
55
"fmt"
6-
"log"
76
)
87

9-
func Wc(scanner *bufio.Scanner, isLines bool, isWords bool, isChars bool) {
8+
func Wc(scanner *bufio.Scanner, isLines bool, isWords bool, isChars bool) error {
109

1110
var linesCount int
1211
var wordsCount int
@@ -21,9 +20,7 @@ func Wc(scanner *bufio.Scanner, isLines bool, isWords bool, isChars bool) {
2120
if char == ' ' || char == '\n' || char == '\t' {
2221
wordsCount++
2322
}
24-
if scanner.Err() != nil {
25-
log.Fatal("Error in scanning std input")
26-
}
23+
2724
}
2825
wordsCount += 1
2926
charsCount += 1
@@ -39,4 +36,5 @@ func Wc(scanner *bufio.Scanner, isLines bool, isWords bool, isChars bool) {
3936
fmt.Printf("%d ", charsCount)
4037
}
4138
fmt.Print("\n")
39+
return scanner.Err()
4240
}

internal/yes.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,14 @@ import (
66
)
77

88
func Yes(inputs []string) {
9-
input := strings.Join(inputs, " ")
10-
for {
11-
fmt.Println(input)
9+
if len(inputs) > 0 {
10+
input := strings.Join(inputs, " ")
11+
for {
12+
fmt.Println(input)
13+
}
14+
} else {
15+
for {
16+
fmt.Println("y")
17+
}
1218
}
1319
}

0 commit comments

Comments
 (0)