Commit

Add make.bat for Windows support
Daniel Moch committed 5 years ago (Tree)

Diffstat

 hooks/post_gen_project.py | 1 
 {{cookiecutter.project_slug}}/make.bat | 179 ++++++++++++++++++++++++++++

hooks/post_gen_project.py

22 22 if 'n' == '{{ cookiecutter.windows_support }}':
23 23 remove_file('appveyor.yml')
24 24 remove_file(os.path.sep.join(['docs', 'make.bat']))
25 + remove_file('make.bat')
25 26
26 27 if 'n' == '{{ cookiecutter.docs }}':
27 28 remove_dir('docs')

{{cookiecutter.project_slug}}/make.bat (created)

1 +@echo off
2 +set BROWSER_PYSCRIPT=import os, webbrowser, sys^
3 +
4 +try:^
5 +
6 + from urllib import pathname2url^
7 +
8 +except:^
9 +
10 + from urllib.request import pathname2url^
11 +
12 +webbrowser.open("file://" + pathname2url(os.path.abspath(sys.argv[1])))
13 +
14 +set PRINT_HELP_PYSCRIPT=import re, sys^
15 +
16 +for line in sys.stdin:^
17 +
18 + match = re.match(r'^([a-zA-Z_-]+):.*?## (.*)$', line)^
19 +
20 + if match:^
21 +
22 + target, help = match.groups()^
23 +
24 + print("%-20s %s" % (target, help))
25 +
26 +if "%PYTHON%"=="" (
27 + set PYTHON=python
28 +) else (
29 + set "PATH=%PYTHON%;%PYTHON%\Scripts;%PATH%"
30 + set PYTHON=python
31 +)
32 +
33 +set PIP=pip
34 +set PIPENV=pipenv
35 +set PIPRUN=%PIPENV% run
36 +set PIPINST=%PIPENV% --bare install --dev --skip-lock
37 +set BROWSER=%PYTHON% -c %BROWSER_PYSCRIPT%
38 +
39 +if "%1" == "help" (
40 + %PYTHON% -c "%PRINT_HELP_PYSCRIPT%" < %~f0
41 + goto :end
42 +)
43 +
44 +if "%1" == "clean" (
45 + call :cleanbuild
46 + call :cleanpyc
47 + call :cleantest
48 + goto :end
49 +)
50 +
51 +if "%1" == "cleanbuild" (
52 + call :cleanbuild
53 + goto :end
54 +)
55 +
56 +if "%1" == "cleanpyc" (
57 + call :cleanpyc
58 + goto :end
59 +)
60 +
61 +if "%1" == "cleantest" (
62 + call :cleantest
63 + goto :end
64 +)
65 +
66 +if "%1" == "lint" (
67 + @echo on
68 + %PIPRUN% pylint {{ cookiecutter.project_slug }} tests --disable=parse-error
69 + @echo off
70 + goto :end
71 +)
72 +
73 +if "%1" == "test" (
74 + @echo on
75 + %PIPRUN% python -m pytest
76 + @echo off
77 + goto :end
78 +)
79 +
80 +if "%1" == "test-all" (
81 + @echo on
82 + %PIPRUN% tox
83 + @echo off
84 + goto :end
85 +)
86 +
87 +if "%1" == "test-install" (
88 + @echo on
89 + %PYTHON% -m %PIP% install --upgrade pip pipenv
90 + %PIPINST%
91 + @echo off
92 + goto :end
93 +)
94 +
95 +if "%1" == "coverage" (
96 + @echo on
97 + %PIPRUN% python -m pytest --cov={{ cookiecutter.project_slug }}
98 + @echo off
99 + goto :end
100 +)
101 +
102 +if "%1" == "coverage-html" (
103 + @echo on
104 + %PIPRUN% python -m pytest --cov={{ cookiecutter.project_slug }}
105 + %PIPRUN% coverage html
106 + %BROWSER% htmlcov\index.html
107 + @echo off
108 + goto :end
109 +)
110 +
111 +if "%1" == "release" (
112 + @echo on
113 + %PIPRUN% flit build
114 + dir dist
115 + %PIPRUN% flit publish
116 + @echo off
117 + goto :end
118 +)
119 +
120 +if "%1" == "dist" (
121 + @echo on
122 + %PIPRUN% flit build
123 + dir dist
124 + @echo off
125 + goto :end
126 +)
127 +
128 +if "%1" == "install" (
129 + @echo on
130 + %PIPRUN% flit install --deps=none
131 + @echo off
132 + goto :end
133 +)
134 +
135 +if "%1" == "run" (
136 + @echo on
137 + %PIPRUN% python -m {{ cookiecutter.project_slug }} %cmd%
138 + @echo off
139 + goto :end
140 +)
141 +
142 +if "%1" == "debug" (
143 + @echo on
144 + %PIPRUN% flit install --deps=none
145 + %PIPRUN% pudb3 {{ cookiecutter.project_slug }} %cmd%
146 + @echo off
147 + goto :end
148 +)
149 +
150 +:cleanbuild
151 +@echo on
152 +rmdir /S /Q build
153 +rmdir /S /Q dist
154 +rmdir /S /Q .eggs
155 +del /S *.egg-info
156 +del /S *.egg
157 +@echo off
158 +exit /B 0
159 +
160 +:cleanpyc
161 +@echo on
162 +del /S *.pyc
163 +del /S *.pyo
164 +del /S *~
165 +del /S __pycache__
166 +%PIPRUN% pip uninstall -y {{ cookiecutter.project_slug }}
167 +@echo off
168 +exit /B 0
169 +
170 +:cleantest
171 +@echo on
172 +del .coverage
173 +rmdir /S /Q htmlcov
174 +rmdir /S /Q .pytest_cache
175 +rmdir /S /Q .tox
176 +@echo off
177 +exit /B 0
178 +
179 +:end