diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index bcb7258..f4232be 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -487,6 +487,12 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Handler: gui.wrappedDependencyHandler(gui.handleEditDepConstraint), Description: "edit dependency constraint", }, + { + ViewName: "tarballs", + Key: gui.getKey("universal.remove"), + Handler: gui.wrappedTarballHandler(gui.handleDeleteTarball), + Description: "delete tarball", + }, } for _, viewName := range []string{"status", "packages", "deps", "scripts", "tarballs", "menu"} { diff --git a/pkg/gui/tarballs_panel.go b/pkg/gui/tarballs_panel.go index b3d2fdf..5bb18a1 100644 --- a/pkg/gui/tarballs_panel.go +++ b/pkg/gui/tarballs_panel.go @@ -1,6 +1,8 @@ package gui import ( + "fmt" + "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazynpm/pkg/commands" "github.com/jesseduffield/lazynpm/pkg/gui/presentation" @@ -45,3 +47,15 @@ func (gui *Gui) wrappedTarballHandler(f func(*commands.Tarball) error) func(*goc return gui.finalStep(f(tarball)) }) } + +func (gui *Gui) handleDeleteTarball(tarball *commands.Tarball) error { + return gui.createConfirmationPanel(createConfirmationPanelOpts{ + returnToView: gui.getTarballsView(), + returnFocusOnClose: true, + title: "Remove tarball", + prompt: fmt.Sprintf("are you sure you want to delete `%s`?", tarball.Name), + handleConfirm: func() error { + return gui.finalStep(gui.OSCommand.Remove(tarball.Path)) + }, + }) +}