Using and Mastering Cookiecutter Transcripts
Chapter: Creating Cookiecutter templates
Lecture: Concept: post-generation hooks

Login or purchase this course to watch this video and the rest of the course contents.
0:01 Now you've seen post generation hooks in action, let's look at them as a concept.
0:05 So, we can put whatever script or code we want here, you can see at the end, the very bottom I call sys.exit() clean unused color files.
0:14 And, that is just going to call this function I've written above, so one of the things that is very common to do in Cookiecutter
0:20 is to remove files that you don't need anymore, and maybe some day this will be built into some part of the system, I don't really know,
0:28 like a conditional statement in the cookiecutter.json or something, but for now, this is left up to you, the template creator, in these hooks,
0:37 so here we can write a little bit of code, it's going to grab the selected color,
0:41 in this case the favorite color, we called this variable selected_color,
0:44 we are using the os.path.cur_dir() to find the root of the generated project folder, and then, we are just looking in the colors directory
0:54 and grabbing like the yellow.txt file if it's not needed and we're calling remove on that.
0:59 Okay, and then finally, notice at the very bottom we're returning zero,
1:02 maybe if there was some kind of error, we have really basically no error checking, but if we checked and there was something wrong,
1:08 we could return a non zero value and we're calling sys.exit() which would actually stop and fail the project creation,
1:15 if we say this hook didn't run successfully. You say it ran successfully by sys.exit() is zero
1:21 and it doesn't run successfully by exiting something non zero.

Talk Python's Mastodon Michael Kennedy's Mastodon