您没有很好的方法来执行此操作,因为您始终应该显示自定义文件夹的提示,但您可以执行以下操作:
# cookiecutter.json
{
"folder_name": ["foldername1", "foldername2", "other"],
"custom_folder_name": ""
}
# your template folder
{% if not cookiecutter.folder_name == "other" %}{{cookiecutter.folder_name}}{% else %}{{cookiecutter.custom_folder_name}}{% endif %}
会发生什么:
$ cookiecutter template
Select folder_name:
1 - foldername1
2 - foldername2
3 - other
Choose from 1, 2, 3 (1, 2, 3) [1]: 1
custom_folder_name []:
$ ls
foldername1 template
$ cookiecutter template
Select folder_name:
1 - foldername1
2 - foldername2
3 - other
Choose from 1, 2, 3 (1, 2, 3) [1]: 3
custom_folder_name []:
Error: "." directory already exists
$ cookiecutter template
Select folder_name:
1 - foldername1
2 - foldername2
3 - other
Choose from 1, 2, 3 (1, 2, 3) [1]: 3
custom_folder_name []: custom_folder
$ ls
custom_folder foldername1 template
$ cookiecutter template
Select folder_name:
1 - foldername1
2 - foldername2
3 - other
Choose from 1, 2, 3 (1, 2, 3) [1]: 2
custom_folder_name []: not_used
$ ls
custom_folder foldername1 foldername2 template