summaryrefslogtreecommitdiff
path: root/runner/js/target_npm.go
diff options
context:
space:
mode:
Diffstat (limited to 'runner/js/target_npm.go')
-rw-r--r--runner/js/target_npm.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/runner/js/target_npm.go b/runner/js/target_npm.go
new file mode 100644
index 0000000..8319fad
--- /dev/null
+++ b/runner/js/target_npm.go
@@ -0,0 +1,42 @@
+package js
+
+import (
+ "github.com/ewy1/pik/model"
+ "github.com/ewy1/pik/runner"
+ "os/exec"
+ "path/filepath"
+)
+
+type Npm struct {
+ runner.BaseTarget
+ Name string
+ Cmd string
+}
+
+func (n *Npm) Icon() string {
+ return "\uE60B"
+}
+
+func (n *Npm) Description(src *model.HydratedSource) string {
+ return n.Cmd
+}
+
+func (n *Npm) Target() model.Target {
+ return n
+}
+
+func (n *Npm) Create(s *model.Source) *exec.Cmd {
+ return exec.Command(Js.Npm, "run", n.Name)
+}
+
+func (n *Npm) Label() string {
+ return n.Name
+}
+
+func (n *Npm) Hydrate(src *model.Source) (model.HydratedTarget, error) {
+ return n, nil
+}
+
+func (n *Npm) File(src *model.Source) string {
+ return filepath.Join(src.Path, "package.json")
+}