code: func StickRuntimeDirContents(files []string) ([]string, error) {
  	runtimeDir, err := GetRuntimeDir()
  	if err != nil {
  		// ignore error if runtimeDir is empty
  		return nil, nil
  	}
  	runtimeDir, err = filepath.Abs(runtimeDir)
  	if err != nil {
  		return nil, err
  	}
  	var sticked []string
  	for _, f := range files {
  		f, err = filepath.Abs(f)
  		if err != nil {
  			return sticked, err
  		}
  		if strings.HasPrefix(f, runtimeDir+"/") {
  			if err = stick(f); err != nil {
  				return sticked, err
  			}
  			sticked = append(sticked, f)
  		}
  	}
  	return sticked, nil
  }
docs: // StickRuntimeDirContents sets the sticky bit on files that are under
  // XDG_RUNTIME_DIR, so that the files won't be periodically removed by the system.
  //
  // StickyRuntimeDir returns slice of sticked files.
  // StickyRuntimeDir returns nil error if XDG_RUNTIME_DIR is not set.
  //
  // See also https://standards.freedesktop.org/basedir-spec/latest/ar01s03.html