PS: more Makefiles
This commit is contained in:
		
							
								
								
									
										34
									
								
								slides/makefiles/PS/omni_makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								slides/makefiles/PS/omni_makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| CONFIGS = $(patsubst /%,%,$(shell cat configs)) | ||||
| STORE = $(patsubst /%,%,$(shell cat store)) | ||||
| CP = mkdir -p $(dir $@) && cp -a | ||||
| IGNORE_FILE = $(shell test -d .git/info && echo .git/info/exclude || echo .gitignore) | ||||
| GIT_COMMIT = git commit -m"add $@" --no-gpg-sign --no-signoff | ||||
| SELECTOR != command -v sk || command -v fzy || command -f fzf | ||||
|  | ||||
| .PHONY: all | ||||
| all: init backup.tgz $(IGNORE_FILE) | ||||
|  | ||||
| backup.tgz: $(CONFIGS) $(STORE) | ||||
| 	tar czf $@ $^ | ||||
|  | ||||
| $(IGNORE_FILE): store | ||||
| 	echo $(STORE) backup.tgz | tr ' ' '\n' > $@ | ||||
|  | ||||
| .PHONY: init | ||||
| init: configs store | ||||
|  | ||||
| configs store: | ||||
| 	while con="$$(find /var /etc/ /sys/ -maxdepth 2 -mindepth 1 -type f 2>/dev/null  | $(SELECTOR) -p "Select files for $@\nPress Ctrl+d once done")"; do \ | ||||
| 	echo "$$con"; \ | ||||
| 	done > $@ | ||||
|  | ||||
| $(CONFIGS): %: /% | ||||
| 	$(CP) $< $@ | ||||
| 	git add $@ | ||||
| 	$(GIT_COMMIT) | ||||
| 	$(info made git commit for $@) | ||||
| $(STORE): %: /% | ||||
| 	$(CP) $< $@ | ||||
|  | ||||
| clean: | ||||
| 	$(RM) -r $(CONFIGS) $(STORE) backup.tgz | ||||
		Reference in New Issue
	
	Block a user