Compare commits
1 Commits
8ffc2dfe32
...
experiment
| Author | SHA1 | Date | |
|---|---|---|---|
|
5970e9b968
|
@@ -1,4 +0,0 @@
|
|||||||
.git
|
|
||||||
.gitignore
|
|
||||||
.dockerignore
|
|
||||||
README.md
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
root = true
|
|
||||||
|
|
||||||
[*]
|
|
||||||
end_of_line = lf
|
|
||||||
insert_final_newline = true
|
|
||||||
|
|
||||||
[{install/*, uninstall/*, upgrade/*}]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
|
||||||
|
|
||||||
[{packs/*, Makefile*}]
|
|
||||||
indent_style = tab
|
|
||||||
indent_size = 4
|
|
||||||
27
Dockerfile
27
Dockerfile
@@ -1,27 +0,0 @@
|
|||||||
FROM ubuntu:22.04
|
|
||||||
|
|
||||||
RUN apt update && \
|
|
||||||
apt -y install \
|
|
||||||
apt-transport-https \
|
|
||||||
apt-utils \
|
|
||||||
bsdmainutils \
|
|
||||||
curl \
|
|
||||||
dialog \
|
|
||||||
grep \
|
|
||||||
make \
|
|
||||||
man \
|
|
||||||
sudo \
|
|
||||||
wget
|
|
||||||
|
|
||||||
RUN adduser ivan \
|
|
||||||
--quiet \
|
|
||||||
--home=/home/ivan \
|
|
||||||
--ingroup=sudo \
|
|
||||||
--disabled-password \
|
|
||||||
--disabled-login
|
|
||||||
|
|
||||||
COPY ./ /home/ivan/my-env
|
|
||||||
RUN echo "ivan ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
|
||||||
|
|
||||||
USER ivan
|
|
||||||
WORKDIR /home/ivan/my-env
|
|
||||||
13
LICENSE
13
LICENSE
@@ -1,13 +0,0 @@
|
|||||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
||||||
Version 2, December 2004
|
|
||||||
|
|
||||||
Copyright (C) 2022 Антон Аксенов <anthonyaxenov@gmail.com>
|
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim or modified
|
|
||||||
copies of this license document, and changing it is allowed as long
|
|
||||||
as the name is changed.
|
|
||||||
|
|
||||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
||||||
207
Makefile
207
Makefile
@@ -1,197 +1,114 @@
|
|||||||
# Autogenerated at 26.08.2022 08:21 using ./gen-makefile
|
# Autogenerated at 04.07.2022 22:11 using ./gen-makefile.sh
|
||||||
.DEFAULT_GOAL := help
|
|
||||||
|
|
||||||
#===============================================
|
##lamp: Apache + php + mariadb
|
||||||
# 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
|
lamp: apache php mariadb
|
||||||
|
##apache: Install apache2 (latest)
|
||||||
# [PACK] zsh + omz + powerline10k + MesloLGS font
|
|
||||||
omz: zsh omz-clean omz-fancy
|
|
||||||
chsh -s /usr/bin/zsh
|
|
||||||
@exec zsh
|
|
||||||
|
|
||||||
#===============================================
|
|
||||||
# Scripts listed in ./install
|
|
||||||
#===============================================
|
|
||||||
|
|
||||||
# Install apache2 (latest)
|
|
||||||
apache:
|
apache:
|
||||||
@./install/apache
|
./install/apache
|
||||||
|
|
||||||
# Install bunch of software from apt
|
##apt: Install bunch of software from apt
|
||||||
apt:
|
apt:
|
||||||
@./install/apt
|
./install/apt
|
||||||
|
|
||||||
# Install Canon Pixma MG2500 + ppa
|
##chrome: Install google chrome (latest)
|
||||||
canon-mg2500:
|
|
||||||
@./install/canon-mg2500
|
|
||||||
|
|
||||||
# Install google chrome (latest)
|
|
||||||
chrome:
|
chrome:
|
||||||
@./install/chrome
|
./install/chrome
|
||||||
|
|
||||||
# Install composer (latest)
|
##composer: Install composer (latest)
|
||||||
composer-clean:
|
composer:
|
||||||
@./install/composer-clean
|
./install/composer
|
||||||
|
|
||||||
# Install docker (latest) + docker-compose (latest) + ppa
|
##docker: Install docker (latest) + docker-compose (latest) + ppa
|
||||||
docker:
|
docker:
|
||||||
@./install/docker
|
./install/docker
|
||||||
|
|
||||||
# Install droidcam v1.8.2
|
##droidcam: Install droidcam v1.8.2
|
||||||
droidcam:
|
droidcam:
|
||||||
@./install/droidcam
|
./install/droidcam
|
||||||
|
|
||||||
# Install droidcam-obs plugin v1.5.1
|
##droidcam-obs: Install droidcam-obs plugin v1.5.1
|
||||||
droidcam-obs:
|
droidcam-obs:
|
||||||
@./install/droidcam-obs
|
./install/droidcam-obs
|
||||||
|
|
||||||
# Install file templates (KDE)
|
##git: Install git (latest)
|
||||||
file-templates-kde:
|
|
||||||
@./install/file-templates-kde
|
|
||||||
|
|
||||||
# [TODO] Build flameshot from src (latest)
|
|
||||||
flameshot-build:
|
|
||||||
@./install/flameshot-build
|
|
||||||
|
|
||||||
# Install git (latest)
|
|
||||||
git:
|
git:
|
||||||
@./install/git
|
./install/git
|
||||||
|
|
||||||
# Install golang v1.18.3
|
##golang: Install golang v1.18.3
|
||||||
golang:
|
golang:
|
||||||
@./install/golang
|
./install/golang
|
||||||
|
|
||||||
# Install grub-customizer (latest) + ppa
|
##grubc: Install grub-customizer (latest) + ppa
|
||||||
grubc:
|
grubc:
|
||||||
@./install/grubc
|
./install/grubc
|
||||||
|
|
||||||
# Install KDE Window AppMenu Applet
|
##kde-appmenu: Install KDE Window AppMenu Applet
|
||||||
kde-appmenu:
|
kde-appmenu:
|
||||||
@./install/kde-appmenu
|
./install/kde-appmenu
|
||||||
|
|
||||||
# Install libreoffice
|
##lite-xl: Install lite-xl v2.0.5 (draft)
|
||||||
libreoffice:
|
|
||||||
@./install/libreoffice
|
|
||||||
|
|
||||||
# Install lite-xl v2.0.5 (draft)
|
|
||||||
lite-xl:
|
lite-xl:
|
||||||
@./install/lite-xl
|
./install/lite-xl
|
||||||
|
|
||||||
# Install mariadb (latest) and php-mysql + phpMyAdmin (if php is installed)
|
##mariadb: Install mariadb (latest) and php-mysql + phpMyAdmin (if php is installed)
|
||||||
mariadb:
|
mariadb:
|
||||||
@./install/mariadb
|
./install/mariadb
|
||||||
|
|
||||||
# Install nodejs + npm via nvm
|
##nodejs: Install nodejs + npm via nvm
|
||||||
nodejs:
|
nodejs:
|
||||||
@./install/nodejs
|
./install/nodejs
|
||||||
|
|
||||||
# Install ntfy (latest) + ppa
|
##pgsql: Install postgresql (latest) and php-pgsql (if php is installed)
|
||||||
ntfy:
|
|
||||||
@./install/ntfy
|
|
||||||
|
|
||||||
# Install omz (latest)
|
|
||||||
omz-clean:
|
|
||||||
@./install/omz-clean
|
|
||||||
|
|
||||||
# Install omz fancy (powerline10k + MesloLGS font)
|
|
||||||
omz-fancy:
|
|
||||||
@./install/omz-fancy
|
|
||||||
|
|
||||||
# Install papirus-icon-theme (latest)
|
|
||||||
papirus:
|
|
||||||
@./install/papirus
|
|
||||||
|
|
||||||
# Install postgresql (latest) and php-pgsql (if php is installed)
|
|
||||||
pgsql:
|
pgsql:
|
||||||
@./install/pgsql
|
./install/pgsql
|
||||||
|
|
||||||
# Install php v8.1 + ppa
|
##php: Install php v8.1 + ppa
|
||||||
php:
|
php:
|
||||||
@./install/php
|
./install/php
|
||||||
|
|
||||||
# Install postman (latest)
|
##postman: Install postman (latest)
|
||||||
postman:
|
postman:
|
||||||
@./install/postman
|
./install/postman
|
||||||
|
|
||||||
# Install qt5
|
##rustdesk: Install rustdesk v1.1.8 (deb)
|
||||||
qt5:
|
|
||||||
@./install/qt5
|
|
||||||
|
|
||||||
# Install rustdesk client v1.1.9 (deb)
|
|
||||||
rustdesk:
|
rustdesk:
|
||||||
@./install/rustdesk
|
./install/rustdesk
|
||||||
|
|
||||||
# Install bunch of software from snap
|
##snap: Install bunch of software from snap
|
||||||
snap:
|
snap:
|
||||||
@./install/snap
|
./install/snap
|
||||||
|
|
||||||
# Install syncthing (latest) + ppa
|
##syncthing: Install syncthing (latest) + ppa
|
||||||
syncthing:
|
syncthing:
|
||||||
@./install/syncthing
|
./install/syncthing
|
||||||
|
|
||||||
# Install telebit (latest)
|
##telebit: Install telebit (latest)
|
||||||
telebit:
|
telebit:
|
||||||
@./install/telebit
|
./install/telebit
|
||||||
|
|
||||||
# Install ulauncher (latest) + ppa
|
##ulauncher: Install ulauncher (latest) + ppa
|
||||||
ulauncher:
|
ulauncher:
|
||||||
@./install/ulauncher
|
./install/ulauncher
|
||||||
|
|
||||||
# Install wine (latest) + ppa (focal)
|
##wine: Install wine (latest) + ppa (focal)
|
||||||
wine:
|
wine:
|
||||||
@./install/wine
|
./install/wine
|
||||||
|
|
||||||
# Install zint (latest)
|
##zint: Install zint (latest)
|
||||||
zint:
|
zint:
|
||||||
@./install/zint
|
./install/zint
|
||||||
|
|
||||||
# Install vanilla zsh
|
##zsh: Install zsh + omz (latest)
|
||||||
zsh:
|
zsh:
|
||||||
@./install/zsh
|
./install/zsh
|
||||||
|
|
||||||
#===============================================
|
|
||||||
# Scripts listed in ./upgrade
|
|
||||||
#===============================================
|
|
||||||
|
|
||||||
# Upgrade omz
|
|
||||||
^omz:
|
|
||||||
@./upgrade/omz
|
|
||||||
|
|
||||||
#===============================================
|
|
||||||
# Scripts listed in ./uninstall
|
|
||||||
#===============================================
|
|
||||||
|
|
||||||
# Uninstall docker
|
|
||||||
/docker:
|
|
||||||
@./uninstall/docker
|
|
||||||
|
|
||||||
# Uninstall omz
|
|
||||||
/omz:
|
|
||||||
@./uninstall/omz
|
|
||||||
|
|
||||||
#===============================================
|
|
||||||
# Service goals
|
|
||||||
#===============================================
|
|
||||||
|
|
||||||
self:
|
|
||||||
@./gen-makefile
|
|
||||||
|
|
||||||
|
##help: Show this help message
|
||||||
help: Makefile
|
help: Makefile
|
||||||
@echo "Ubuntu software installator"
|
@echo "Usage:"
|
||||||
@echo
|
@echo "\tmake <goal>\n"
|
||||||
@echo "Usage:\n make help|- show this help\n make self|- regenerate Makefile (alias of ./gen-makefile)\n make GOAL|- install software\n make ^GOAL|- upgrade software\n make /GOAL|- uninstall software" | column -ts '|'
|
@echo "Available goals:"
|
||||||
@echo "\nYou can combine GOALs, here are some examples:"
|
@sed -n 's/^##//p' $< | column -t -s ':' | sed -e "s/^/\t/"
|
||||||
@echo "\tmake @docker docker"
|
|
||||||
@echo "\tmake php @docker ^omz"
|
##<goal>_: Same as 'cat ./install/<goal>.sh'
|
||||||
@echo "\nAvailable GOALs:"
|
%_:
|
||||||
@sed -n '/^#/{N;s/# *\(.*\)\n\([^# .].*:\)/\t\2\1/p}' $< | column -ts ':'
|
@cat ./install/$*.sh
|
||||||
|
|||||||
68
README.md
68
README.md
@@ -4,14 +4,11 @@
|
|||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
* Ubuntu >= 20.04 (not tested with version < 20)
|
* `bash`, `zsh` or other `sh`-compatible shell
|
||||||
* `bash`, `zsh` or other POSIX-compatible shell
|
|
||||||
* `make` (optional but recommended)
|
* `make` (optional but recommended)
|
||||||
* `wget` (necessary for some scripts)
|
* `wget` (necessary for some scripts)
|
||||||
* `git` (necessary for some scripts)
|
* `git` (necessary for some scripts)
|
||||||
|
|
||||||
If some dependecies are missed for some of these scripts it is enougth to run `./install/apt` in most cases.
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
### Clone this repo (recommended)
|
### Clone this repo (recommended)
|
||||||
@@ -26,37 +23,33 @@ wget -qO - https://git.axenov.dev/anthony/my-env/archive/master.tar.gz | tar -zx
|
|||||||
# switch to repo dir
|
# switch to repo dir
|
||||||
cd my-env
|
cd my-env
|
||||||
|
|
||||||
# generate fresh ./Makefile and get full list of `make` goals
|
|
||||||
./gen-makefile
|
|
||||||
|
|
||||||
# get full list of `make` goals
|
# get full list of `make` goals
|
||||||
make
|
make help
|
||||||
|
|
||||||
|
# generate new ./Makefile and get full list of `make` goals
|
||||||
|
./gen-makefile.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
### Selective straightforward installation
|
### Selective straightforward installation
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# from remote file
|
# from remote file
|
||||||
wget -qO - https://git.axenov.dev/anthony/my-env/raw/branch/master/install/apt | bash
|
wget -qO - https://git.axenov.dev/anthony/my-env/raw/branch/master/install/apt.sh | bash
|
||||||
|
|
||||||
# from locally cloned repo
|
# from locally cloned repo
|
||||||
./install/apt
|
./install/apt.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## How to add my script?
|
## How to add a new software script?
|
||||||
|
|
||||||
1. Create a new shell script in `./install`, `./upgrade` or `./uninstall` directory.
|
1. Create new `./install/*.sh` script.
|
||||||
At the beggining of a file you must write these two lines:
|
At the beggining of a file you must write these two lines:
|
||||||
```shell
|
```shell
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
##makedesc: Your description for Makefile
|
##makedesc: Your description for Makefile
|
||||||
```
|
```
|
||||||
2. Make this script executable, e.g.:
|
2. Test your script
|
||||||
```shell
|
3. Run `./gen-makefile.sh` to generate new `./Makefile`
|
||||||
sudo chmod a+x ./install/myscript
|
|
||||||
```
|
|
||||||
3. Test your script
|
|
||||||
4. Run `make self` to generate new `./Makefile`
|
|
||||||
|
|
||||||
## How to create packs?
|
## How to create packs?
|
||||||
|
|
||||||
@@ -65,12 +58,12 @@ You can create new file inside `./packs` dir.
|
|||||||
Syntax is same as classic makefile with one important and necessary addition -- a comment started with `##`:
|
Syntax is same as classic makefile with one important and necessary addition -- a comment started with `##`:
|
||||||
|
|
||||||
```makefile
|
```makefile
|
||||||
# Pack description
|
##mypack1: Pack description
|
||||||
mypack1: goal1 goal2 goalX ...
|
mypack1: goal1 goal2 goalX ...
|
||||||
...
|
...
|
||||||
|
|
||||||
# Pack description
|
##mypackX: Pack description
|
||||||
mypackX: goalA goalB
|
mypackY: goalA goalB
|
||||||
@cp file1 file2
|
@cp file1 file2
|
||||||
...
|
...
|
||||||
...
|
...
|
||||||
@@ -79,36 +72,3 @@ mypackX: goalA goalB
|
|||||||
where:
|
where:
|
||||||
* `mypack*` is the pack name
|
* `mypack*` is the pack name
|
||||||
* `goal*` are script names in `./install`
|
* `goal*` are script names in `./install`
|
||||||
|
|
||||||
## Testing in docker (not recommended)
|
|
||||||
|
|
||||||
> Note that this is almost useless way to test since you'll meet errors in many cases because dockerized OS is not fully-functional and will never be.
|
|
||||||
>
|
|
||||||
> You can use docker to test something **really simple**, e.g. to check general script steps or install cli tools.
|
|
||||||
>
|
|
||||||
> In other cases you need virtualized Ubuntu instead of dockerized one, so I strongly recommend you to use [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or your host machine.
|
|
||||||
|
|
||||||
```shell
|
|
||||||
# switch to repo dir
|
|
||||||
cd my-env
|
|
||||||
|
|
||||||
# build and run container
|
|
||||||
docker build -t myenv . && docker run -it myenv
|
|
||||||
|
|
||||||
# or oneliner
|
|
||||||
docker run -it $(docker build -q .)
|
|
||||||
```
|
|
||||||
|
|
||||||
Now you can play around with scripts.
|
|
||||||
|
|
||||||
## TODO
|
|
||||||
|
|
||||||
* build: [flameshot](https://github.com/flameshot-org/flameshot#compilation)
|
|
||||||
* build: [rustdesk](https://github.com/rustdesk/rustdesk#build)
|
|
||||||
* [JB mono](https://www.jetbrains.com/ru-ru/lp/mono/#how-to-install) ([2](https://fonts.google.com/specimen/JetBrains+Mono))
|
|
||||||
* update scripts (when possible)
|
|
||||||
* uninstall scripts (when possible)
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
[WTFPLv2](LICENSE)
|
|
||||||
|
|||||||
12
experimental/flatpak
Executable file
12
experimental/flatpak
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Installing flatpak and its software..."
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
|
||||||
|
sudo apt install -y --autoremove \
|
||||||
|
flatpak \
|
||||||
|
gnome-software-plugin-flatpak
|
||||||
|
|
||||||
|
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||||
49
experimental/oci8
Normal file
49
experimental/oci8
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Installing oci8..."
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
|
||||||
|
# https://www.oracle.com/cis/database/technologies/instant-client/downloads.html
|
||||||
|
|
||||||
|
#check for
|
||||||
|
# wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basic-linuxx64.zip
|
||||||
|
# wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip -- only libociicus.so
|
||||||
|
# wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-sqlplus-linuxx64.zip
|
||||||
|
# wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-tools-linuxx64.zip
|
||||||
|
# wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-sdk-linuxx64.zip
|
||||||
|
#unzip
|
||||||
|
|
||||||
|
sudo mkdir /opt/oracle/
|
||||||
|
sudo mv ~/Downloads/instant_client/ /opt/oracle/
|
||||||
|
|
||||||
|
sudo sh -c "echo /opt/oracle/instant_client > /etc/ld.so.conf.d/oracle-instantclient.conf"
|
||||||
|
sudo ldconfig
|
||||||
|
|
||||||
|
sudo apt install -y --autoremove \
|
||||||
|
php-dev \
|
||||||
|
php-pear \
|
||||||
|
build-essential \
|
||||||
|
libaio1 \
|
||||||
|
default-jdk
|
||||||
|
sudo pecl channel-update pecl.php.net
|
||||||
|
sudo pecl install oci8 # php8
|
||||||
|
#sudo pecl install oci8-2.2.0 # php7
|
||||||
|
|
||||||
|
#sh -c "echo '; priority=10' > /etc/php/7.4/mods-available/oci8.ini"
|
||||||
|
# sudo sh -c "echo 'extension=oci8.so' >> /etc/php/7.4/mods-available/oci8.ini"
|
||||||
|
# sudo chmod 0644 /etc/php/7.4/mods-available/oci8.ini
|
||||||
|
sudo phpenmod oci8
|
||||||
|
php -i | grep oci8
|
||||||
|
|
||||||
|
# instantclient,/opt/oracle/instant_client
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# https://pecl.php.net/package/oci8
|
||||||
|
#sudo pecl install oci8-2.2.0
|
||||||
42
experimental/phpstorm-url-handler
Normal file
42
experimental/phpstorm-url-handler
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Installing phpstorm-url-handler..."
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
|
||||||
|
installed() {
|
||||||
|
command -v "$1" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://github.com/rozwell/phpstorm-url-handler/
|
||||||
|
# https://askubuntu.com/a/1023143
|
||||||
|
# https://askubuntu.com/a/919825
|
||||||
|
# https://medium.com/swlh/custom-protocol-handling-how-to-8ac41ff651eb
|
||||||
|
# https://www.linuxquestions.org/questions/linux-desktop-74/xdg-open-doesn%27t-recognize-custom-protocol-4175433062/#post4809984
|
||||||
|
|
||||||
|
sudo rm -rf /usr/bin/phpstorm-url-handler >/dev/null
|
||||||
|
sudo rm -rf ~/.local/share/applications/phpstorm-url-handler.desktop >/dev/null
|
||||||
|
sudo rm -rf /usr/share/applications/phpstorm-url-handler.desktop >/dev/null
|
||||||
|
if installed "git"; then
|
||||||
|
sudo git clone https://github.com/rozwell/phpstorm-url-handler.git /usr/src/phpstorm-url-handler
|
||||||
|
else
|
||||||
|
sudo wget https://github.com/rozwell/phpstorm-url-handler/archive/master.zip -O /tmp/phpstorm-url-handler.zip
|
||||||
|
sudo unzip /tmp/phpstorm-url-handler.zip -d /usr/src/phpstorm-url-handler
|
||||||
|
sudo rm -f /tmp/phpstorm-url-handler.zip
|
||||||
|
fi
|
||||||
|
|
||||||
|
info "Copy .desktop"
|
||||||
|
sudo cp /usr/src/phpstorm-url-handler/phpstorm-url-handler.desktop /usr/share/local/applications/phpstorm-url-handler.desktop
|
||||||
|
|
||||||
|
info "Symlink bin"
|
||||||
|
sudo cp /usr/src/phpstorm-url-handler/phpstorm-url-handler /usr/bin/phpstorm-url-handler
|
||||||
|
|
||||||
|
info "desktop-file-install"
|
||||||
|
sudo desktop-file-install phpstorm-url-handler.desktop
|
||||||
|
|
||||||
|
info "update-desktop-database"
|
||||||
|
sudo update-desktop-database -v 2>&1 | grep -E "^(.+)\/phpstorm-url-handler.desktop(.+)$"
|
||||||
|
|
||||||
|
info "xdg-mime"
|
||||||
|
xdg-mime default phpstorm-url-handler.desktop x-scheme-handler/phpstorm
|
||||||
46
experimental/samp-server
Normal file
46
experimental/samp-server
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Installing samp-server v03svr_R2-1..."
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
|
||||||
|
# https://sampwiki.blast.hk/wiki/Linux_Server
|
||||||
|
# https://team.sa-mp.com/wiki/Server.cfg_RU.html
|
||||||
|
|
||||||
|
cd $HOME
|
||||||
|
wget -qO - https://files.sa-mp.com/samp03svr_R2-1.tar.gz | tar -zxf -
|
||||||
|
# sudo dpkg --add-architecture i386
|
||||||
|
# sudo apt update
|
||||||
|
# sudo apt install -y libc6:i386
|
||||||
|
apt-get install ia32-libs
|
||||||
|
|
||||||
|
echo "echo Executing Server Config...
|
||||||
|
lanmode 0
|
||||||
|
rcon 1
|
||||||
|
language Russian
|
||||||
|
rcon_password bootsector
|
||||||
|
maxplayers 50
|
||||||
|
port 7777
|
||||||
|
hostname My Server
|
||||||
|
gamemode0 bare 1
|
||||||
|
filterscripts base gl_actions gl_property gl_realtime
|
||||||
|
announce 1
|
||||||
|
query 1
|
||||||
|
weburl
|
||||||
|
maxnpc 0
|
||||||
|
onfoot_rate 40
|
||||||
|
incar_rate 40
|
||||||
|
weapon_rate 40
|
||||||
|
stream_distance 800.0
|
||||||
|
stream_rate 1000
|
||||||
|
timestamp 1
|
||||||
|
output 0
|
||||||
|
" > $HOME/samp03/server.cfg
|
||||||
|
|
||||||
|
ln -s $HOME/samp03/samp03svr /usr/local/bin/samp
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Success! Now run via 'samp &'"
|
||||||
|
echo
|
||||||
|
|
||||||
12
experimental/wkhtmltopdf
Executable file
12
experimental/wkhtmltopdf
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Installing wkhtmltopdf..."
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
|
||||||
|
# не тестировалось
|
||||||
|
|
||||||
|
wget "https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb" -O /tmp/wkhtmltopdf.deb
|
||||||
|
sudo dpkg -i /tmp/wkhtmltopdf.deb
|
||||||
|
rm /tmp/wkhtmltopdf.deb
|
||||||
92
gen-makefile
92
gen-makefile
@@ -1,92 +0,0 @@
|
|||||||
#!/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"
|
|
||||||
34
gen-makefile.sh
Executable file
34
gen-makefile.sh
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
mv Makefile Makefile.bak
|
||||||
|
echo -e "# Autogenerated at $(date +'%d.%m.%Y %H:%M') using ${BASH_SOURCE[0]}\n" > Makefile
|
||||||
|
|
||||||
|
for file in ./packs/*; do
|
||||||
|
cat ${file} >> Makefile
|
||||||
|
done;
|
||||||
|
|
||||||
|
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 "##${name}: ${desc}\n${name}:\n\t${file}\n" >> Makefile
|
||||||
|
done;
|
||||||
|
|
||||||
|
cat << EOF >> Makefile
|
||||||
|
##help: Show this help message
|
||||||
|
help: Makefile
|
||||||
|
@echo "Usage:"
|
||||||
|
@echo "\tmake <goal>\n"
|
||||||
|
@echo "Available goals:"
|
||||||
|
@sed -n 's/^##//p' $< | column -t -s ':' | sed -e "s/^/\t/"
|
||||||
|
|
||||||
|
##<goal>_: Same as 'cat ./install/<goal>.sh'
|
||||||
|
%_:
|
||||||
|
@cat ./install/\$*.sh
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
echo "New ./Makefile has been generated!"
|
||||||
|
echo "Old one has been saved as ./Makefile.bak"
|
||||||
|
echo
|
||||||
|
make help
|
||||||
@@ -7,6 +7,6 @@ echo "Installing apache2..."
|
|||||||
echo "==============================================="
|
echo "==============================================="
|
||||||
echo
|
echo
|
||||||
|
|
||||||
sudo apt install -y --autoremove apache2 && \
|
sudo apt install -y --autoremove apache2
|
||||||
sudo systemctl restart apache2 && \
|
sudo service apache2 restart
|
||||||
apache2 -v
|
apache2 -v
|
||||||
|
|||||||
66
install/apt
66
install/apt
@@ -7,50 +7,54 @@ echo "Installing software from apt..."
|
|||||||
echo "==============================================="
|
echo "==============================================="
|
||||||
echo
|
echo
|
||||||
|
|
||||||
sudo apt update && \
|
sudo apt update && sudo apt upgrade -y --autoremove
|
||||||
sudo apt upgrade -y --autoremove
|
sudo apt install -y --autoremove \
|
||||||
|
|
||||||
sudo apt install -y \
|
|
||||||
alien \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
build-essential \
|
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
cmake \
|
|
||||||
curl \
|
curl \
|
||||||
dconf-editor \
|
make \
|
||||||
default-jdk \
|
cmake \
|
||||||
dialog \
|
dialog \
|
||||||
gettext \
|
build-essential \
|
||||||
gnupg \
|
software-properties-common \
|
||||||
gparted \
|
|
||||||
hardinfo \
|
|
||||||
htop \
|
|
||||||
libaio1 \
|
libaio1 \
|
||||||
|
libssl-dev \
|
||||||
|
libghc-zlib-dev \
|
||||||
libcurl4-gnutls-dev \
|
libcurl4-gnutls-dev \
|
||||||
libexpat1-dev \
|
libexpat1-dev \
|
||||||
libghc-zlib-dev \
|
gettext \
|
||||||
libssl-dev \
|
gnupg \
|
||||||
lsb-release \
|
ubuntu-restricted-extras \
|
||||||
lsp-plugins \
|
unzip \
|
||||||
make \
|
|
||||||
mc \
|
mc \
|
||||||
meld \
|
htop \
|
||||||
nano \
|
nano \
|
||||||
neofetch \
|
neofetch \
|
||||||
|
default-jdk \
|
||||||
|
terminator \
|
||||||
|
dconf-editor \
|
||||||
|
alien \
|
||||||
|
meld \
|
||||||
|
vlc \
|
||||||
|
gparted \
|
||||||
|
hardinfo \
|
||||||
|
libreoffice \
|
||||||
|
pulseeffects \
|
||||||
|
lsp-plugins \
|
||||||
|
lsb-release \
|
||||||
net-tools \
|
net-tools \
|
||||||
nmap \
|
nmap \
|
||||||
p7zip-full \
|
p7zip-full \
|
||||||
pulseeffects \
|
sqlitebrowser
|
||||||
software-properties-common \
|
|
||||||
sqlitebrowser \
|
|
||||||
terminator \
|
|
||||||
ubuntu-restricted-extras \
|
|
||||||
unzip \
|
|
||||||
vlc
|
|
||||||
# earlyoom \
|
|
||||||
# etckeeper \
|
|
||||||
# geoclue-2.0 \
|
|
||||||
# gnome-software \
|
# gnome-software \
|
||||||
# minder \
|
# minder \
|
||||||
# redshift \
|
# redshift \
|
||||||
# redshift-gtk
|
# redshift-gtk \
|
||||||
|
# nodejs \
|
||||||
|
# compiz \
|
||||||
|
# compizconfig-settings-manager \
|
||||||
|
# earlyoom \
|
||||||
|
# etckeeper \
|
||||||
|
# deepin-screenshot \
|
||||||
|
# geoclue-2.0 \
|
||||||
|
# at
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Install Canon Pixma MG2500 + ppa
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Installing Canon Pixma MG2500 + ppa..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
sudo add-apt-repository ppa:thierry-f/fork-michael-gruz
|
|
||||||
sudo apt install cnijfilter-mg2500series scangearmp-mg2500series
|
|
||||||
@@ -9,6 +9,7 @@ echo
|
|||||||
|
|
||||||
# https://t.me/axenov_blog/251
|
# https://t.me/axenov_blog/251
|
||||||
|
|
||||||
wget "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -O /tmp/google-chrome-stable_current_amd64.deb && \
|
# sudo snap install chromium
|
||||||
sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb && \
|
wget "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -O /tmp/google-chrome-stable_current_amd64.deb
|
||||||
rm /tmp/google-chrome-stable_current_amd64.deb
|
sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb
|
||||||
|
rm /tmp/google-chrome-stable_current_amd64.deb
|
||||||
|
|||||||
56
install/composer
Executable file
56
install/composer
Executable file
@@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
##makedesc: Install composer (latest)
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "==============================================="
|
||||||
|
echo "Installing composer (latest)..."
|
||||||
|
echo "==============================================="
|
||||||
|
echo
|
||||||
|
|
||||||
|
installed() {
|
||||||
|
command -v "$1" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
if installed "php"; then
|
||||||
|
if installed "composer"; then
|
||||||
|
echo "WARNING: You already have composer installed - removing to install actual version"
|
||||||
|
sudo apt remove -y --autoremove composer
|
||||||
|
sudo rm -f /bin/composer
|
||||||
|
sudo rm -f /usr/bin/composer
|
||||||
|
sudo rm -f /usr/local/bin/composer
|
||||||
|
sudo rm -rf /usr/src/composer
|
||||||
|
fi
|
||||||
|
sudo mkdir -m 0777 -p /usr/src/composer
|
||||||
|
cd /usr/src/composer
|
||||||
|
# https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md
|
||||||
|
EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
|
||||||
|
sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||||
|
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
|
||||||
|
if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then
|
||||||
|
>&2 echo 'ERROR: Invalid installer checksum'
|
||||||
|
rm composer-setup.php
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
php composer-setup.php --quiet
|
||||||
|
sudo cp /usr/src/composer/composer.phar /usr/local/bin/composer
|
||||||
|
cd - >/dev/null
|
||||||
|
sudo rm -rf /usr/src/composer/
|
||||||
|
installed "composer" && composer --version
|
||||||
|
else
|
||||||
|
echo "WARNING: You need to have php installed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# title "Installing composer.phar in home dir..."
|
||||||
|
# cd ~
|
||||||
|
# EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)"
|
||||||
|
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||||
|
# ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
|
||||||
|
# if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]
|
||||||
|
# then
|
||||||
|
# >&2 echo 'ERROR: Invalid installer signature'
|
||||||
|
# rm composer-setup.php
|
||||||
|
# exit 1
|
||||||
|
# fi
|
||||||
|
# php composer-setup.php --quiet
|
||||||
|
# RESULT=$?
|
||||||
|
# rm composer-setup.php
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Install composer (latest)
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Installing composer (latest)..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
# https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md
|
|
||||||
|
|
||||||
installed() {
|
|
||||||
command -v "$1" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
!installed "php" && echo "WARNING: You need to have php installed"
|
|
||||||
|
|
||||||
if installed "composer"; then
|
|
||||||
echo "WARNING: Removing current composer to install its actual version"
|
|
||||||
sudo apt remove -y --autoremove composer
|
|
||||||
sudo rm /bin/composer
|
|
||||||
sudo rm /usr/bin/composer
|
|
||||||
sudo rm /usr/local/bin/composer
|
|
||||||
sudo rm /usr/src/composer
|
|
||||||
rm $HOME/.local/bin/composer
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p $HOME/install && cd $HOME/install
|
|
||||||
# mkdir -p $HOME/.local/bin
|
|
||||||
|
|
||||||
EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
|
|
||||||
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
|
||||||
wget https://getcomposer.org/installer -O composer-setup.php
|
|
||||||
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
|
|
||||||
if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then
|
|
||||||
>&2 echo 'ERROR: Invalid installer checksum'
|
|
||||||
rm composer-setup.php
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
php composer-setup.php --quiet
|
|
||||||
cp $HOME/install/composer.phar $HOME/.local/bin/composer
|
|
||||||
cd - >/dev/null
|
|
||||||
installed "composer" && composer --version
|
|
||||||
@@ -9,19 +9,18 @@ echo
|
|||||||
|
|
||||||
# https://docs.docker.com/engine/install/ubuntu/
|
# https://docs.docker.com/engine/install/ubuntu/
|
||||||
|
|
||||||
|
sudo apt remove -y docker docker-engine docker.io containerd runc
|
||||||
sudo apt-get install \
|
sudo apt-get install \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
gnupg \
|
gnupg \
|
||||||
lsb-release
|
lsb-release
|
||||||
|
|
||||||
sudo mkdir -p /etc/apt/keyrings
|
sudo mkdir -p /etc/apt/keyrings
|
||||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||||
echo \
|
echo \
|
||||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
|
||||||
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||||
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
||||||
|
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y --autoremove \
|
sudo apt install -y --autoremove \
|
||||||
docker-ce \
|
docker-ce \
|
||||||
@@ -30,9 +29,6 @@ sudo apt install -y --autoremove \
|
|||||||
docker-compose-plugin \
|
docker-compose-plugin \
|
||||||
docker-compose
|
docker-compose
|
||||||
sudo usermod -aG docker anthony
|
sudo usermod -aG docker anthony
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Finish!"
|
echo "You need to logout and log in again to apply docker group"
|
||||||
echo "Probably, you need to relogin to apply 'docker' group."
|
|
||||||
echo "Your ones currently are: $(groups)"
|
|
||||||
echo
|
echo
|
||||||
|
|||||||
@@ -1,84 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Install file templates (KDE)
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Installing file templates (KDE)..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
TPL_DIR="$HOME/.local/share/templates"
|
|
||||||
TPL_SRC="$TPL_DIR/.source"
|
|
||||||
[ ! -d "$TPL_SRC" ] && mkdir -p "$TPL_SRC"
|
|
||||||
|
|
||||||
echo "- Markdown" ####################################################
|
|
||||||
cat <<EOF > "$TPL_SRC/template.md"
|
|
||||||
# Title
|
|
||||||
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat << EOF > "$TPL_DIR/md.desktop"
|
|
||||||
[Desktop Entry]
|
|
||||||
Name=Документ Markdown
|
|
||||||
Icon=text-markdown
|
|
||||||
Type=Link
|
|
||||||
URL=.source/template.md
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "- PHP" ####################################################
|
|
||||||
cat <<EOF > "$TPL_SRC/template.php"
|
|
||||||
<?php
|
|
||||||
declare(strict_types=1);
|
|
||||||
ini_set('error_reporting', E_ALL);
|
|
||||||
ini_set('display_errors', 1);
|
|
||||||
ini_set('display_startup_errors', 1);
|
|
||||||
ini_set('log_errors', 1);
|
|
||||||
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat << EOF > "$TPL_DIR/php.desktop"
|
|
||||||
[Desktop Entry]
|
|
||||||
Name=PHP-скрипт
|
|
||||||
Icon=application-x-php
|
|
||||||
Type=Link
|
|
||||||
URL=.source/template.php
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "- Shell" ####################################################
|
|
||||||
cat <<EOF > "$TPL_SRC/template.sh"
|
|
||||||
#!/bin/bash
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat << EOF > "$TPL_DIR/sh.desktop"
|
|
||||||
[Desktop Entry]
|
|
||||||
Name=Bash-скрипт
|
|
||||||
Icon=terminal
|
|
||||||
Type=Link
|
|
||||||
URL=.source/template.sh
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "- Go" ####################################################
|
|
||||||
cat <<EOF > "$TPL_SRC/template.go"
|
|
||||||
package main
|
|
||||||
|
|
||||||
import "fmt"
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
fmt.Println("hello world")
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat << EOF > "$TPL_DIR/go.desktop"
|
|
||||||
[Desktop Entry]
|
|
||||||
Name=Golang файл
|
|
||||||
Type=Link
|
|
||||||
URL=.source/template.go
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "Finish! You can find them here:"
|
|
||||||
echo -e "\t$TPL_DIR"
|
|
||||||
echo
|
|
||||||
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: [TODO] Build flameshot from src (latest)
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Installing flameshot (latest)..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
32
install/git
32
install/git
@@ -10,31 +10,29 @@ echo
|
|||||||
installed() {
|
installed() {
|
||||||
command -v "$1" >/dev/null 2>&1
|
command -v "$1" >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
ENVDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
|
||||||
! installed make && sudo apt install -y make
|
! installed make && sudo apt install -y make
|
||||||
|
|
||||||
if installed git; then
|
if installed git; then
|
||||||
if [ -d "${HOME}/install/git" ]; then
|
sudo rm -rf /usr/src/git
|
||||||
cd /usr/src/git/ && \
|
sudo git clone https://github.com/git/git.git --depth=1 /usr/src/git
|
||||||
git pull
|
sudo chown -R $USER: /usr/src/git
|
||||||
else
|
|
||||||
git clone https://github.com/git/git.git --depth=1 "${HOME}/install/git" && \
|
|
||||||
cd /usr/src/git/
|
cd /usr/src/git/
|
||||||
fi
|
sudo make prefix=/usr/local all
|
||||||
sudo make prefix=/usr/local all && \
|
|
||||||
sudo make prefix=/usr/local install
|
sudo make prefix=/usr/local install
|
||||||
else
|
else
|
||||||
! installed wget && sudo apt install -y wget
|
! 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
|
||||||
wget https://github.com/git/git/archive/master.zip -O /tmp/git.zip && \
|
sudo unzip -q /tmp/git.zip -d /usr/src/git
|
||||||
unzip -q /tmp/git.zip -d "${HOME}/install/git" && \
|
rm /tmp/git.zip
|
||||||
rm /tmp/git.zip && \
|
cd /usr/src/git/git-master
|
||||||
cd "${HOME}/install/git/git-master" && \
|
sudo make prefix=/usr/local all
|
||||||
sudo make prefix=/usr/local all && \
|
sudo make prefix=/usr/local install
|
||||||
sudo make prefix=/usr/local install && \
|
cd /usr/src
|
||||||
cd - && \
|
sudo rm -rf git
|
||||||
rm -rf git && \
|
sudo git clone https://github.com/git/git.git --depth=1 /usr/src/git
|
||||||
git clone https://github.com/git/git.git --depth=1 "${HOME}/install/git"
|
sudo chown -R $USER: /usr/src/git
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git --version
|
git --version
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Install libreoffice
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Installing libreoffice..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
sudo apt update && \
|
|
||||||
sudo apt install -y --autoremove libreoffice
|
|
||||||
25
install/ntfy
25
install/ntfy
@@ -1,25 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Install ntfy (latest) + ppa
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Installing ntfy (latest) + ppa..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
# https://ntfy.sh/docs/install/#general-steps
|
|
||||||
|
|
||||||
installed() {
|
|
||||||
command -v "$1" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
! installed curl && sudo apt install -y curl
|
|
||||||
|
|
||||||
curl -sSL https://archive.heckel.io/apt/pubkey.txt | sudo apt-key add - && \
|
|
||||||
sudo apt install apt-transport-https && \
|
|
||||||
sudo sh -c "echo 'deb [arch=amd64] https://archive.heckel.io/apt debian main' \
|
|
||||||
> /etc/apt/sources.list.d/archive.heckel.io.list" && \
|
|
||||||
sudo apt update && \
|
|
||||||
sudo apt install ntfy -y && \
|
|
||||||
sudo systemctl enable ntfy && \
|
|
||||||
sudo systemctl start ntfy
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Install omz (latest)
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Installing omz (latest)..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
installed() {
|
|
||||||
command -v "$1" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! installed zsh || ! installed git || ! installed curl; then
|
|
||||||
echo "ERROR: you need git, zsh and curl to be installed!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Install omz fancy (powerline10k + MesloLGS font)
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Installing omz fancy: powerline10k + MesloLGS font..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
installed() {
|
|
||||||
command -v "$1" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! installed zsh || ! installed git || ! installed wget; then
|
|
||||||
echo "ERROR: you need git, zsh and wget to be installed!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -d "$HOME/.oh-my-zsh" ]]; then
|
|
||||||
echo "ERROR: you need omz to be installed!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "1/3 Installing MesloLGS fonts..."
|
|
||||||
mkdir -p "$HOME/.local/share/fonts/"
|
|
||||||
FONTS_URL="https://github.com/romkatv/powerlevel10k-media/raw/master"
|
|
||||||
wget "$FONTS_URL/MesloLGS%20NF%20Regular.ttf" -O "$HOME/.local/share/fonts/MesloLGS NF Regular.ttf"
|
|
||||||
wget "$FONTS_URL/MesloLGS%20NF%20Bold.ttf" -O "$HOME/.local/share/fonts/MesloLGS NF Bold.ttf"
|
|
||||||
wget "$FONTS_URL/MesloLGS%20NF%20Italic.ttf" -O "$HOME/.local/share/fonts/MesloLGS NF Italic.ttf"
|
|
||||||
wget "$FONTS_URL/MesloLGS%20NF%20Bold%20Italic.ttf" -O "$HOME/.local/share/fonts/MesloLGS NF Bold Italic.ttf"
|
|
||||||
fc-cache -vf "$HOME/.local/share/fonts/"
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "2/3 Installing powerlevel10k theme..."
|
|
||||||
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
|
|
||||||
sed -i 's#^ZSH_THEME=.*$#ZSH_THEME="powerlevel10k/powerlevel10k"#g' "$HOME/.zshrc"
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "3/3 Installing plugins..."
|
|
||||||
git clone https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
|
|
||||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
|
|
||||||
sed -i 's/^plugins=/plugins=(git laravel docker docker-compose composer zsh-autosuggestions zsh-syntax-highlighting)/g' $HOME/.zshrc
|
|
||||||
p10k configure
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "Finish! You need to:"
|
|
||||||
echo "- review your plugins in $HOME/.zshrc"
|
|
||||||
echo "- restart terminal windows to reload fonts and set 'MesloLGS NF Regular' as default font"
|
|
||||||
echo "- log out of your session and login again"
|
|
||||||
echo
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Install papirus-icon-theme (latest)
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Installing papirus-icon-theme (latest)..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
installed() {
|
|
||||||
command -v "$1" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
if installed git; then
|
|
||||||
mkdir ${HOME}/install/
|
|
||||||
git clone https://github.com/PapirusDevelopmentTeam/papirus-icon-theme.git --depth=1 ${HOME}/install/papirus-icon-theme
|
|
||||||
else
|
|
||||||
! installed wget && sudo apt install -y wget
|
|
||||||
mkdir ${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
|
|
||||||
fi
|
|
||||||
|
|
||||||
ln -s ${HOME}/install/papirus-icon-theme/Papirus ${HOME}/.local/share/icons/Papirus
|
|
||||||
ln -s ${HOME}/install/papirus-icon-theme/Papirus-Dark ${HOME}/.local/share/icons/Papirus-Dark
|
|
||||||
ln -s ${HOME}/install/papirus-icon-theme/Papirus-Light ${HOME}/.local/share/icons/Papirus-Light
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "Finish! Don't forget to change current icon theme."
|
|
||||||
echo "You can find them here:"
|
|
||||||
echo -e "\t${HOME}/.local/share/icons/"
|
|
||||||
echo
|
|
||||||
18
install/php
18
install/php
@@ -14,21 +14,21 @@ sudo apt install -y --autoremove \
|
|||||||
php${PHPVER}-cli \
|
php${PHPVER}-cli \
|
||||||
php${PHPVER}-common \
|
php${PHPVER}-common \
|
||||||
php${PHPVER}-xdebug \
|
php${PHPVER}-xdebug \
|
||||||
php${PHPVER}-dom \
|
# php${PHPVER}-bcmath \
|
||||||
php${PHPVER}-curl \
|
# php${PHPVER}-bz2 \
|
||||||
php${PHPVER}-bcmath \
|
# php${PHPVER}-curl \
|
||||||
php${PHPVER}-gd \
|
# php${PHPVER}-gd \
|
||||||
php${PHPVER}-intl \
|
# php${PHPVER}-json \
|
||||||
php${PHPVER}-mbstring \
|
# php${PHPVER}-mbstring \
|
||||||
# php${PHPVER}-mysql \
|
# php${PHPVER}-mysql \
|
||||||
# php${PHPVER}-opcache \
|
# php${PHPVER}-opcache \
|
||||||
# php${PHPVER}-pgsql \
|
# php${PHPVER}-pgsql \
|
||||||
php${PHPVER}-soap \
|
# php${PHPVER}-soap \
|
||||||
# php${PHPVER}-xml \
|
# php${PHPVER}-xml \
|
||||||
# php${PHPVER}-xmlrpc \
|
# php${PHPVER}-xmlrpc \
|
||||||
# php${PHPVER}-xsl \
|
# php${PHPVER}-xsl \
|
||||||
# php${PHPVER}-sqlite3 \
|
# php${PHPVER}-sqlite3 \
|
||||||
# php${PHPVER}-zip \
|
# php${PHPVER}-zip
|
||||||
# php${PHPVER}-dba \
|
# php${PHPVER}-dba
|
||||||
# php${PHPVER}-ldap
|
# php${PHPVER}-ldap
|
||||||
php -v
|
php -v
|
||||||
|
|||||||
@@ -7,21 +7,21 @@ echo "Installing postman (latest)..."
|
|||||||
echo "==============================================="
|
echo "==============================================="
|
||||||
echo
|
echo
|
||||||
|
|
||||||
mkdir -p ${HOME}/install/postman
|
wget "https://dl.pstmn.io/download/latest/linux64" -O /tmp/postman.tar.gz
|
||||||
mkdir -p ${HOME}/.local/bin
|
# sudo tar -xvzf /tmp/postman.tar.gz -C /usr/local/bin
|
||||||
wget "https://dl.pstmn.io/download/latest/linux64" -O ${HOME}/install/postman.tar.gz && \
|
sudo tar -xzf /tmp/postman.tar.gz -C /usr/local
|
||||||
tar -xzf ${HOME}/install/postman.tar.gz -C ${HOME}/install/postman && \
|
rm /tmp/postman.tar.gz
|
||||||
ln -s ${HOME}/install/postman/Postman/Postman ${HOME}/.local/bin/postman && \
|
sudo ln -s /usr/local/Postman/Postman /usr/local/bin/postman
|
||||||
cat << EOF > ${HOME}/.local/share/applications/Postman.desktop
|
|
||||||
#!/usr/bin/env xdg-open
|
echo "#!/usr/bin/env xdg-open
|
||||||
|
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Name=Postman
|
Name=Postman
|
||||||
Exec=${HOME}/.local/bin/postman
|
Exec=/usr/local/bin/postman
|
||||||
Icon=${HOME}/install/postman/Postman/app/icons/icon_128x128.png
|
Icon=/usr/local/Postman/app/icons/icon_128x128.png
|
||||||
Categories=Utility,Network
|
Categories=Utility,Network
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
Encoding=UTF-8
|
Encoding=UTF-8
|
||||||
EOF
|
" > $HOME/.local/share/applications/Postman.desktop
|
||||||
sudo update-desktop-database
|
sudo update-desktop-database
|
||||||
|
|||||||
25
install/qt5
25
install/qt5
@@ -1,25 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Install qt5
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Installing qt5..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
sudo apt install -y --autoremove \
|
|
||||||
build-essential \
|
|
||||||
ca-certificates \
|
|
||||||
cmake \
|
|
||||||
g++ \
|
|
||||||
libqt5core5a \
|
|
||||||
libqt5dbus5 \
|
|
||||||
libqt5gui5 \
|
|
||||||
libqt5network5 \
|
|
||||||
libqt5svg5 \
|
|
||||||
libqt5svg5-dev \
|
|
||||||
libqt5widgets5 \
|
|
||||||
openssl \
|
|
||||||
qtbase5-dev \
|
|
||||||
qttools5-dev \
|
|
||||||
qttools5-dev-tools
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
##makedesc: Install rustdesk client v1.1.9 (deb)
|
##makedesc: Install rustdesk v1.1.8 (deb)
|
||||||
|
|
||||||
[ $1 ] && RDVER="$1" || RDVER="1.1.9"
|
[ $1 ] && RDVER="$1" || RDVER="1.1.8"
|
||||||
echo
|
echo
|
||||||
echo "==============================================="
|
echo "==============================================="
|
||||||
echo "Installing rustdesk v${RDVER}..."
|
echo "Installing rustdesk v${RDVER}..."
|
||||||
@@ -10,6 +10,7 @@ echo
|
|||||||
|
|
||||||
# https://github.com/rustdesk/rustdesk
|
# https://github.com/rustdesk/rustdesk
|
||||||
|
|
||||||
sudo apt install libxdo3 && \
|
sudo apt install libxdo3
|
||||||
wget "http://github.com/rustdesk/rustdesk/releases/download/${RDVER}/rustdesk-${RDVER}.deb" -O ${HOME}/install/rustdesk_${RDVER}.deb && \
|
wget "http://github.com/rustdesk/rustdesk/releases/download/${RDVER}/rustdesk-${RDVER}.deb" -qO /tmp/rustdesk.deb
|
||||||
sudo dpkg -i ${HOME}/install/rustdesk_${RDVER}.deb
|
sudo dpkg -i /tmp/rustdesk.deb
|
||||||
|
rm /tmp/rustdesk.deb
|
||||||
|
|||||||
51
install/zsh
51
install/zsh
@@ -1,11 +1,56 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
##makedesc: Install vanilla zsh
|
##makedesc: Install zsh + omz (latest)
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "==============================================="
|
echo "==============================================="
|
||||||
echo "Installing vanilla zsh..."
|
echo "Installing zsh + omz (latest)..."
|
||||||
echo "==============================================="
|
echo "==============================================="
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
installed() {
|
||||||
|
command -v "$1" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
if ! installed git || ! installed curl; then
|
||||||
|
echo "ERROR: you need git and curl to be installed!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
sudo apt install -y --autoremove zsh
|
sudo apt install -y --autoremove zsh
|
||||||
echo "source ~/.profile" >> ~/.zshrc
|
# sudo chsh -s $(which zsh)
|
||||||
|
|
||||||
|
# Based on:
|
||||||
|
# https://github.com/Powerlevel9k/powerlevel9k/wiki/Install-Instructions
|
||||||
|
# https://github.com/ohmyzsh/ohmyzsh
|
||||||
|
# https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation
|
||||||
|
# https://gist.github.com/dogrocker/1efb8fd9427779c827058f873b94df95
|
||||||
|
# https://linuxhint.com/install_zsh_shell_ubuntu_1804/
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "1. Installing oh-my-zsh..."
|
||||||
|
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "2. Installing powerlevel9k theme (legacy)..."
|
||||||
|
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
|
||||||
|
sed -i 's@^ZSH_THEME=.*$@ZSH_THEME="powerlevel9k/powerlevel9k"@g' ~/.zshrc
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "3. Installing powerline fonts..."
|
||||||
|
wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf
|
||||||
|
wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf
|
||||||
|
mkdir -p ~/.local/share/fonts/
|
||||||
|
mv PowerlineSymbols.otf ~/.local/share/fonts/
|
||||||
|
fc-cache -vf ~/.local/share/fonts/
|
||||||
|
mkdir -p ~/.config/fontconfig/conf.d/
|
||||||
|
mv 10-powerline-symbols.conf ~/.config/fontconfig/conf.d/
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "4. Installing autosuggestions and syntax highlighting..."
|
||||||
|
git clone https://github.com/zsh-users/zsh-autosuggestions.git .oh-my-zsh/custom/plugins/zsh-autosuggestions
|
||||||
|
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git .oh-my-zsh/custom/plugins/zsh-syntax-highlighting
|
||||||
|
sed -i 's@plugins=(git)@plugins=(git zsh-autosuggestions zsh-syntax-highlighting)@g' ~/.zshrc
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Finish! Log out of your session and login again."
|
||||||
|
echo
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
# [PACK] php + composer
|
|
||||||
composer: php composer-clean
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# [TODO] [PACK] qt5 + flameshot from source
|
|
||||||
flameshot: qt5 flameshot-build
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# [PACK] Apache + php + mariadb
|
|
||||||
lamp: apache php mariadb
|
|
||||||
2
packs/lamp.makefile
Normal file
2
packs/lamp.makefile
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
##lamp: Apache + php + mariadb
|
||||||
|
lamp: apache php mariadb
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
# [PACK] zsh + omz + powerline10k + MesloLGS font
|
|
||||||
omz: zsh omz-clean omz-fancy
|
|
||||||
chsh -s /usr/bin/zsh
|
|
||||||
@exec zsh
|
|
||||||
120
scripts/db_backup.sh
Executable file
120
scripts/db_backup.sh
Executable file
@@ -0,0 +1,120 @@
|
|||||||
|
##############################################################
|
||||||
|
# Скрипт для автоматического резервного копирования
|
||||||
|
# базы данных.
|
||||||
|
#
|
||||||
|
# Автор: Антон Аксенов
|
||||||
|
# URL: anthonyaxenov.ru
|
||||||
|
# Email: anthonyaxenov@gmail.com
|
||||||
|
#
|
||||||
|
# Подробности о скрипте, подготовка к работе:
|
||||||
|
# https://anthonyaxenov.blogspot.ru/2017/05/cron-1.html
|
||||||
|
#
|
||||||
|
##############################################################
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Данные для работы с БД
|
||||||
|
DBHOST=
|
||||||
|
DBUSER=
|
||||||
|
DBPASS=
|
||||||
|
DBNAME=
|
||||||
|
DBCHARSET="utf8"
|
||||||
|
|
||||||
|
# Даты
|
||||||
|
FMT_DT_DIR="%d-%m-%Y" # формат даты для директорий | 19-03-2021
|
||||||
|
FMT_DT_FILE="%H%M%S-%d%m%y" # формат даты для файлов | 082456-190321
|
||||||
|
FMT_DT_LOG="%H:%M:%S" # формат даты для лога | 08:24:15.168149413
|
||||||
|
|
||||||
|
# Локальное хранилище
|
||||||
|
LOCALDIR=/backup # полный путь директории для бэкапов
|
||||||
|
LOCALPATH=$LOCALDIR/$(date +$FMT_DT_DIR) # полный путь директории за сегодня
|
||||||
|
LOCALFILE=$LOCALPATH/$DBNAME-$(date +$FMT_DT_FILE).sql # полный путь к файлу дампа
|
||||||
|
|
||||||
|
# Облачное хранилище
|
||||||
|
CLOUDUSE=1 # Копировать ли в облако? Закомментировать строку, если не надо
|
||||||
|
CLOUDMNT=/mnt/yadisk # Точка монтирования облака относительно корня
|
||||||
|
CLOUDDIR=db_backup # Папка в облаке, куда будут лететь файлы (внутри папки CLOUDMNT, т.е. без / в начале)
|
||||||
|
CLOUDPATH=$CLOUDMNT/$CLOUDDIR/$DATE # полный путь к папке текущей даты в облаке относительно корня
|
||||||
|
CLOUDFILE=$CLOUDPATH/$DBNAME-$DATETIME.sql # полный путь к файлу дампа в облаке
|
||||||
|
CLOUDFILEGZ=$CLOUDFILE.gz # полный путь к архиву в облаке
|
||||||
|
|
||||||
|
# Путь к бекапу на примонтированном хранилище будет выглядеть так:
|
||||||
|
# /mnt/yadisk/db_backup/2017-01-01/mybigdatabase-2017-01-01-12-23-34.sql.gz
|
||||||
|
|
||||||
|
log() {
|
||||||
|
echo "[$(date +$FMT_DT_LOG)] $*"
|
||||||
|
}
|
||||||
|
|
||||||
|
is_dir() {
|
||||||
|
[ -d "$1" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
# Начало процесса
|
||||||
|
echo "[--------------------------------[$(date +$FMT_DT_LOG)]--------------------------------]"
|
||||||
|
log $LOCALPATH
|
||||||
|
if ! is_dir $LOCALPATH; then # Если нет папки за сегодня
|
||||||
|
sudo mkdir -p $LOCALPATH # создаём её, ошибки игнорируем
|
||||||
|
[ $? -eq 0 ] && log "New directory: $LOCALPATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
log "Generate a database dump: '$DBNAME'..."
|
||||||
|
mysqldump \
|
||||||
|
-q \
|
||||||
|
--user=$DBUSER \
|
||||||
|
--host=$DBHOST \
|
||||||
|
--password=$DBPASS \
|
||||||
|
--opt \
|
||||||
|
--default-character-set=$DBCHARSET $DBNAME \
|
||||||
|
> $LOCALFILE
|
||||||
|
exit
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [[ $? -gt 0 ]]; then
|
||||||
|
# если дамп сделать не удалось (код завершения предыдущей команды больше нуля) - прерываем весь скрипт
|
||||||
|
log "Dumping failed! Script aborted."
|
||||||
|
exit 1
|
||||||
|
else # иначе - упаковываем его
|
||||||
|
log "Dumping successfull! Packing in GZIP..."
|
||||||
|
gzip $LOCALFILE # Упаковка
|
||||||
|
if [[ $? -ne 0 ]]; then # Если не удалась
|
||||||
|
log "GZipping failed! SQL-file will be uploaded."
|
||||||
|
GZIP_FAILED=1 # Создаём флажок, что упаковка сорвалась
|
||||||
|
else
|
||||||
|
log "Result file: $LOCALFILEGZ"
|
||||||
|
fi
|
||||||
|
if [[ $CLOUDUSE -eq 1 ]]; then # Если задано копирование в облако - делаем всякое такое
|
||||||
|
mount | grep "$CLOUDMNT" > /dev/null # Проверяем примонтировано ли уже у нас облако (вывод не важен)
|
||||||
|
if [[ $? -ne 0 ]]; then # Если нет
|
||||||
|
mount $CLOUDMNT # значит монтируем
|
||||||
|
fi
|
||||||
|
if [[ $? -eq 0 ]]; then # если монтирование успешно - копируем туда файл
|
||||||
|
log "Cloud: successfully mounted at $CLOUDMNT"
|
||||||
|
log "Cloud: copying started => $CLOUDFILEGZ"
|
||||||
|
if ! [[ -d $CLOUDPATH ]]; then # Если в облаке нет папки за сегодня
|
||||||
|
mkdir $CLOUDPATH 2> /dev/null # создаём её, ошибки игнорируем
|
||||||
|
fi
|
||||||
|
if [[ -f $LOCALFILEGZ && GZIP_FAILED -ne 1 ]]; then # Если у нас архивирование выше не сорвалось
|
||||||
|
cp -R $LOCALFILEGZ $CLOUDFILEGZ # Копируем архив
|
||||||
|
else
|
||||||
|
cp -R $LOCALFILE $CLOUDFILE # Иначе - копируем большой тяжёлый дамп
|
||||||
|
fi
|
||||||
|
if [[ $? -gt 0 ]]; then # Если не скопировался - просто сообщаем
|
||||||
|
log "Cloud: copy failed."
|
||||||
|
else # Если скопировался - сообщаем и размонтируем
|
||||||
|
log "Cloud: file successfully uploaded!"
|
||||||
|
umount $CLOUDMNT # Размонтирование облака
|
||||||
|
if [[ $? -gt 0 ]]; then # Сообщаем результат размонтирования (если необходимо)
|
||||||
|
log "Cloud: umount - failed!"
|
||||||
|
fi # Конец проверки успешного РАЗмонтирования
|
||||||
|
fi # Конец проверки успешного копирования
|
||||||
|
else # если монтирование НЕуспешно - сообщаем
|
||||||
|
log "Cloud: failed to mount cloud at $CLOUDMNT"
|
||||||
|
fi # Конец проверки успешного монтирования
|
||||||
|
fi # Конец проверки необходимости выгрузки в облако
|
||||||
|
fi # Конец проверки успешного выполнения mysqldump
|
||||||
|
log "Stat datadir space (USED): `du -h $LOCALPATH | tail -n1`" # вывод размера папки с бэкапами за текущий день
|
||||||
|
log "Free HDD space: `df -h /home|tail -n1|awk '{print $4}'`" # вывод свободного места на локальном диске
|
||||||
|
log "All operations completed!"
|
||||||
|
exit 0 # Успешное завершение скрипта
|
||||||
@@ -1,4 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# https://gist.github.com/anthonyaxenov/c16e1181d4b8a8644c57ec8a1f6cf21c
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
# #
|
# #
|
||||||
# Set display resolution #
|
# Set display resolution #
|
||||||
@@ -15,8 +18,6 @@
|
|||||||
# #
|
# #
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
# https://gist.github.com/anthonyaxenov/c16e1181d4b8a8644c57ec8a1f6cf21c
|
|
||||||
|
|
||||||
# Set display name to work with. You can get it via 'xrandr --listactivemonitors'
|
# Set display name to work with. You can get it via 'xrandr --listactivemonitors'
|
||||||
display="HDMI-2"
|
display="HDMI-2"
|
||||||
# Set width of this display in px
|
# Set width of this display in px
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#####################################################################
|
|
||||||
# #
|
|
||||||
# Stupidly simple backup script for own projects #
|
|
||||||
# #
|
|
||||||
# Author: Anthony Axenov (Антон Аксенов) #
|
|
||||||
# Version: 1.0 #
|
|
||||||
# License: WTFPLv2 More info (RU): https://axenov.dev/?p=1234 #
|
|
||||||
# #
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
# https://gist.github.com/anthonyaxenov/b8336a2bc9e6a742b5a050fa2588d71e
|
|
||||||
|
|
||||||
# database credentials ==============================================
|
|
||||||
|
|
||||||
DBUSER=
|
|
||||||
DBPASS=
|
|
||||||
DBNAME=
|
|
||||||
DBCHARSET="utf8"
|
|
||||||
|
|
||||||
# date formats ======================================================
|
|
||||||
|
|
||||||
FMT_DT_DIR="%Y.%m.%d" # 2021.03.19
|
|
||||||
FMT_DT_FILE="%H.%M" # 08.24
|
|
||||||
FMT_DT_LOG="%H:%M:%S" # 08:24:15.168149413
|
|
||||||
|
|
||||||
# local storage =====================================================
|
|
||||||
|
|
||||||
LOCAL_BAK_DIR="/backup/$(date +$FMT_DT_DIR)"
|
|
||||||
|
|
||||||
# database backup file
|
|
||||||
LOCAL_SQL_FILE="$(date +$FMT_DT_FILE)-db.sql.gz"
|
|
||||||
LOCAL_SQL_PATH="$LOCAL_BAK_DIR/$LOCAL_SQL_FILE"
|
|
||||||
|
|
||||||
# project path and backup file
|
|
||||||
LOCAL_SRC_DIR="/var/www/"
|
|
||||||
LOCAL_SRC_FILE="$(date +$FMT_DT_FILE)-src.tar.gz"
|
|
||||||
LOCAL_SRC_PATH="$LOCAL_BAK_DIR/$LOCAL_SRC_FILE"
|
|
||||||
|
|
||||||
# log file
|
|
||||||
LOG_FILE="$(date +$FMT_DT_FILE).log"
|
|
||||||
LOG_PATH="$LOCAL_BAK_DIR/$LOG_FILE"
|
|
||||||
|
|
||||||
log() {
|
|
||||||
echo -e "[$(date +$FMT_DT_LOG)] $*" | tee -a "$LOG_PATH"
|
|
||||||
}
|
|
||||||
|
|
||||||
# remote storage ====================================================
|
|
||||||
|
|
||||||
REMOTE_HOST="user@example.com"
|
|
||||||
REMOTE_BAK_DIR="/backup/$(date +$FMT_DT_DIR)"
|
|
||||||
REMOTE_SQL_PATH="$REMOTE_BAK_DIR/$LOCAL_SQL_FILE"
|
|
||||||
REMOTE_SRC_PATH="$REMOTE_BAK_DIR/$LOCAL_SRC_FILE"
|
|
||||||
REMOTE_LOG_PATH="$REMOTE_BAK_DIR/$LOG_FILE"
|
|
||||||
|
|
||||||
# start =============================================================
|
|
||||||
|
|
||||||
echo
|
|
||||||
log "Start ----------------------------------------------------------------"
|
|
||||||
log "Initialized parameters:"
|
|
||||||
log "\tDB_USER\t\t= $DB_USER"
|
|
||||||
log "\tDB_NAME\t\t= $DB_NAME"
|
|
||||||
log "\tDB_CHARSET\t= $DB_CHARSET"
|
|
||||||
log "\tLOCAL_SRC_DIR\t= $LOCAL_SRC_DIR"
|
|
||||||
log "\tLOCAL_SRC_PATH\t= $LOCAL_SRC_PATH"
|
|
||||||
log "\tLOCAL_SQL_PATH\t= $LOCAL_SQL_PATH"
|
|
||||||
log "\tLOG_PATH\t= $LOG_PATH"
|
|
||||||
log "\tREMOTE_HOST\t= $REMOTE_HOST"
|
|
||||||
log "\tREMOTE_SQL_PATH\t= $REMOTE_SQL_PATH"
|
|
||||||
log "\tREMOTE_SRC_PATH\t= $REMOTE_SRC_PATH"
|
|
||||||
log "\tREMOTE_LOG_PATH\t= $REMOTE_LOG_PATH"
|
|
||||||
|
|
||||||
mkdir -p $LOCAL_BAK_DIR
|
|
||||||
log "Created local dir: $LOCAL_BAK_DIR"
|
|
||||||
|
|
||||||
ssh $REMOTE_HOST mkdir -p $REMOTE_BAK_DIR
|
|
||||||
log "Created remote dir: $REMOTE_BAK_DIR"
|
|
||||||
|
|
||||||
log "1/4 Dumping DB: $DBNAME..."
|
|
||||||
mysqldump \
|
|
||||||
--user="$DBUSER" \
|
|
||||||
--password="$DBPASS" \
|
|
||||||
--default-character-set="$DBCHARSET" \
|
|
||||||
--opt \
|
|
||||||
--quick \
|
|
||||||
"$DBNAME" | gzip > "$LOCAL_SQL_PATH"
|
|
||||||
# --opt Same as --add-drop-table, --add-locks, --create-options,
|
|
||||||
# --quick, --extended-insert, --lock-tables, --set-charset,
|
|
||||||
# and --disable-keys
|
|
||||||
[ $? -gt 0 ] && log "ERROR: failed to create dump. Exit-code: $?" || log "\t- OK"
|
|
||||||
|
|
||||||
log "2/4 Sending database backup to $REMOTE_HOST..."
|
|
||||||
rsync --progress "$LOCAL_SQL_PATH" "$REMOTE_HOST:$REMOTE_SQL_PATH"
|
|
||||||
[ $? -gt 0 ] && log "ERROR: failed to send database backup. Exit-code: $?" || log "\t- OK"
|
|
||||||
|
|
||||||
log "3/4 Compressing project dir: $LOCAL_SRC_DIR..."
|
|
||||||
tar -zcf "$LOCAL_SRC_PATH" "$LOCAL_SRC_DIR"
|
|
||||||
[ $? -gt 0 ] && log "ERROR: failed to compress project. Exit-code: $?" || log "\t- OK"
|
|
||||||
|
|
||||||
log "4/4 Sending project backup to ${REMOTE_HOST}..."
|
|
||||||
rsync --progress "$LOCAL_SRC_PATH" "$REMOTE_HOST:$REMOTE_SRC_PATH"
|
|
||||||
[ $? -gt 0 ] && log "ERROR: failed to send project backup. Exit-code: $?" || log "\t- OK"
|
|
||||||
|
|
||||||
rsync --progress "$LOG_PATH" "$REMOTE_HOST:$REMOTE_LOG_PATH"
|
|
||||||
|
|
||||||
log "Finish!"
|
|
||||||
log "Used space: $(du -h "$LOCAL_BAK_DIR" | tail -n1)"
|
|
||||||
log "Free space: $(df -h | tail -n1 | awk '{print $4}')"
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Uninstall docker
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Uninstalling docker..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
# sudo apt remove -y docker docker-engine docker.io containerd runc
|
|
||||||
sudo apt remove -y \
|
|
||||||
containerd \
|
|
||||||
containerd.io \
|
|
||||||
docker \
|
|
||||||
docker-ce \
|
|
||||||
docker-ce-cli \
|
|
||||||
docker-compose \
|
|
||||||
docker-compose-plugin \
|
|
||||||
docker-engine \
|
|
||||||
docker.io \
|
|
||||||
runc
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Uninstall omz
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Uninstalling omz..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
bash $ZSH/tools/uninstall.sh
|
|
||||||
exec bash
|
|
||||||
10
upgrade/omz
10
upgrade/omz
@@ -1,10 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##makedesc: Upgrade omz
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "==============================================="
|
|
||||||
echo "Upgrading omz..."
|
|
||||||
echo "==============================================="
|
|
||||||
echo
|
|
||||||
|
|
||||||
bash $ZSH/tools/upgrade.sh
|
|
||||||
Reference in New Issue
Block a user