a hair shirt
1. An uncomfortable garment made of coarse hair or other material worn against the skin. Used in some religious rituals as punishment or penance. In ancient times, men would wear a hair shirt as a sign of repentance to their deity for wrongs they had done.
2. By extension, something a person does to intentionally make an aspect of their life uncomfortable or unpleasant, often as a form of penance. I understand that you are sorry for your actions, but there is no need to wear a hair shirt because of it. All is forgiven. A: "Why aren't you eating dessert?" B: "Oh, it's my punishment—my hair shirt, if you will—for blowing off my schoolwork this week."
Farlex Dictionary of Idioms. © 2015 Farlex, Inc, all rights reserved.
a hair shirt
If someone is wearing a hair shirt, they are deliberately making their life unpleasant or uncomfortable, especially because they feel guilty about something. No one is asking you to wear a hair shirt and give up all your luxuries. Note: Hair-shirt can also be used before a noun. Why adopt such a hair-shirt response to economic difficulty when there are so much more appropriate and comfortable alternatives? Note: In the past, hair shirts were very rough, uncomfortable shirts made from horsehair. People sometimes wore them for religious reasons, to show that they were truly sorry for their sins.
Collins COBUILD Idioms Dictionary, 3rd ed. © HarperCollins Publishers 2012