In a medium pot over medium-high heat, combine shallots, garlic, and oil, cooking until shallots begin to take on some color, about 1 minute. Add diced apple and cook for 2 minutes more. Add cranberries, port, and curry. Bring to a boil, reduce heat to low, and continue cooking until port has reduced by three-fourths (about 12 minutes more). Season with salt. Serve warm.