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