-
Notifications
You must be signed in to change notification settings - Fork 0
/
practice.go
56 lines (47 loc) · 1.17 KB
/
practice.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package main
import (
"errors"
"fmt"
"os"
"strings"
)
func main() {
if len(os.Args) != 2 {
fmt.Println("Usage: go run script_name.go number")
return
}
s := os.Args[1]
datas := strings.Split(s, "/")
id := datas[len(datas)-2]
number := datas[len(datas)-1]
_, err := os.Stat("practice/" + id)
if errors.Is(err, os.ErrNotExist) {
fmt.Println(id + " does not exist, creating directory...")
err = os.Mkdir("practice/"+id, 0777)
if err != nil {
fmt.Println("error creating directory:" + err.Error())
os.Exit(1)
}
}
err = os.MkdirAll("practice/"+id+"/"+number, 0777)
if err != nil {
fmt.Println("error creating directory:" + err.Error())
os.Exit(1)
}
_, err = os.Create(strings.Join([]string{"practice", id, number, number + ".go"}, "/"))
if err != nil {
fmt.Println("error creating file:" + err.Error())
os.Exit(1)
}
file, err := os.ReadFile("template.go")
if err != nil {
fmt.Println("error reading file:" + err.Error())
os.Exit(1)
}
err = os.WriteFile(strings.Join([]string{"practice", id, number, number + ".go"}, "/"), file, 0666)
if err != nil {
fmt.Println("error creating file:" + err.Error())
os.Exit(1)
}
fmt.Println("complete!")
}