Compare commits

...

3 Commits

Author SHA1 Message Date
Anthony Axenov 0aac460d63
makefile misc + generator 2022-12-11 14:48:52 +08:00
Anthony Axenov aab50b0401
php refactored and new tools 2022-12-11 14:48:30 +08:00
Anthony Axenov 28692bfcf5
unzip -oq 2022-12-11 14:32:18 +08:00
24 changed files with 349 additions and 115 deletions

100
Makefile
View File

@ -1,30 +1,6 @@
# Autogenerated at 30.11.2022 17:50 using ./gen-makefile
# Autogenerated at 11.12.2022 14:30 using ./gen-makefile
.DEFAULT_GOAL := help
#===============================================
# Scripts listed in ./packs
#===============================================
# [PACK] php + composer
composer: php composer-clean
# [TODO] [PACK] qt5 + flameshot from source
flameshot: qt5 flameshot-build
# [PACK] Apache + php + mariadb
lamp: apache php mariadb
# [PACK] OBS Studio + droidcam-obs
obs: obs-studio droidcam-obs
# [PACK] zsh + omz + powerline10k + MesloLGS font
omz: zsh omz-clean omz-fancy
chsh -s /usr/bin/zsh
@exec zsh
# [PACK] php + composer + phpunit + psalm + phpcs + php-cs-fixer
phptools: php composer-clean php-tools-only
#===============================================
# Scripts listed in ./install
#===============================================
@ -46,8 +22,8 @@ chrome:
@./install/chrome
# Install composer (latest)
composer-clean:
@./install/composer-clean
composer:
@./install/composer
# Install docker (latest) + docker-compose (latest) + ppa
docker:
@ -145,9 +121,29 @@ pgsql:
php:
@./install/php
# Install phpunit + psalm + phpcs + php-cs-fixer
php-tools-only:
@./install/php-tools-only
# Install phpcs + php-cs-fixer
phpcs:
@./install/phpcs
# Install phpmd
phpmd:
@./install/phpmd
# Install psalm
php-psalm:
@./install/php-psalm
# Install php-spx
php-spx:
@./install/php-spx
# Install phpstan
phpstan:
@./install/phpstan
# Install phpunit
phpunit:
@./install/phpunit
# Install postman (latest)
postman:
@ -201,6 +197,50 @@ zint:
zsh:
@./install/zsh
#===============================================
# Scripts listed in ./packs
#===============================================
# [TODO] [PACK] Install qt5 + flameshot from source
flameshot:
qt5
flameshot-build
# [PACK] Install apache + php + mariadb
lamp:
apache
php-stack
mariadb
# [PACK] Install OBS Studio + droidcam-obs
obs:
obs-studio
droidcam-obs
# [PACK] Install zsh + omz + powerline10k + MesloLGS font
omz:
zsh
omz-clean
omz-fancy
chsh -s /usr/bin/zsh
@exec zsh
# [PACK] Install full php stack with tooling
phptools:
php
php-tools
# [PACK] Install only php tooling (composer, phpunit, psalm, phpcs, php-cs-fixer, php-spx, phpmd)
php-stack:
composer
php-psalm
php-spx
phpcs
phpmd
phpstan
phpunit
#===============================================
# Scripts listed in ./upgrade
#===============================================

View File

