I know the feeling too, I've been there so many times.
The only advice I could give would be to set yourself smaller goals. Instead of thinking "By June I want to be..." try thinking "this time next week I want to be..." - that way you get to celebrate your mini victory which always boosts the confidence and helps motivate you for the next one! It can also help to keep you on track and show how much damage the "cheating" is doing. That's what helps me anyway, I find that if a goal is too big or too far away then I feel too frustrated to keep striving for it whereas breaking it down seems more manageable and keeps me on track.