callbacks.go 784 B

123456789101112131415161718192021222324252627282930313233343536
  1. // callbacks.go - Handles libalpm callbacks.
  2. //
  3. // Copyright (c) 2013 The go-alpm Authors
  4. //
  5. // MIT Licensed. See LICENSE for details.
  6. package alpm
  7. /*
  8. #include <stdint.h>
  9. #include <alpm.h>
  10. void logCallback(uint16_t level, char *cstring);
  11. void go_alpm_log_cb(alpm_loglevel_t level, const char *fmt, va_list arg);
  12. void go_alpm_set_logging(alpm_handle_t *handle);
  13. */
  14. import "C"
  15. var DefaultLogLevel = LogWarning
  16. func DefaultLogCallback(lvl uint16, s string) {
  17. if lvl <= DefaultLogLevel {
  18. print("go-alpm: ", s)
  19. }
  20. }
  21. var log_callback = DefaultLogCallback
  22. //export logCallback
  23. func logCallback(level uint16, cstring *C.char) {
  24. log_callback(level, C.GoString(cstring))
  25. }
  26. func (h *Handle) SetLogCallback(cb func(uint16, string)) {
  27. log_callback = cb
  28. C.go_alpm_set_logging(h.ptr)
  29. }