@ -1,24 +1,12 @@
#!/bin/bash
mv Makefile Makefile.bak
[ -f Makefile ] && mv Makefile Makefile.bak
CHR_UPGRADE='^'
CHR_UNINSTALL='/'
cat << EOF >> Makefile
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
#===============================================
@ -33,6 +21,20 @@ for file in ./install/*; do
echo -e "# ${desc}\n${name}:\n\t@${file}\n" >> Makefile
done;
cat << EOF >> Makefile
#===============================================
# Scripts listed in ./packs
#===============================================
EOF
for file in ./packs/*; do
cat "$file" >> Makefile
echo >> Makefile
done;
cat << EOF >> Makefile
#===============================================
# Scripts listed in ./upgrade

View File

@ -39,4 +39,16 @@ fi
php composer-setup.php --quiet
cp $HOME/install/composer.phar $HOME/.local/bin/composer
cd - >/dev/null
installed "composer" && composer --version
COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile"
}
echo
echo "Finish!"
echo
composer --version

View File

@ -11,7 +11,7 @@ echo
mkdir -p ~/install/droidcam
wget -O /tmp/droidcam.zip https://files.dev47apps.net/linux/droidcam_1.8.2.zip
unzip -o /tmp/droidcam.zip -d ~/install/droidcam
unzip -oq /tmp/droidcam.zip -d ~/install/droidcam
rm -rf /tmp/droidcam.zip
cd ~/install/droidcam && sudo ./install-client

View File

@ -17,7 +17,7 @@ command -v "obs-studio" >/dev/null 2>&1 || echo 'You need to install obs-studio
mkdir -p ~/install/droidcam-obs
wget -O /tmp/droidcam-obs.zip https://files.dev47apps.net/obs/droidcam_obs_1.5.1_linux.zip
unzip -o /tmp/droidcam-obs.zip -d ~/install/droidcam-obs
unzip -oq /tmp/droidcam-obs.zip -d ~/install/droidcam-obs
rm -rf /tmp/droidcam-obs.zip
cd ~/install/droidcam-obs && ./install.sh
sudo modprobe v4l2loopback video_nr=2 card_label="OBS Virtual Camera"

View File

@ -27,7 +27,7 @@ else
! installed wget && sudo apt install -y wget
[ -d "${HOME}/install/git" ] || mkdir -p "${HOME}/install/git"
wget https://github.com/git/git/archive/master.zip -O /tmp/git.zip && \
unzip -q /tmp/git.zip -d "${HOME}/install/git" && \
unzip -oq /tmp/git.zip -d "${HOME}/install/git" && \
rm /tmp/git.zip && \
cd "${HOME}/install/git/git-master" && \
sudo make prefix=/usr/local all && \

View File

@ -29,7 +29,7 @@ if installed 'git'; then
sudo git clone https://github.com/psifidotos/applet-window-appmenu.git --depth=1 /usr/src/appmenu-applet
else
sudo wget https://github.com/psifidotos/applet-window-appmenu/archive/master.zip -O /tmp/appmenu-applet.zip
sudo unzip /tmp/appmenu-applet.zip -d /usr/src/appmenu-applet
sudo unzip -oq /tmp/appmenu-applet.zip -d /usr/src/appmenu-applet
sudo mv /usr/src/appmenu-applet/applet-window-appmenu-master/* /usr/src/appmenu-applet/
sudo mv /usr/src/appmenu-applet/applet-window-appmenu-master/.* /usr/src/appmenu-applet/
sudo rm -rf /usr/src/appmenu-applet/applet-window-appmenu-master

View File

@ -18,7 +18,7 @@ else
! installed wget && sudo apt install -y wget
mkdir -p "${HOME}/install/papirus-icon-theme"
wget https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/refs/heads/master.zip -O "${HOME}/install/papirus-icon-theme.zip"
unzip "${HOME}/install/papirus-icon-theme.zip" -d "${HOME}/install/papirus-icon-theme"
unzip -oq "${HOME}/install/papirus-icon-theme.zip" -d "${HOME}/install/papirus-icon-theme"
rm -f "${HOME}/install/papirus-icon-theme.zip"
fi

View File

@ -11,24 +11,27 @@ echo
sudo LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
sudo apt install -y --autoremove \
php${PHPVER} \
php${PHPVER}-apcu \
php${PHPVER}-bcmath \
php${PHPVER}-cli \
php${PHPVER}-common \
php${PHPVER}-xdebug \
php${PHPVER}-dom \
php${PHPVER}-curl \
php${PHPVER}-bcmath \
# php${PHPVER}-dba \
php${PHPVER}-dev \
php${PHPVER}-dom \
php${PHPVER}-gd \
php${PHPVER}-intl \
# php${PHPVER}-ldap \
php${PHPVER}-mbstring \
# php${PHPVER}-mysql \
# php${PHPVER}-opcache \
# php${PHPVER}-pgsql \
php${PHPVER}-mysql \
php${PHPVER}-opcache \
php${PHPVER}-pgsql \
php${PHPVER}-soap \
# php${PHPVER}-xml \
# php${PHPVER}-xmlrpc \
php${PHPVER}-sqlite3 \
php${PHPVER}-xdebug \
php${PHPVER}-xml \
php${PHPVER}-xmlrpc \
# php${PHPVER}-xsl \
# php${PHPVER}-sqlite3 \
# php${PHPVER}-zip \
# php${PHPVER}-dba \
# php${PHPVER}-ldap
php${PHPVER}-zip
php -v

31
install/php-psalm 100755
View File

@ -0,0 +1,31 @@
#!/bin/bash
##makedesc: Install psalm
echo
echo "==============================================="
echo "Installing psalm..."
echo "==============================================="
echo
installed() {
command -v "$1" >/dev/null 2>&1
}
! installed 'php' && echo 'ERROR: You need php to be installed' && exit 1
! installed "composer" && echo "ERROR: You need composer to be installed" && exit 2
COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile"
}
composer global require vimeo/psalm --dev
echo
echo "Finish!"
echo
phpcs --version # phpcbf --version
php-cs-fixer --version

46
install/php-spx 100755
View File

@ -0,0 +1,46 @@
#!/bin/bash
##makedesc: Install php-spx
echo
echo "==============================================="
echo "Installing php-spx..."
echo "==============================================="
echo
installed() {
command -v "$1" >/dev/null 2>&1
}
! installed 'php' && echo 'ERROR: You need php to be installed' && exit 1
! installed 'phpize' && echo 'ERROR: You need php-dev to be installed' && exit 2
! installed 'make' && sudo apt install -y make
! installed 'wget' && sudo apt install -y wget
[ -d "${HOME}/install/php-spx" ] || mkdir -p "${HOME}/install/php-spx"
wget https://github.com/NoiseByNorthwest/php-spx/archive/refs/heads/release/latest.zip -O /tmp/php-spx.zip \
&& unzip -oq /tmp/php-spx.zip -d "${HOME}/install/php-spx" \
&& rm /tmp/php-spx.zip \
&& cd "${HOME}/install/php-spx/php-spx-release-latest" \
&& phpize \
&& ./configure \
&& make \
&& sudo make install
PHPVER=`php -r 'echo ($v=explode(".",PHP_VERSION))[0].".".$v[1];'`
cat << EOF | sudo tee -a "/etc/php/${PHPVER}/mods-available/spx.ini"
; https://github.com/NoiseByNorthwest/php-spx/tree/release/latest#configuration
; https://habr.com/ru/post/505192/
; extension=spx.so
; spx.data_dir = '/tmp/spx'
spx.http_enabled = 0
spx.http_key = 'spx'
; spx.http_ip_whitelist = "127.0.0.1"
EOF
sudo ln -sf "/etc/php/${PHPVER}/mods-available/spx.ini" "/etc/php/${PHPVER}/cli/conf.d/99-spx.ini"
echo
echo "Finish!"
echo

View File

@ -1,41 +0,0 @@
#!/bin/bash
##makedesc: Install phpunit + psalm + phpcs + php-cs-fixer
echo
echo "==============================================="
echo "Installing phpunit + psalm + phpcs + php-cs-fixer..."
echo "==============================================="
echo
installed() {
command -v "$1" >/dev/null 2>&1
}
! installed "php" && echo "ERROR: You need php to be installed" && exit 1
! installed "composer" && echo "ERROR: You need composer to be installed" && exit 2
composer global require phpunit/phpunit --dev
composer global require phpmd/phpmd --dev
composer global require squizlabs/php_codesniffer --dev
composer global require friendsofphp/php-cs-fixer --dev
composer global require vimeo/psalm --dev
composer global require phpstan/phpstan --dev
# composer global require phpunit/dbunit
# composer global require phing/phing
# composer global require phpdocumentor/phpdocumentor
# composer global require sebastian/phpcpd
# composer global require phploc/phploc
export PATH="$(composer config -g home)/vendor/bin:${PATH}"
echo 'export PATH="$(composer config -g home)/vendor/bin:${PATH}"' >> "${HOME}/.profile"
phpunit --version
phpmd --version
phpcs --version # phpcbf --version
php-cs-fixer --version
psalm --version
phpstan --version
echo
echo "Finish!"
echo

32
install/phpcs 100755
View File

@ -0,0 +1,32 @@
#!/bin/bash
##makedesc: Install phpcs + php-cs-fixer
echo
echo "==============================================="
echo "Installing phpcs + php-cs-fixer..."
echo "==============================================="
echo
installed() {
command -v "$1" >/dev/null 2>&1
}
! installed 'php' && echo 'ERROR: You need php to be installed' && exit 1
! installed "composer" && echo "ERROR: You need composer to be installed" && exit 2
COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile"
}
composer global require squizlabs/php_codesniffer --dev
composer global require friendsofphp/php-cs-fixer --dev
echo
echo "Finish!"
echo
phpcs --version # phpcbf --version
php-cs-fixer --version

30
install/phpmd 100755
View File

@ -0,0 +1,30 @@
#!/bin/bash
##makedesc: Install phpmd
echo
echo "==============================================="
echo "Installing phpmd..."
echo "==============================================="
echo
installed() {
command -v "$1" >/dev/null 2>&1
}
! installed 'php' && echo 'ERROR: You need php to be installed' && exit 1
! installed "composer" && echo "ERROR: You need composer to be installed" && exit 2
COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile"
}
composer global require phpmd/phpmd --dev
echo
echo "Finish!"
echo
phpmd --version

30
install/phpstan 100755
View File

@ -0,0 +1,30 @@
#!/bin/bash
##makedesc: Install phpstan
echo
echo "==============================================="
echo "Installing phpstan..."
echo "==============================================="
echo
installed() {
command -v "$1" >/dev/null 2>&1
}
! installed 'php' && echo 'ERROR: You need php to be installed' && exit 1
! installed "composer" && echo "ERROR: You need composer to be installed" && exit 2
COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile"
}
composer global require phpstan/phpstan --dev
echo
echo "Finish!"
echo
phpstan --version

30
install/phpunit 100755
View File

@ -0,0 +1,30 @@
#!/bin/bash
##makedesc: Install phpunit
echo
echo "==============================================="
echo "Installing phpunit..."
echo "==============================================="
echo
installed() {
command -v "$1" >/dev/null 2>&1
}
! installed 'php' && echo 'ERROR: You need php to be installed' && exit 1
! installed "composer" && echo "ERROR: You need composer to be installed" && exit 2
COMPOSER_GLOBAL_HOME="$(composer config -g home)"
NEWPATH="export PATH=\"$COMPOSER_GLOBAL_HOME/vendor/bin:\${PATH}\""
cat "${HOME}/.profile" | grep -qoh "$NEWPATH" || {
$NEWPATH
echo "$NEWPATH" >> "${HOME}/.profile"
}
composer global require phpunit/phpunit --dev
echo
echo "Finish!"
echo
phpunit --version

View File

@ -1,2 +0,0 @@
# [PACK] php + composer
composer: php composer-clean

View File

@ -1,2 +1,4 @@
# [TODO] [PACK] qt5 + flameshot from source
flameshot: qt5 flameshot-build
# [TODO] [PACK] Install qt5 + flameshot from source
flameshot:
qt5
flameshot-build

View File

@ -1,2 +1,5 @@
# [PACK] Apache + php + mariadb
lamp: apache php mariadb
# [PACK] Install apache + php + mariadb
lamp:
apache
php-stack
mariadb

View File

@ -1,2 +1,4 @@
# [PACK] OBS Studio + droidcam-obs
obs: obs-studio droidcam-obs
# [PACK] Install OBS Studio + droidcam-obs
obs:
obs-studio
droidcam-obs

View File

@ -1,4 +1,7 @@
# [PACK] zsh + omz + powerline10k + MesloLGS font
omz: zsh omz-clean omz-fancy
# [PACK] Install zsh + omz + powerline10k + MesloLGS font
omz:
zsh
omz-clean
omz-fancy
chsh -s /usr/bin/zsh
@exec zsh

4
packs/php-stack 100644
View File

@ -0,0 +1,4 @@
# [PACK] Install full php stack with tooling
phptools:
php
php-tools

9
packs/php-tools 100644
View File

@ -0,0 +1,9 @@
# [PACK] Install only php tooling (composer, phpunit, psalm, phpcs, php-cs-fixer, php-spx, phpmd)
php-stack:
composer
php-psalm
php-spx
phpcs
phpmd
phpstan
phpunit

View File

@ -1,2 +0,0 @@
# [PACK] php + composer + phpunit + psalm + phpcs + php-cs-fixer
phptools: php composer-clean php-tools-only