Compare commits

..

14 Commits

17 changed files with 183 additions and 301 deletions

View File

@ -1,83 +1,92 @@
[user]
name = AnthonyAxenov
email = anthonyaxenov@gmail.com
[push]
default = current
[pull]
default = current
rebase = false
signingkey =
[core]
editor = nano
autocrlf = input
[commit]
gpgSign = true
[tag]
gpgSign = true
[pull]
default = current
rebase = false
[push]
default = current
[alias]
# общее -----------------------------------------------------------------
st = status #
aliases = config --get-regexp '^alias' # показать список доступных алиасов
diffc = diff --cached # показать дельту staged-файла
co = checkout #
head = log -1 HEAD # показать последний коммит в текущей ветке
# название текущей ветки или тега при detached head:
dehead = "!BR=$(git branch --show-current); if [ -n \"$BR\" ]; then echo $BR; else git describe --contains --all HEAD; fi;"
# ветки -------------------------------------------------------------------
bheads = branch -vv # ветки и их последние коммиты
# br = status -sb # показать название текущей ветки
# branch = branch --list -vv # показать текущую ветку в общем списке локальных веток
#mn = merge --no-ff # слить ветку с принудительным коммитом слияния
brd = branch -D # удалить ветку локально
brod = "!git push origin :"${1}";" # удалить ветку на origin
merged = branch --merged # показать список веток, слитых в текущую
review = "!git fetch origin pull/$1/head:pr/$1 && git checkout pr/$1" # github: встать на PR с указанным id
# удалить локальные ветки, слитые в текущую, плюс все мёртвые ссылки на ветки в origin:
trim = "!DEFAULT=master; git branch --merged ${1-$DEFAULT} | grep -v " ${1-$DEFAULT}$" | xargs git branch -d; git remote prune origin;"
# переключение ------------------------------------------------------------
co = checkout # переключиться на ветку/тег/коммит
cob = checkout -b # создание новое ветки
cp = cherry-pick # применить коммит поверх текущего HEAD
bheads = branch -vv # показать список веток с последними коммитами
heads = log --graph --decorate --simplify-by-decoration --oneline # лог только по последним коммитам веток
# управление ветками ----------------------------------------------------
br = status -sb # показать название текущей ветки
branch = branch --list # показать текущую ветку в общем списке локальных веток
brd = branch -d # удалить слитую ветку локально
brD = branch -D # удалить НЕслитую ветку локально
brod = "!f(){ git branch -d "${1}"; git push origin :"${1}"; };f" # удалить слитую ветку локально и на origin
broD = "!f(){ git branch -D "${1}"; git push origin :"${1}"; };f" # удалить НЕслитую ветку локально и на origin
merged = branch --merged # показать список слитых веток
# удалить все слитые ветки
#bclean = "!f() { DEFAULT=master; git branch --merged ${1-$DEFAULT} | grep -v " ${1-$DEFAULT}$" | xargs git branch -d; }; f"
mn = merge --no-ff # слить ветку с принудительным коммитом слияния
# переключение между ветками ----------------------------------------------
master = "!git checkout master && git pull" # переключиться на ветку master и обновление
dev = "!git checkout dev && git pull" # переключиться на ветку dev и обновление
develop = "!git checkout develop && git pull" # переключиться на ветку develop и обновление
master = "!git checkout master && git pull" # переключиться на ветку master и обновить
dev = "!git checkout dev && git pull" # переключиться на ветку dev и обновить
develop = "!git checkout develop && git pull" # переключиться на ветку develop и обновить
# фиксация изменений ------------------------------------------------------
c = commit # коммит
ca = commit -a # коммит всех файлов
cm = commit -m # коммит с заданным сообщением
cam = commit -am # коммит всех файлов с заданным сообщением
amend = commit --amend --no-edit # по-тихому прикрепляет все индексированные файлы к последнему коммиту, используя уже существующее сообщение
amend = commit --amend --no-edit # прикрепляет все индексированные файлы к последнему коммиту, используя уже существующее сообщение
# amenda = commit --amend --no-edit -a
amendm = commit --amend -m # прикрепляет все индексированные файлы к последнему коммиту, спрашивает новое сообщение к коммиту
cp = cherry-pick # применить коммит поверх текущего HEAD
diffc = diff --cached # показать дельту staged-файла
uncommit = reset --soft HEAD~1
# управление изменениями, сброс состояний, откат --------------------------
st = status -sb # короткий status
rh = reset --hard # откат коммита с удалением всех изменений на указанный коммит
rhh = reset --hard HEAD # откат коммита с удалением всех изменений на последний коммит
rs = reset --soft # откат коммита с сохранением всех изменений на указанный коммит
rsh = reset --soft HEAD # откат коммита с сохранением всех изменений
unstage = reset HEAD # удаляет файл из staged перед коммитом
clear = checkout -- # удаляет изменения в unstaged-файле
reseth = reset --mixed HEAD # откат коммита с сохранением всех изменений
unstage = reset HEAD # переводит файл staged => unstaged без потери изменений
clear = checkout -- # удаляет изменения в файле
# штучка чтобы не терять наработки, которые ещё в процессе
# на самом деле, надо исопользовать стеш для таких дел
# алиасы для временной фиксации
# на самом деле, для таких дел надо использовать git stash
# save = !git add -A && git commit -m 'SAVEPOINT'
# wip = commit -am "WIP"
# undo = reset HEAD~1 --mixed
# работа с remote-репами --------------------------------------------------
p = push # отправить ветку
po = push origin # отправить ветку в origin
pt = push --tags # отправить теги
pl = pull # получить ветку
plo = pull origin # получить ветку из origin
ploh = pull origin HEAD # получить текущую ветку из origin
pushf = push --force # отправить ветку принудительно
pushft = push --tags --force # отправить теги принудительно
pullf = pull --force # отправить ветки принудительно
pullt = pull --tags --force # получить теги принудительно
#ploh = pull origin HEAD # получить текущую ветку из origin
remotes = remote -v # показать список удалённых репозиториев
#sy = remote update origin --prune #
rso = remote show origin # показать состояние локальных веток относительно удалённых на origin bare
rpo = remote prune origin # удалить все мёртвые ссылки на bare-ветки origin
rpo = remote prune origin # удалить все мёртвые ссылки на ветки в origin
repush = 'git push origin :$1 && git push origin $1' # удалить ветку на origin и отправить её заново
# просмотр логов ----------------------------------------------------------
head = log -1 HEAD # показать последний коммит в текущей ветке
heads = log --graph --decorate --simplify-by-decoration --oneline # коммиты, которыми оканчиваются ветки
tree = log --graph --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
hist = log --pretty=format:\"%h | %an (%ad) %s%d\" --graph --date=relative
logfull = log --graph --decorate --all
grog = log --graph --decorate --all --pretty=format:'%C(bold red)%h%C(reset) %C(bold blue)%an%C(reset) %C(green)%cr%C(reset) [%aD]%d%n%B'
# подмодули ---------------------------------------------------------------
# сабмодули ---------------------------------------------------------------
si = submodule init # инициализация сабмодулей
sdi = submodule deinit -f # удаление сабмодуля
sa = submodule add # добавление сабмодуля

