<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_args_exit(parser):
 """Process args that exit."""

    args = parser.parse_args()

    if len(sys.argv) <= 1:
        parser.print_help()
        sys.exit(1)

    if args.v:
        parser.exit(0, "wal %s\n" % __version__)

    if args.preview:
        print("Current colorscheme:", sep='')
        colors.palette()
        sys.exit(0)

    if args.i and args.theme:
        parser.error("Conflicting arguments -i and -f.")

    if args.r:
        reload.colors()
        sys.exit(0)

    if args.c:
        scheme_dir = os.path.join(CACHE_DIR, "schemes")
        shutil.rmtree(scheme_dir, ignore_errors=True)
        sys.exit(0)

    if not args.i and \
       not args.theme and \
       not args.R and \
       not args.backend:
        parser.error("No input specified.\n"
                     "--backend, --theme, -i or -R are required.")

    if args.theme == "list_themes":
        theme.list_out()
        sys.exit(0)

    if args.backend == "list_backends":
        print("\n - ".join(["\033[1;32mBackends\033[0m:",
                            *colors.list_backends()]))
        sys.exit(0)