gen-makefile is back
This commit is contained in:
parent
8b809bafca
commit
14362f6165
92
gen-makefile
Executable file
92
gen-makefile
Executable file
@ -0,0 +1,92 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
mv Makefile Makefile.bak
|
||||||
|
CHR_UPGRADE='^'
|
||||||
|
CHR_UNINSTALL='/'
|
||||||
|
|
||||||
|
cat << EOF >> Makefile
|
||||||
|
# Autogenerated at $(date +'%d.%m.%Y %H:%M') using ${BASH_SOURCE[0]}
|
||||||
|
.DEFAULT_GOAL := help
|
||||||
|
|
||||||
|
#===============================================
|
||||||
|
# Scripts listed in ./packs
|
||||||
|
#===============================================
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
for file in ./packs/*; do
|
||||||
|
cat "$file" >> Makefile
|
||||||
|
echo >> Makefile
|
||||||
|
done;
|
||||||
|
|
||||||
|
cat << EOF >> Makefile
|
||||||
|
#===============================================
|
||||||
|
# Scripts listed in ./install
|
||||||
|
#===============================================
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
for file in ./install/*; do
|
||||||
|
name=${file##*/}
|
||||||
|
name=${name%.sh}
|
||||||
|
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
||||||
|
[ -z "$desc" ] && desc='<no description>'
|
||||||
|
echo -e "# ${desc}\n${name}:\n\t@${file}\n" >> Makefile
|
||||||
|
done;
|
||||||
|
|
||||||
|
cat << EOF >> Makefile
|
||||||
|
#===============================================
|
||||||
|
# Scripts listed in ./upgrade
|
||||||
|
#===============================================
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
for file in ./upgrade/*; do
|
||||||
|
name=${file##*/}
|
||||||
|
name=${name%.sh}
|
||||||
|
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
||||||
|
[ -z "$desc" ] && desc='<no description>'
|
||||||
|
echo -e "# ${desc}\n${CHR_UPGRADE}${name}:\n\t@${file}\n" >> Makefile
|
||||||
|
done;
|
||||||
|
|
||||||
|
cat << EOF >> Makefile
|
||||||
|
#===============================================
|
||||||
|
# Scripts listed in ./uninstall
|
||||||
|
#===============================================
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
for file in ./uninstall/*; do
|
||||||
|
name=${file##*/}
|
||||||
|
name=${name%.sh}
|
||||||
|
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
||||||
|
[ -z "$desc" ] && desc='<no description>'
|
||||||
|
echo -e "# ${desc}\n${CHR_UNINSTALL}${name}:\n\t@${file}\n" >> Makefile
|
||||||
|
done;
|
||||||
|
|
||||||
|
cat << EOF >> Makefile
|
||||||
|
#===============================================
|
||||||
|
# Service goals
|
||||||
|
#===============================================
|
||||||
|
|
||||||
|
self:
|
||||||
|
@./gen-makefile
|
||||||
|
|
||||||
|
help: Makefile
|
||||||
|
@echo "Ubuntu software installator"
|
||||||
|
@echo
|
||||||
|
@echo "Usage:\n \
|
||||||
|
make help|- show this help\n \
|
||||||
|
make self|- regenerate Makefile (alias of ./gen-makefile)\n \
|
||||||
|
make GOAL|- install software\n \
|
||||||
|
make ${CHR_UPGRADE}GOAL|- upgrade software\n \
|
||||||
|
make ${CHR_UNINSTALL}GOAL|- uninstall software" | column -ts '|'
|
||||||
|
@echo "\nYou can combine GOALs, here are some examples:"
|
||||||
|
@echo "\tmake @docker docker"
|
||||||
|
@echo "\tmake php @docker ^omz"
|
||||||
|
@echo "\nAvailable GOALs:"
|
||||||
|
@sed -n '/^#/{N;s/# *\(.*\)\n\([^# .].*:\)/\t\2\1/p}' $< | column -ts ':'
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "New ./Makefile has been generated!"
|
||||||
|
echo "Old one has been saved as ./Makefile.bak"
|
||||||
|
echo "Now run 'make' to get help"
|
Loading…
Reference in New Issue
Block a user