All checks were successful
		
		
	
	Test / Create distribution (push) Successful in 34s
				
			Test / Sandbox (push) Successful in 1m47s
				
			Test / Hakurei (push) Successful in 3m20s
				
			Test / Hpkg (push) Successful in 3m49s
				
			Test / Sandbox (race detector) (push) Successful in 5m48s
				
			Test / Hakurei (race detector) (push) Successful in 3m9s
				
			Test / Flake checks (push) Successful in 1m35s
				
			This helps determine which libacl function the errno came from. Signed-off-by: Ophestra <cat@gensokyo.uk>
		
			
				
	
	
		
			34 lines
		
	
	
		
			619 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			619 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// Package acl implements simple ACL manipulation via libacl.
 | 
						|
package acl
 | 
						|
 | 
						|
/*
 | 
						|
#cgo linux pkg-config: --static libacl
 | 
						|
 | 
						|
#include "libacl-helper.h"
 | 
						|
*/
 | 
						|
import "C"
 | 
						|
 | 
						|
type Perm C.acl_perm_t
 | 
						|
 | 
						|
const (
 | 
						|
	Read    Perm = C.ACL_READ
 | 
						|
	Write   Perm = C.ACL_WRITE
 | 
						|
	Execute Perm = C.ACL_EXECUTE
 | 
						|
)
 | 
						|
 | 
						|
// Update replaces ACL_USER entry with qualifier uid.
 | 
						|
func Update(name string, uid int, perms ...Perm) error {
 | 
						|
	var p *Perm
 | 
						|
	if len(perms) > 0 {
 | 
						|
		p = &perms[0]
 | 
						|
	}
 | 
						|
 | 
						|
	r, err := C.hakurei_acl_update_file_by_uid(
 | 
						|
		C.CString(name),
 | 
						|
		C.uid_t(uid),
 | 
						|
		(*C.acl_perm_t)(p),
 | 
						|
		C.size_t(len(perms)),
 | 
						|
	)
 | 
						|
	return newAclPathError(name, int(r), err)
 | 
						|
}
 |