From 1a42abc0d6ef2b950b6dad00fae4852695d87fc2 Mon Sep 17 00:00:00 2001 From: comp500 Date: Fri, 26 Apr 2019 18:39:55 +0100 Subject: [PATCH] Add some text, remove mod from index when done --- core/index.go | 2 -- main.go | 53 ++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/core/index.go b/core/index.go index 17571a8..62ab0d4 100644 --- a/core/index.go +++ b/core/index.go @@ -150,8 +150,6 @@ func (in *Index) updateFile(path string) error { // Refresh updates the hashes of all the files in the index, and adds new files to the index func (in *Index) Refresh() error { - // TODO: enumerate existing files, check if they exist (remove if they don't) - // TODO: If needed, multithreaded hashing // for i := 0; i < runtime.NumCPU(); i++ {} diff --git a/main.go b/main.go index a28b0d5..ebf5e87 100644 --- a/main.go +++ b/main.go @@ -17,7 +17,7 @@ func init() { Aliases: []string{"delete", "uninstall"}, Usage: "Remove a mod from the modpack", Action: func(c *cli.Context) error { - return cmdDelete(core.FlagsFromContext(c)) + return cmdDelete(core.FlagsFromContext(c), c.Args().Get(0)) }, }, cli.Command{ Name: "update", @@ -48,19 +48,16 @@ func main() { } } -func cmdDelete(flags core.Flags) error { - // TODO: actual input - mod := "demagnetize" - err := os.Remove(core.ResolveMod(mod, flags)) +func cmdDelete(flags core.Flags, mod string) error { + if len(mod) == 0 { + return cli.NewExitError("You must specify a mod.", 1) + } + resolvedMod := core.ResolveMod(mod, flags) + err := os.Remove(resolvedMod) if err != nil { return cli.NewExitError(err, 1) } - fmt.Printf("Mod %s removed successfully!", mod) - // TODO: update index - return nil -} - -func cmdRefresh(flags core.Flags) error { + fmt.Println("Loading modpack...") pack, err := core.LoadPack(flags) if err != nil { return cli.NewExitError(err, 1) @@ -69,6 +66,39 @@ func cmdRefresh(flags core.Flags) error { if err != nil { return cli.NewExitError(err, 1) } + fmt.Println("Removing mod from index...") + err = index.RemoveFile(resolvedMod) + if err != nil { + return cli.NewExitError(err, 1) + } + err = index.Write() + if err != nil { + return cli.NewExitError(err, 1) + } + err = pack.UpdateIndexHash() + if err != nil { + return cli.NewExitError(err, 1) + } + err = pack.Write() + if err != nil { + return cli.NewExitError(err, 1) + } + + fmt.Printf("Mod %s removed successfully!", mod) + return nil +} + +func cmdRefresh(flags core.Flags) error { + fmt.Println("Loading modpack...") + pack, err := core.LoadPack(flags) + if err != nil { + return cli.NewExitError(err, 1) + } + index, err := pack.LoadIndex() + if err != nil { + return cli.NewExitError(err, 1) + } + fmt.Println("Refreshing index...") err = index.Refresh() if err != nil { return cli.NewExitError(err, 1) @@ -85,6 +115,7 @@ func cmdRefresh(flags core.Flags) error { if err != nil { return cli.NewExitError(err, 1) } + fmt.Println("Index refreshed!") return nil }