View File

@ -23,4 +23,7 @@ else
sudo git clone https://github.com/git/git.git --depth=1 /usr/src/git
sudo chown -R anthony: /usr/src/git
fi
git config set --global user.name 'AnthonyAxenov'
git config set --global user.email 'anthonyaxenov@gmail.com'
git --version
# TODO: cp $DOTFILESDIR/.gitconfig $HOME/.gitconfig

View File

@ -1,10 +1,13 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Installing google chrome (latest)..."
echo
echo "==============================================="
echo "Installing google chrome (latest)..."
echo "==============================================="
echo
# https://t.me/axenov_blog/251
# snapi chromium
# sudo snap install chromium
wget "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -O /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

View File

@ -1,24 +1,25 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Installing postman (latest)..."
echo
echo "==============================================="
echo "Installing postman (latest)..."
echo "==============================================="
echo
wget "https://dl.pstmn.io/download/latest/linux64" -O /tmp/postman.tar.gz
# sudo tar -xvzf /tmp/postman.tar.gz -C /usr/local/bin
sudo tar -xzf /tmp/postman.tar.gz -C /usr/local/bin
sudo tar -xzf /tmp/postman.tar.gz -C /usr/local
rm /tmp/postman.tar.gz
sudo ln -s /usr/local/bin/Postman/Postman /usr/local/bin/postman
sudo ln -s /usr/local/Postman/Postman /usr/local/bin/postman
echo "#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Postman
Exec=/usr/local/bin/postman
Icon=/usr/local/bin/Postman/app/icons/icon_128x128.png
Icon=/usr/local/Postman/app/icons/icon_128x128.png
Categories=Utility,Network
Terminal=false
Type=Application
Encoding=UTF-8
" > /home/anthony/.local/share/applications/Postman.desktop
sudo update-desktop-database
installed "postman" && success "Postman installed!" || warning "Something wrong, Postman was not installed"

