Fix merge

This commit is contained in:
Tobias P.L Wennberg 2025-01-12 09:35:41 +01:00
parent f0cbfb1db5
commit e239096ef7
12 changed files with 33 additions and 28 deletions

View File

@ -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()))

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -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 {

View File

@ -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 {

View File

@ -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":

View File

@ -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

View File

@ -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() {

View File

@ -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!"))

View File

@ -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,