Skip to content

Commit

Permalink
allow adding scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
jesseduffield committed Apr 12, 2020
1 parent a490a09 commit 008c098
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 2 deletions.
4 changes: 3 additions & 1 deletion pkg/commands/npm_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,9 @@ func (m *NpmManager) EditDepConstraint(dep *Dependency, packageJsonPath string,
return ioutil.WriteFile(packageJsonPath, updatedConfig, 0644)
}

func (m *NpmManager) EditScript(scriptName string, packageJsonPath string, newName string, newCommand string) error {
func (m *NpmManager) EditOrAddScript(scriptName string, packageJsonPath string, newName string, newCommand string) error {
// TODO: ensure there is a 'scripts' key

config, err := ioutil.ReadFile(packageJsonPath)
if err != nil {
return err
Expand Down
6 changes: 6 additions & 0 deletions pkg/gui/keybindings.go
Original file line number Diff line number Diff line change
Expand Up @@ -439,6 +439,12 @@ func (gui *Gui) GetInitialKeybindings() []*Binding {
Handler: gui.wrappedScriptHandler(gui.handleEditScript),
Description: "edit script",
},
{
ViewName: "scripts",
Key: gui.getKey("universal.new"),
Handler: gui.wrappedHandler(gui.handleAddScript),
Description: "add script",
},
{
ViewName: "deps",
Key: gui.getKey("universal.install"),
Expand Down
12 changes: 11 additions & 1 deletion pkg/gui/scripts_panel.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,17 @@ func (gui *Gui) handleEditScript(script *commands.Script) error {
return gui.createPromptPanel(gui.getScriptsView(), "Script name:", script.Name, func(newName string) error {
return gui.createPromptPanel(gui.getScriptsView(), "Script command:", script.Command, func(newCommand string) error {
return gui.surfaceError(
gui.NpmManager.EditScript(script.Name, gui.currentPackage().ConfigPath(), newName, newCommand),
gui.NpmManager.EditOrAddScript(script.Name, gui.currentPackage().ConfigPath(), newName, newCommand),
)
})
})
}

func (gui *Gui) handleAddScript() error {
return gui.createPromptPanel(gui.getScriptsView(), "Script name:", "", func(newName string) error {
return gui.createPromptPanel(gui.getScriptsView(), "Script command:", "", func(newCommand string) error {
return gui.surfaceError(
gui.NpmManager.EditOrAddScript(newName, gui.currentPackage().ConfigPath(), newName, newCommand),
)
})
})
Expand Down

0 comments on commit 008c098

Please # to comment.