View File

@ -1,6 +1,11 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Installing telebit..."
echo
echo "==============================================="
echo "Installing telebit..."
echo "==============================================="
echo
# https://git.coolaj86.com/coolaj86/telebit.js#install
# export NODEJS_VER=v10.2 # v10.2 is tested working, but we can test other versions
# export TELEBIT_VERSION=master # git tag or branch to install from

View File

@ -1,27 +1,28 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Installing golang"
echo
echo "==============================================="
echo "Installing golang..."
echo "==============================================="
echo
# https://go.dev/dl/
# https://golang.org/doc/install
# https://www.vultr.com/docs/install-the-latest-version-of-golang-on-ubuntu
# if [ "$EUID" -ne 0 ]
# then echo "*** root permissions required ***"
# exit
# fi
[ $1 ] && VERSION="$1" || VERSION="1.17.5"
[ $1 ] && VERSION="$1" || VERSION="1.17.6"
FILE="go$VERSION.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
wget "https://golang.org/dl/$FILE" -O /tmp/$FILE
sudo tar -xzf $FILE -C /usr/local
rm -rf /tmp/$FILE
sudo chown $USER: -R /usr/local/go
sudo chown anthony: -R /usr/local/go
echo "export PATH=$PATH:/usr/local/go/bin" >> /home/anthony/.profile
echo "export GOPATH=~/.go" >> /home/anthony/.profile
# source ~/.profile
success "$(go version)"
info "NOTE: now run \`source ~/.profile\` to apply new env vars"
echo
go version
echo "NOTE: now run 'source ~/.profile' to apply new env vars"
echo

View File

@ -1,10 +1,17 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Installing composer..."
echo
echo "==============================================="
echo "Installing composer..."
echo "==============================================="
echo
installed() {
command -v "$1" >/dev/null 2>&1
}
if installed "php"; then
if installed "composer"; then
warning "You already have composer installed - removing to install actual version"
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
@ -26,9 +33,9 @@ if installed "php"; then
sudo cp /usr/src/composer/composer.phar /usr/local/bin/composer
cd - >/dev/null
sudo rm -rf /usr/src/composer/
installed "composer" && success "composer installed!"
installed "composer" && composer --version
else
warning "*** You need to have php installed"
echo "WARNING: You need to have php installed"
fi
# title "Installing composer.phar in home dir..."

View File

@ -1,7 +1,14 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Installing pgsql..."
echo
echo "==============================================="
echo "Installing postgresql..."
echo "==============================================="
echo
apti postgresql postgresql-contrib
installed() {
command -v "$1" >/dev/null 2>&1
}
sudo apt install -y --autoremove postgresql postgresql-contrib
sudo service postgresql restart
installed php && apti php-pgsql
installed php && sudo apt install -y --autoremove php-pgsql

View File

@ -1,9 +1,12 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Installing wkhtmltopdf..."
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 -rf /tmp/wkhtmltopdf.deb
rm /tmp/wkhtmltopdf.deb

View File

@ -1,8 +1,16 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Installing zint..."
echo
echo "==============================================="
echo "Installing zint..."
echo "==============================================="
echo
apti g++ cmake qtbase5-dev qttools5-dev libpng-dev
sudo apt install -y --autoremove \
g++ \
cmake \
qtbase5-dev \
qttools5-dev \
libpng-dev
if installed git; then
# 2.9.* ===============================================================================
@ -11,7 +19,6 @@ if installed git; then
sudo cmake .
sudo make
sudo make install
cd -
else
echo "You need git to be installed!"
# 2.4.2 ===============================================================================

View File

@ -1,20 +1,28 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Installing nodejs..."
echo
echo "==============================================="
echo "Installing nodejs..."
echo "==============================================="
echo
# apti nodejs npm
installed() {
command -v "$1" >/dev/null 2>&1
}
# sudo apt install -y --autoremove nodejs npm
if !installed "nvm"; then
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
fi
if [ $(nvm current) == 'system' ]; then
warning "You already have node installed - removing to install actual version"
echo "WARNING: You already have node installed - removing to install actual version"
sudo apt remove -y --autoremove nodejs npm
else
nvm install-latest-npm
fi
nvm install node
nvm use node
installed "node" && success "nodejs installed! $(nvm current)"
installed "npm" && success "npm installed! $(nvm current)"
installed "node" && nvm current
nvm ls

