|
|
|
#//////////////////////////////////////////////////////////////
|
|
|
|
#// ____ //
|
|
|
|
#// | __ ) ___ _ __ ___ _ _ _ __ ___ _ __ _ __ ___ //
|
|
|
|
#// | _ \ / _ \ '_ \/ __| | | | '_ \ / _ \ '__| '_ \ / __| //
|
|
|
|
#// | |_) | __/ | | \__ \ |_| | |_) | __/ | | |_) | (__ //
|
|
|
|
#// |____/ \___|_| |_|___/\__,_| .__/ \___|_| | .__/ \___| //
|
|
|
|
#// |_| |_| //
|
|
|
|
#//////////////////////////////////////////////////////////////
|
|
|
|
#// //
|
|
|
|
#// Script, 2021 //
|
|
|
|
#// Created: 17, June, 2021 //
|
|
|
|
#// Modified: 28, September, 2021 //
|
|
|
|
#// file: - //
|
|
|
|
#// - //
|
|
|
|
#// Source: https://github.com/metal3d/bashsimplecurses //
|
|
|
|
#// https://superuser.com/questions/281573/what-are-the-best-options-to-use-when-compressing-files-using-7-zip
|
|
|
|
#// OS: ALL //
|
|
|
|
#// CPU: ALL //
|
|
|
|
#// //
|
|
|
|
#//////////////////////////////////////////////////////////////
|
|
|
|
PROJECT_NAME := scripts
|
|
|
|
SHELL := bash
|
|
|
|
VERSION := 1.3.20
|
|
|
|
RM := rm
|
|
|
|
|
|
|
|
all: install
|
|
|
|
|
|
|
|
install:
|
|
|
|
@echo "Install libraries..."
|
|
|
|
sudo ./install.sh --yes
|
|
|
|
@echo "Install: done"
|
|
|
|
|
|
|
|
uninstall:
|
|
|
|
@echo "Removing libraries"
|
|
|
|
sudo ./uninstall.sh --yes
|
|
|
|
@echo "Uninstall: done"
|
|
|
|
|
|
|
|
reinstall: uninstall install
|
|
|
|
|
|
|
|
update:
|
|
|
|
@echo "Update submodule..."
|
|
|
|
git submodule update --init --recursive
|
|
|
|
git submodule update --recursive --remote
|
|
|
|
@echo "Update: done"
|
|
|
|
|
|
|
|
dist: clean
|
|
|
|
mkdir -p package_build
|
|
|
|
rsync -azh --progress --exclude='package_build/' --exclude='*.gitignore' --exclude='*.git/' \
|
|
|
|
--exclude='*.circleci/' --exclude='*.github/' --exclude='*.png' --exclude='*.jpeg' --exclude='*.gif' . package_build/
|
|
|
|
XZ_OPT=-e9 tar cJf $(PROJECT_NAME)-$(VERSION).tar.xz package_build/
|
|
|
|
sha384sum $(PROJECT_NAME)-$(VERSION).tar.xz > $(PROJECT_NAME)-$(VERSION).tar.xz.sha384
|
|
|
|
sha384sum --check $(PROJECT_NAME)-$(VERSION).tar.xz.sha384
|
|
|
|
@echo "$(PROJECT_NAME)-$(VERSION).tar.xz done"
|
|
|
|
|
|
|
|
dist-full: clean
|
|
|
|
mkdir -p package_build
|
|
|
|
rsync -azh --progress --exclude='package_build/' . package_build/
|
|
|
|
XZ_OPT=-e9 tar cJf $(PROJECT_NAME)-full-$(VERSION).tar.xz package_build/
|
|
|
|
sha384sum $(PROJECT_NAME)-full-$(VERSION).tar.xz > $(PROJECT_NAME)-full-$(VERSION).tar.xz.sha384
|
|
|
|
sha384sum --check $(PROJECT_NAME)-full-$(VERSION).tar.xz.sha384
|
|
|
|
@echo "$(PROJECT_NAME)-full-$(VERSION).tar.xz done"
|
|
|
|
|
|
|
|
check:
|
|
|
|
@find . -type f \( -name "*.py" -o -name "*.py" \) ! -path "*./git/*" ! -path "*/install.sh" ! -path "*/uninstall.sh" \
|
|
|
|
! -path "*/Bash-Snippet/*" ! -path "*/git/git-scripts/*" ! -path "*/git/git-extras/*" \
|
|
|
|
! -path "*/git/git-extra-commands/*" ! -path "*/cryptography/cryptr/*" ! -path "*/file/adb-sync/*" \
|
|
|
|
! -path "*/bash-scripts/*" ! -path "*/fff/*" ! -path "*/shell-scripts/*" -print0 | xargs -0 -P"$(shell nproc)" -I{} python -m compileall -q "{}"
|
|
|
|
@echo "Python syntax check: done"
|
|
|
|
@find . -type f \( -name "*.sh" -o -name "*.bash" \) ! -path "*./git/*" ! -path "*/install.sh" ! -path "*/uninstall.sh" \
|
|
|
|
! -path "*/Bash-Snippet/*" ! -path "*/git/git-scripts/*" ! -path "*/git/git-extras/*" \
|
|
|
|
! -path "*/git/git-extra-commands/*" ! -path "*/cryptography/cryptr/*" ! -path "*/file/adb-sync/*" \
|
|
|
|
! -path "*/bash-scripts/*" ! -path "*/fff/*" ! -path "*/shell-scripts/*" -print0 | xargs -0 -P"$(shell nproc)" -I{} $(SHELL) -n "{}"
|
|
|
|
@find . -type f \( -name "*.sh" -o -name "*.bash" \) ! -path "*./git/*" ! -path "*/install.sh" ! -path "*/uninstall.sh" \
|
|
|
|
! -path "*/Bash-Snippet/*" ! -path "*/git/git-scripts/*" ! -path "*/git/git-extras/*" \
|
|
|
|
! -path "*/git/git-extra-commands/*" ! -path "*/cryptography/cryptr/*" ! -path "*/file/adb-sync/*" \
|
|
|
|
! -path "*/bash-scripts/*" ! -path "*/fff/*" ! -path "*/shell-scripts/*" -print0 | xargs -0 -P"$(shell nproc)" -I{} \
|
|
|
|
shellcheck --check-sourced --color=auto --format=gcc --severity=warning --shell=bash --enable=all "{}"
|
|
|
|
@echo "Bash syntax check: done"
|
|
|
|
|
|
|
|
check-all:
|
|
|
|
@find . -type f \( -name "*.py" -o -name "*.py" \) -print0 | xargs -0 -P"$(shell nproc)" -I{} python -m compileall -q "{}"
|
|
|
|
@echo "Python syntax check: done"
|
|
|
|
@find . -type f \( -name "*.sh" -o -name "*.bash" \) -print0 | xargs -0 -P"$(shell nproc)" -I{} $(SHELL) -n "{}"
|
|
|
|
@find . -type f \( -name "*.sh" -o -name "*.bash" \) -print0 | xargs -0 -P"$(shell nproc)" -I{} \
|
|
|
|
shellcheck --check-sourced --color=auto --format=gcc --severity=warning --shell=bash --enable=all "{}"
|
|
|
|
@echo "Bash syntax check: done"
|
|
|
|
|
|
|
|
test: check
|
|
|
|
|
|
|
|
clean:
|
|
|
|
$(RM) -rf package_build/
|
|
|
|
$(RM) -f $(PROJECT_NAME)-$(VERSION).tar.xz
|
|
|
|
$(RM) -f $(PROJECT_NAME)-$(VERSION).tar.xz.sha384
|
|
|
|
$(RM) -f $(PROJECT_NAME)-full-$(VERSION).tar.xz
|
|
|
|
$(RM) -f $(PROJECT_NAME)-full-$(VERSION).tar.xz.sha384
|
|
|
|
@echo "Clean OK"
|
|
|
|
|
|
|
|
purge: clean uninstall
|
|
|
|
@echo "Purge OK"
|
|
|
|
|
|
|
|
check-dep:
|
|
|
|
@echo "Check dependency:"
|
|
|
|
@echo ""
|
|
|
|
@bash --version > /dev/null 2>&1 && echo "bash: OK" || echo "bash: Missing"
|
|
|
|
@parallel --version > /dev/null 2>&1 && echo "parallel: OK" || echo "parallel: Missing"
|
|
|
|
@find --version > /dev/null 2>&1 && echo "find: OK" || echo "find: Missing"
|
|
|
|
@xargs --version > /dev/null 2>&1 && echo "xargs: OK" || echo "xargs: Missing"
|
|
|
|
@git --version > /dev/null 2>&1 && echo "git: OK" || echo "git: Missing"
|
|
|
|
@docker --version> /dev/null 2>&1 && echo "docker: OK" || echo "docker: Missing"
|
|
|
|
@openssl version > /dev/null 2>&1 && echo "openssl: OK" || echo "openssl: Missing"
|
|
|
|
@rhash --version > /dev/null 2>&1 && echo "rhash: OK" || echo "rhash: Missing"
|
|
|
|
@cryptsetup --version > /dev/null 2>&1 && echo "cryptsetup: OK" || echo "cryptsetup: Missing"
|
|
|
|
@xz --version > /dev/null 2>&1 && echo "xz: OK" || echo "xz: Missing"
|
|
|
|
@tar --version > /dev/null 2>&1 && echo "tar: OK" || echo "tar: Missing"
|
|
|
|
@mount --version > /dev/null 2>&1 && echo "mount: OK" || echo "mount: Missing"
|
|
|
|
@mkfs.btrfs --version > /dev/null 2>&1 && echo "mkfs.btrfs: OK" || echo "mkfs.btrfs: Missing"
|
|
|
|
@gource --help > /dev/null 2>&1 && echo "gource: OK" || echo "gource: Missing"
|
|
|
|
@youtube-dl --version > /dev/null 2>&1 && echo "youtube-dl: OK" || echo "youtube-dl: Missing"
|
|
|
|
@ffmpeg -version > /dev/null 2>&1 && echo "ffmpeg: OK" || echo "ffmpeg: Missing"
|
|
|
|
@cwebp -version > /dev/null 2>&1 && echo "cwebp: OK" || echo "cwebp: Missing"
|
|
|
|
@avifenc --version > /dev/null 2>&1 && echo "avifenc: OK" || echo "avifenc: Missing"
|
|
|
|
@magick -version > /dev/null 2>&1 && echo "magick: OK" || echo "magick: Missing"
|
|
|
|
@pacman --version > /dev/null 2>&1 && echo "pacman: OK" || echo "pacman: Missing (If Archlinux based)"
|
|
|
|
@apt --version > /dev/null 2>&1 && echo "apt: OK" || echo "apt: Missing (If debian based)"
|
|
|
|
@clang-format --version > /dev/null 2>&1 && echo "clang-format: OK" || echo "clang-format: Missing"
|
|
|
|
@cmake --version > /dev/null 2>&1 && echo "cmake: OK" || echo "cmake: Missing"
|
|
|
|
@ninja --version > /dev/null 2>&1 && echo "ninja: OK" || echo "ninja: Missing"
|
|
|
|
@gpg --version > /dev/null 2>&1 && echo "gpg: OK" || echo "gpg: Missing"
|
|
|
|
@ruby --version > /dev/null 2>&1 && echo "ruby: OK" || echo "ruby: Missing"
|
|
|
|
@python --version > /dev/null 2>&1 && echo "python: OK" || echo "python: Missing"
|
|
|
|
@shellcheck --version > /dev/null 2>&1 && echo "shellcheck: OK" || echo "shellcheck: Missing"
|
|
|
|
|
|
|
|
|
|
|
|
.PHONY: check check-dep dist dist-full clean purge install uninstall reinstall update test
|