Fix merge
This commit is contained in:
parent
f0cbfb1db5
commit
e239096ef7
@ -9,7 +9,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Cat(in input_parser.Input, env *environment.Env) {
|
func Cat(in input_parser.Input, env *environment.Env) {
|
||||||
file := filepath.Join(env.Path, in.Args)
|
file := filepath.Join(env.Path, in.Args_raw)
|
||||||
bytea_str, err := os.ReadFile(file)
|
bytea_str, err := os.ReadFile(file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Print(fmt.Sprintf("Lilla råttan åt upp din kod", err.Error()))
|
fmt.Print(fmt.Sprintf("Lilla råttan åt upp din kod", err.Error()))
|
||||||
|
|||||||
@ -10,13 +10,13 @@ import (
|
|||||||
|
|
||||||
func Cd(in input_parser.Input, env *environment.Env) {
|
func Cd(in input_parser.Input, env *environment.Env) {
|
||||||
var new_path string
|
var new_path string
|
||||||
if in.Args == "" {
|
if in.Args_raw == "" {
|
||||||
new_path = env.Env["HOME"]
|
new_path = env.Env["HOME"]
|
||||||
} else {
|
} else {
|
||||||
if in.Args[0] == '/' {
|
if in.Args_raw[0] == '/' {
|
||||||
new_path = in.Args
|
new_path = in.Args_raw
|
||||||
} else {
|
} else {
|
||||||
new_path = filepath.Join(env.Path, in.Args)
|
new_path = filepath.Join(env.Path, in.Args_raw)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file, err := os.Stat(new_path)
|
file, err := os.Stat(new_path)
|
||||||
|
|||||||
@ -69,7 +69,7 @@ func run_by_path(in input_parser.Input, env *environment.Env) bool {
|
|||||||
if !errB {
|
if !errB {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
cmd := exec.Command(instr, strings.Fields(in.Args)...)
|
cmd := exec.Command(instr, strings.Fields(in.Args_raw)...)
|
||||||
output, _ := cmd.CombinedOutput()
|
output, _ := cmd.CombinedOutput()
|
||||||
print(string(output))
|
print(string(output))
|
||||||
return true
|
return true
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Cp(in input_parser.Input, env *environment.Env) {
|
func Cp(in input_parser.Input, env *environment.Env) {
|
||||||
args := strings.SplitN(in.Args, " ", 2)
|
args := strings.SplitN(in.Args_raw, " ", 2)
|
||||||
if len(args) != 2 {
|
if len(args) != 2 {
|
||||||
fmt.Print("No right amount of args")
|
fmt.Print("No right amount of args")
|
||||||
return
|
return
|
||||||
|
|||||||
@ -7,6 +7,6 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Echo(in input_parser.Input, _ *environment.Env) {
|
func Echo(in input_parser.Input, _ *environment.Env) {
|
||||||
fmt.Print(in.Args)
|
fmt.Print(in.Args_raw)
|
||||||
// fungerar inte om råttan åt din kod
|
// fungerar inte om råttan åt din kod
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Head(in input_parser.Input, env *environment.Env) {
|
func Head(in input_parser.Input, env *environment.Env) {
|
||||||
args := strings.SplitN(in.Args, " ", 2)
|
args := strings.SplitN(in.Args_raw, " ", 2)
|
||||||
var file_path string
|
var file_path string
|
||||||
var lines int
|
var lines int
|
||||||
if len(args) >= 1 {
|
if len(args) >= 1 {
|
||||||
|
|||||||
@ -8,16 +8,21 @@ import (
|
|||||||
"slices"
|
"slices"
|
||||||
)
|
)
|
||||||
|
|
||||||
var flagsArray []string = []string{"a ", "help "}
|
|
||||||
var flagsDictionary map[string]string = map[string]string{"a": "-a shows hidden directories", "help": "-help shows this message"}
|
|
||||||
|
|
||||||
func Ls(in input_parser.Input, env *environment.Env) {
|
func Ls(in input_parser.Input, env *environment.Env) {
|
||||||
|
flagsArray := []string {
|
||||||
|
"a ",
|
||||||
|
"help ",
|
||||||
|
}
|
||||||
|
flagsDictionary := map[string]string {
|
||||||
|
"a": "-a shows hidden directories",
|
||||||
|
"help": "-help shows this message",
|
||||||
|
}
|
||||||
if slices.Contains(in.Flags, "help") {
|
if slices.Contains(in.Flags, "help") {
|
||||||
fmt.Printf("Lists Sources in the current working directory")
|
fmt.Printf("Lists Sources in the current working directory")
|
||||||
fmt.Printf("Supported flags are:")
|
fmt.Printf("Supported flags are:")
|
||||||
for i := 0; i < len(flagsArray); i++ {
|
for _, flag := range flagsArray {
|
||||||
fmt.Println(flagsArray[i] + flagsDictionary[flagsArray[i]])
|
fmt.Println(flag + flagsDictionary[flag])
|
||||||
} // this prints all flags and their description
|
} // Print flags and there description
|
||||||
}
|
}
|
||||||
fs, err := os.ReadDir(env.Path)
|
fs, err := os.ReadDir(env.Path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Man(in input_parser.Input, env *environment.Env) {
|
func Man(in input_parser.Input, env *environment.Env) {
|
||||||
switch in.Args {
|
switch in.Args_raw {
|
||||||
case "pwd":
|
case "pwd":
|
||||||
fmt.Print("Output current working directory")
|
fmt.Print("Output current working directory")
|
||||||
case "echo":
|
case "echo":
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Mv(in input_parser.Input, env *environment.Env) {
|
func Mv(in input_parser.Input, env *environment.Env) {
|
||||||
args := strings.SplitN(in.Args, " ", 2)
|
args := strings.SplitN(in.Args_raw, " ", 2)
|
||||||
if len(args) != 2 {
|
if len(args) != 2 {
|
||||||
fmt.Print("No right amount of args")
|
fmt.Print("No right amount of args")
|
||||||
return
|
return
|
||||||
|
|||||||
@ -9,11 +9,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Rm(in input_parser.Input, env *environment.Env) {
|
func Rm(in input_parser.Input, env *environment.Env) {
|
||||||
file_path := filepath.Join(env.Path, in.Args)
|
file_path := filepath.Join(env.Path, in.Args_raw)
|
||||||
stat, err := os.Stat(file_path)
|
stat, err := os.Stat(file_path)
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
fmt.Println(fmt.Sprintf("File does not exist"))
|
fmt.Println(fmt.Sprintf("File does not exist"))
|
||||||
fmt.Print(fmt.Sprintf("Try 'bash rm -rf /' instead"))
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if stat.IsDir() {
|
if stat.IsDir() {
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Touch(in input_parser.Input, env *environment.Env) {
|
func Touch(in input_parser.Input, env *environment.Env) {
|
||||||
file_path := filepath.Join(env.Path, in.Args)
|
file_path := filepath.Join(env.Path, in.Args_raw)
|
||||||
_, err := os.Stat(file_path)
|
_, err := os.Stat(file_path)
|
||||||
if !os.IsNotExist(err) {
|
if !os.IsNotExist(err) {
|
||||||
fmt.Print(fmt.Sprintf("File alredy exist!"))
|
fmt.Print(fmt.Sprintf("File alredy exist!"))
|
||||||
|
|||||||
@ -26,22 +26,23 @@ func parse(input string) Input {
|
|||||||
instruction := strings.TrimSpace(split[0])
|
instruction := strings.TrimSpace(split[0])
|
||||||
var flags []string
|
var flags []string
|
||||||
var args []string
|
var args []string
|
||||||
for i := 0; i < len(split); i++ {
|
|
||||||
if split[i][0:2] == "--" {
|
for _, arg := range split[1:] {
|
||||||
var result = strings.TrimSpace(split[i])
|
if arg[0:2] == "--" {
|
||||||
|
var result = strings.TrimSpace(arg)
|
||||||
flags = append(flags, string(result[2:]))
|
flags = append(flags, string(result[2:]))
|
||||||
continue
|
continue
|
||||||
} else if split[i][0] == '-' {
|
} else if arg[0] == '-' {
|
||||||
var result = strings.TrimSpace(split[i])
|
var result = strings.TrimSpace(arg)
|
||||||
for _, c := range result[1:] {
|
for _, c := range result[1:] {
|
||||||
flags = append(flags, string(c))
|
flags = append(flags, string(c))
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
} else if i != 0 {
|
} else {
|
||||||
args = append(args, strings.TrimSpace(split[i]))
|
args = append(args, strings.TrimSpace(arg))
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
return Input{
|
return Input{
|
||||||
Instruction: instruction,
|
Instruction: instruction,
|
||||||
Args: args,
|
Args: args,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user