View File

@ -1,6 +1,13 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Installing phpstorm-url-handler..."
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
@ -14,9 +21,9 @@ 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 /usr/src/phpstorm-url-handler.zip
sudo unzip /usr/src/phpstorm-url-handler.zip -d /usr/src/phpstorm-url-handler
sudo rm -f /usr/src/phpstorm-url-handler.zip
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"

View File

@ -1,10 +1,10 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Copying dotfiles..."
require_start
# . "../src/01-common.sh" || exit 5
# title "Copying dotfiles..."
# require_start
cp $DOTFILESDIR/.aliases $HOME/.aliases
cp $DOTFILESDIR/.bashrc $HOME/.bashrc
cp $DOTFILESDIR/.zshrc $HOME/.zshrc
cp $DOTFILESDIR/.gitconfig $HOME/.gitconfig
cp -R $DOTFILESDIR/Шаблоны $HOME/Шаблоны
# cp $DOTFILESDIR/.aliases $HOME/.aliases
# cp $DOTFILESDIR/.bashrc $HOME/.bashrc
# cp $DOTFILESDIR/.zshrc $HOME/.zshrc
# cp $DOTFILESDIR/.gitconfig $HOME/.gitconfig
# cp -R $DOTFILESDIR/Шаблоны $HOME/Шаблоны

View File

@ -1,115 +0,0 @@
#!/bin/bash
# https://misc.flogisoft.com/bash/tip_colors_and_formatting
########################################################
# Иконки
########################################################
IINFO="[ i ]"
INOTE="[ * ]"
IWARN="[ # ]"
IERROR="[ ! ]"
IFATAL="[ @ ]"
ISUCCESS="[ ! ]"
IASK="[ ? ]"
########################################################
# Атрибуты текста (форматирование)
########################################################
BOLD="\e[1m" # жирный
_BOLD="\e[21m" # нежирный
DIM="\e[2m" # приглушённый
_DIM="\e[22m" # неприглушённый
NORMAL="\e[20m" # сброс всех атрибутов
RESET="\e[0m" # сброс всех атрибутов и цветов (вообще)
########################################################
# Цвет текста
########################################################
FRESET="\e[39m"
FBLACK="\e[30m"
FWHITE="\e[97m"
FRED="\e[31m"
FGREEN="\e[32m"
FYELLOW="\e[33m"
FBLUE="\e[34m"
FLRED="\e[91m"
FLGREEN="\e[92m"
FLYELLOW="\e[93m"
FLBLUE="\e[94m"
########################################################
# Цвет фона текста
########################################################
BRESET="\e[49m"
BBLACK="\e[40m"
BWHITE="\e[107m"
BRED="\e[41m"
BGREEN="\e[42m"
BYELLOW="\e[43m"
BBLUE="\e[44m"
BLRED="\e[101m"
BLGREEN="\e[102m"
BLYELLOW="\e[103m"
BLBLUE="\e[104m"
########################################################
# Функции для вывода текста
########################################################
print() {
echo -e "$*${RESET}"
}
ask() {
IFS= read -rp "$(print ${BOLD}${BBLUE}${FWHITE}${IASK}${BRESET}\ ${BOLD}$1 ): " $2
}
dbg() {
print "${DIM}$*"
}
info() {
print "${BOLD}${FWHITE}${IINFO}${RESET}${FWHITE} $1 "
}
note() {
print "${BOLD}${DIM}${FWHITE}${INOTE}${RESET} $1 "
}
success() {
print "${BOLD}${BGREEN}${FWHITE}${ISUCCESS}${BRESET}$FGREEN $1 "
}
warn() {
print "${BOLD}${BYELLOW}${FBLACK}${IWARN}${BRESET}${FYELLOW} Warning:${RESET} $1 " >&2
}
error() {
print "${BOLD}${BLRED}${FWHITE}${IERROR} Error: ${BRESET}${FLRED} $1 " >&2
}
fatal() {
print "${BOLD}${BRED}${FWHITE}${IFATAL} FATAL: $1 " >&2
}
########################################################
# Тестирование
########################################################
# print
# print "print test"
# print
# ask "ask test" test
# print $test
# dbg "debug test"
# info "info test"
# note "note test"
# success "success test"
# warn "warn test"
# error "error test"
# fatal "fatal test"

View File

