Former-commit-id: cda66995085b2fe15ba1327f5f21d6cb1e7fbad9 [formerly 1e91b652c2c9ac12f7148a5fcee6826823f861ae] [formerly 6e9c1d23074a4ef51a8342014600a64421e37411 [formerly 35742fe91f]]
Former-commit-id: aaf02c9e8fae32fe0507d4375bce87a97637ee0e [formerly 4b2b1e3a10edbe38434ba663d6888cc462afe749]
Former-commit-id: 02ad43301dbc1d5dcfa4e9dd6aca07689d7df378
This commit is contained in:
Henrique Dias
2017-09-07 16:39:03 +01:00
2 changed files with 66 additions and 6 deletions

View File

@@ -3,6 +3,7 @@ package filemanager
import (
"crypto/rand"
"errors"
"fmt"
"log"
"net/http"
"os"
@@ -133,6 +134,14 @@ func (m *FileManager) Setup() error {
"after_save": {},
"before_publish": {},
"after_publish": {},
"before_copy": {},
"after_copy": {},
"before_rename": {},
"after_rename": {},
"before_upload": {},
"after_upload": {},
"before_delete": {},
"after_delete": {},
}
err = m.Store.Config.Save("commands", m.Commands)
}
@@ -248,7 +257,7 @@ func (m FileManager) ShareCleaner() {
}
// Runner runs the commands for a certain event type.
func (m FileManager) Runner(event string, path string) error {
func (m FileManager) Runner(event string, path string, destination string, user *User) error {
commands := []string{}
// Get the commands from the File Manager instance itself.
@@ -273,7 +282,15 @@ func (m FileManager) Runner(event string, path string) error {
}
cmd := exec.Command(command, args...)
cmd.Env = append(os.Environ(), "file="+path)
cmd.Env = append(os.Environ(), fmt.Sprintf("FILE=%s", path))
cmd.Env = append(cmd.Env, fmt.Sprintf("ROOT=%s", string(user.Scope)))
cmd.Env = append(cmd.Env, fmt.Sprintf("TRIGGER=%s", event))
cmd.Env = append(cmd.Env, fmt.Sprintf("USERNAME=%s", user.Username))
if destination != "" {
cmd.Env = append(cmd.Env, fmt.Sprintf("DESTINATION=%s", destination))
}
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr