Add some text, remove mod from index when done

This commit is contained in:
comp500 2019-04-26 18:39:55 +01:00
parent e2c772ee30
commit 1a42abc0d6
No known key found for this signature in database
GPG Key ID: 214C822FFEC586B5
2 changed files with 42 additions and 13 deletions

View File

@ -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 // Refresh updates the hashes of all the files in the index, and adds new files to the index
func (in *Index) Refresh() error { func (in *Index) Refresh() error {
// TODO: enumerate existing files, check if they exist (remove if they don't)
// TODO: If needed, multithreaded hashing // TODO: If needed, multithreaded hashing
// for i := 0; i < runtime.NumCPU(); i++ {} // for i := 0; i < runtime.NumCPU(); i++ {}

53
main.go
View File

@ -17,7 +17,7 @@ func init() {
Aliases: []string{"delete", "uninstall"}, Aliases: []string{"delete", "uninstall"},
Usage: "Remove a mod from the modpack", Usage: "Remove a mod from the modpack",
Action: func(c *cli.Context) error { Action: func(c *cli.Context) error {
return cmdDelete(core.FlagsFromContext(c)) return cmdDelete(core.FlagsFromContext(c), c.Args().Get(0))
}, },
}, cli.Command{ }, cli.Command{
Name: "update", Name: "update",
@ -48,19 +48,16 @@ func main() {
} }
} }
func cmdDelete(flags core.Flags) error { func cmdDelete(flags core.Flags, mod string) error {
// TODO: actual input if len(mod) == 0 {
mod := "demagnetize" return cli.NewExitError("You must specify a mod.", 1)
err := os.Remove(core.ResolveMod(mod, flags)) }
resolvedMod := core.ResolveMod(mod, flags)
err := os.Remove(resolvedMod)
if err != nil { if err != nil {
return cli.NewExitError(err, 1) return cli.NewExitError(err, 1)
} }
fmt.Printf("Mod %s removed successfully!", mod) fmt.Println("Loading modpack...")
// TODO: update index
return nil
}
func cmdRefresh(flags core.Flags) error {
pack, err := core.LoadPack(flags) pack, err := core.LoadPack(flags)
if err != nil { if err != nil {
return cli.NewExitError(err, 1) return cli.NewExitError(err, 1)
@ -69,6 +66,39 @@ func cmdRefresh(flags core.Flags) error {
if err != nil { if err != nil {
return cli.NewExitError(err, 1) 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() err = index.Refresh()
if err != nil { if err != nil {
return cli.NewExitError(err, 1) return cli.NewExitError(err, 1)
@ -85,6 +115,7 @@ func cmdRefresh(flags core.Flags) error {
if err != nil { if err != nil {
return cli.NewExitError(err, 1) return cli.NewExitError(err, 1)
} }
fmt.Println("Index refreshed!")
return nil return nil
} }