@ -1,49 +0,0 @@
#!/bin/bash
set -e
source "./../src/00-io.sh"
title() {
info ""
info "==============================================="
info " $1"
info "==============================================="
info ""
}
apti() {
sudo apt install -y --autoremove $@
}
aptu() {
sudo apt update
}
aptug() {
sudo apt upgrade -y --autoremove
}
snapi() {
snap install $1 2>/dev/null
[[ $? -ne 0 ]] && snap install $1 --classic
}
installed() {
command -v "$1" >/dev/null 2>&1
}
die() {
error "$1"
exit $2 || 1
}
require_root() {
[ $(id -u) > "0" ] && die "You must run this script with sudo!" 1
}
require_user() {
[ $(id -u) == "0" ] && die "You must run this script WITHOUT sudo!" 2
}
require_start() {
[ -z "$ENVDIR" ] && die "You must run start.sh to execute this script!" 3
}

View File

@ -2,18 +2,10 @@
set -e
OLDDIR=`pwd`
ENVDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
ENVSRCDIR="$ENVDIR"/src
INSTALLDIR="$ENVDIR"/install
DOTFILESDIR="$ENVDIR"/dotfiles
for script in "$ENVSRCDIR"/*.sh
do
. "$script"
done
for script in "$INSTALLDIR"/*.sh
do
. "$script"
done
# neofetch

View File

@ -1,41 +1,34 @@
#!/bin/bash
. "../src/01-common.sh" || exit 5
title "Installing theme..."
echo
echo "==============================================="
echo "Installing theme..."
echo "==============================================="
echo
# theme
# sudo cp -R ../theme/Budgie /usr/share/themes/Budgie
sudo cp -R ../theme/Budgie /usr/share/themes/Budgie
# cursor
# sudo cp -R ../theme/Bridge /usr/share/icons/Bridge
# sudo cp -R ../theme/Capitaine /usr/share/icons/Capitaine
sudo cp -R ../theme/Bridge /usr/share/icons/Bridge
sudo cp -R ../theme/Capitaine /usr/share/icons/Capitaine
# icons
# if installed "git"; then
if installed "git"; then
sudo git clone https://github.com/PapirusDevelopmentTeam/papirus-icon-theme.git /usr/src/papirus
<<<<<<< HEAD:theme/install.sh
else
sudo wget https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/master.zip -O /usr/src/papirus.zip
sudo unzip /usr/src/papirus.zip -d /usr/src/papirus
sudo rm -f /usr/src/papirus.zip
fi
sudo chown -R anthony: /usr/src/papirus
=======
# else
# sudo wget https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/master.zip -O /usr/src/papirus.zip
# sudo unzip /usr/src/papirus.zip -d /usr/src/papirus
# sudo rm -f /usr/src/papirus.zip
# fi
>>>>>>> 80482acf7ae67d27edcc5d00c9836e94016f0fed:install/010-theme.sh
# sudo ln -s /usr/src/papirus/ePapirus /usr/share/icons/ePapirus
sudo ln -s /usr/src/papirus/ePapirus /usr/share/icons/ePapirus
sudo ln -s /usr/src/papirus/Papirus /usr/share/icons/Papirus
sudo ln -s /usr/src/papirus/Papirus-Dark /usr/share/icons/Papirus-Dark
sudo ln -s /usr/src/papirus/Papirus-Light /usr/share/icons/Papirus-Light
# dconf write /org/mate/marco/general/theme "'Budgie'"
# dconf write /org/mate/desktop/interface/gtk-theme "'Budgie'"
# dconf write /org/mate/desktop/interface/icon-theme "'Papirus-Dark'"
# dconf write /org/mate/desktop/peripherals/mouse/cursor-theme "'Capitaine'"
# dconf write /org/mate/desktop/peripherals/mouse/cursor-size 20
# dconf write /org/mate/notification-daemon/theme "'coco'"
# dconf write /org/mate/notification-daemon/popup-location "'top_right'"
dconf write /org/mate/marco/general/theme "'Budgie'"
dconf write /org/mate/desktop/interface/gtk-theme "'Budgie'"
dconf write /org/mate/desktop/interface/icon-theme "'Papirus-Dark'"
dconf write /org/mate/desktop/peripherals/mouse/cursor-theme "'Capitaine'"
dconf write /org/mate/desktop/peripherals/mouse/cursor-size 20
dconf write /org/mate/notification-daemon/theme "'coco'"
dconf write /org/mate/notification-daemon/popup-location "'top_right'"