51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Makefile
		
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Makefile
		
	
	
| # =====CONFIG=====
 | |
| PYTHON := python3.6
 | |
| VENV   := .venv
 | |
| 
 | |
| 
 | |
| # =====RECIPES=====
 | |
| # Create the virtual environment
 | |
| $(VENV)/bin/activate: setup.py
 | |
| 	'$(PYTHON)' -m venv '$(VENV)'
 | |
| 	'$(VENV)/bin/pip' install -e .[develop]
 | |
| 
 | |
| venv: $(VENV)/bin/activate
 | |
| .PHONY: venv
 | |
| 
 | |
| # Format the codebase using Black
 | |
| format: venv
 | |
| 	@ '$(VENV)/bin/black' setup.py app/*.py app/**/*.py
 | |
| .PHONY: format
 | |
| 
 | |
| # Remove any temporary files
 | |
| clean:
 | |
| 	@ rm -rf '$(VENV)' .tox backup_tool
 | |
| .PHONY: clean
 | |
| 
 | |
| # Pack the package into a zipfile
 | |
| backup_tool:
 | |
| 	@ cd app && \
 | |
| 		zip -r ../app.zip * \
 | |
| 		-x  "__pycache__/*" "**/__pycache__/*" ".vim/*" "**/.vim/*"
 | |
| 	@ echo "#!/usr/bin/env python3" | cat - app.zip > backup_tool
 | |
| 	@ chmod a+x backup_tool
 | |
| 	@ rm app.zip
 | |
| 
 | |
| app: backup_tool
 | |
| .PHONY: app
 | |
| 
 | |
| # Install the app
 | |
| install: app
 | |
| 	cp backup_tool /usr/local/bin
 | |
| .PHONY: install
 | |
| 
 | |
| # We can't force the develop to have all the versions locally, so
 | |
| # the local tests only include python3.6
 | |
| test: venv tox.ini
 | |
| 	@ '$(VENV)/bin/tox' -e py36
 | |
| .PHONY: test
 | |
| 
 | |
| lint: venv
 | |
| 	@ '$(VENV)/bin/tox' -e lint
 | |
| .PHONY: lint
 |