},
nil,
},
+
+ {
+ "triggers: missing path component",
+ false,
+ safcm.MsgSyncReq{
+ Files: map[string]*safcm.File{
+ "dir": {
+ OrigGroup: "group",
+ Path: "dir",
+ Mode: fs.ModeDir | 0755,
+ Uid: -1,
+ Gid: -1,
+ },
+ },
+ },
+ nil,
+ nil,
+ []ft.File{
+ root,
+ {
+ Path: "dir",
+ Mode: fs.ModeDir | 0755,
+ },
+ },
+ safcm.MsgSyncResp{
+ FileChanges: []safcm.FileChange{
+ {
+ Path: "dir",
+ Created: true,
+ New: safcm.FileChangeInfo{
+ Mode: fs.ModeDir | 0755,
+ User: user,
+ Uid: uid,
+ Group: group,
+ Gid: gid,
+ },
+ },
+ },
+ },
+ []string{
+ `4: files: "dir" (group): will create`,
+ `3: files: "dir" (group): creating`,
+ `4: files: "dir" (group): creating directory`,
+ `4: files: "dir" (group): chmodding drwxr-xr-x`,
+ fmt.Sprintf(`4: files: "dir" (group): chowning %d/%d`, uid, gid),
+ },
+ nil,
+ },
}
for _, tc := range tests {
// queueTriggers queues all triggers applying to file.
func (s *Sync) queueTriggers(file *safcm.File) {
for _, path := range triggerPaths(file.Path) {
- if s.req.Files[path].TriggerCommands == nil {
+ if s.req.Files[path] == nil ||
+ s.req.Files[path].TriggerCommands == nil {
continue
}
// Queue each trigger only once