Last active
October 28, 2023 02:51
-
-
Save chaeya/627b20104f1386e3f8d936a917c855c2 to your computer and use it in GitHub Desktop.
Prepare build env at Desktop
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Whole message to syslog | |
# exec 1> >(logger -s -t $(basename $0)) 2>&1 | |
# only some message to syslog | |
readonly SCRIPT_NAME=$(basename $0) | |
log() { | |
echo "$@" | |
logger -p user.notice -t $SCRIPT_NAME [INFO] "$@" | |
} | |
err() { | |
echo "$@" >&2 | |
logger -p user.error -t $SCRIPT_NAME [ERROR] "$@" | |
} | |
bail() { | |
echo 'Error executing command, exiting' | |
exit 1 | |
} | |
exec_cmd_nobail() { | |
echo "+ $1" | |
bash -c "$1" | |
} | |
exec_cmd() { | |
exec_cmd_nobail "$1" || bail | |
} | |
# Add HamoniKR APT | |
if [ ! -f "/etc/apt/sources.list.d/hamonikr.list" ]; then | |
log "[APT] Install hamonikr APT Repo..." | |
wget -qO- https://repo.hamonikr.org/kumkang.apt | sudo -E bash - | |
fi | |
# install useful pkgs | |
log "[INSTALL] debhelper and others useful pkg install..." | |
sudo apt install -y dumpet xorriso squashfs-tools gddrescue qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager ovmf qemu virt-viewer qemu-system gir1.2-spiceclientgtk-3.0 fsarchiver udpcast packaging-dev debhelper devscripts equivs apt-rdepends apt-file build-essential sassc git figlet xclip vim openssh-client | |
# sudo apt install ruby-full | |
# sudo gem install github_changelog_generator | |
log "[git] git config 설정 중..." | |
# setting for invesume working enviroment | |
git config --global user.name "Kevin Kim" | |
git config --global user.email "hckim@invesume.com" | |
log "[dpkg] debian 패키지 환경 설정 중..." | |
# dpkg env | |
gpg --keyserver keyserver.ubuntu.com --recv-key 9FA298A1E42665B8 | |
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com A1715D88E1DF1F24 40976EAF437D05B5 3B4FE6ACC0B21F32 A6616109451BBBF2 9FA298A1E42665B8 7721F63BD38B4796 | |
wget https://gist.githubusercontent.com/chaeya/620d6f45ba1428a66fad825795fb64ab/raw/8d93c47fbce749a60c83033f3a28c39d7c0709fa/hamonikr-pkg-sec.asc | |
if [ -f "hamonikr-pkg-sec.asc" ]; then | |
gpg --import hamonikr-pkg-sec.asc | |
fi | |
# EMAIL=`gpg -k | grep pkg | grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"` | |
# NAME=`gpg -k | grep uid | grep pkg | cut -d']' -f2 | cut -d'<' -f1 | tr -d '^ '` | |
# dpkg-vendor | |
# https://man7.org/linux/man-pages/man1/dpkg-vendor.1.html | |
# mkdir -p local/etc/dpkg/origins | |
# cp hamonikr ~/.local/etc/dpkg/origins/default | |
if [[ -e ~/.bashrc ]] ; then | |
cat >> ~/.bashrc <<EOF | |
# for debian package build | |
DEBFULLNAME="HamoniKR" | |
DEBEMAIL="pkg@hamonikr.org" | |
export DEBEMAIL DEBFULLNAME | |
GITHUB_API_KEY="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" | |
export GITHUB_API_KEY | |
alias chlog='github_changelog_generator --token ${GITHUB_API_KEY} --release-branch master --user hamonikr --project ${PWD##*/} --output Changelog.md --no-unreleased' | |
alias hbuild='dpkg-buildpackage -T clean; dpkg-buildpackage -k9FA298A1E42665B8; dpkg-buildpackage -T clean' | |
alias pkgupload='scp *.dsc *.buildinfo *.*deb *.*z *.changes ivs01@apt.hamonikr.org:/var/www/repos/apt/hamonikr-pkg/incomming/' | |
alias show-pkgsize="aptitude search --sort '~installsize' --display-format '%p %I' '~i'" | |
alias insdep='mk-build-deps --install --root-cmd sudo --remove' | |
alias uprepo='scp *.dsc *.buildinfo *.*deb *.*z *.changes ivs01@repo.hamonikr.org:/var/www/repos/apt/hamonikr-pkg/incomming/' | |
alias upupdate='scp *.dsc *.buildinfo *.*deb *.*z *.changes ivs01@49.247.24.203:/var/www/repos/apt/hamonikr-update/incomming/' | |
alias conapt='ssh ivs01@49.247.24.203' | |
alias code='code --no-sandbox' | |
alias pdel='rm -f *.dsc *.buildinfo *.*deb *.*z *.changes' | |
alias goupdate='cd .. && upupdate && conapt' | |
alias gorepo='cd .. && uprepo && conapt' | |
EOF | |
IS_FIGLET=$(sed -n '/^figlet /p' ~/.bashrc) | |
[ -z "$IS_FIGLET" ] && echo "figlet \$HOSTNAME" >> ~/.bashrc | |
source ~/.bashrc | |
fi | |
if [[ -e ~/.zshrc ]] ; then | |
cat >> ~/.zshrc <<EOF | |
# for debian package build | |
DEBFULLNAME="HamoniKR" | |
DEBEMAIL="pkg@hamonikr.org" | |
export DEBEMAIL DEBFULLNAME | |
GITHUB_API_KEY="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" | |
export GITHUB_API_KEY | |
alias chlog='github_changelog_generator --token ${GITHUB_API_KEY} --release-branch master --user hamonikr --project ${PWD##*/} --output Changelog.md --no-unreleased' | |
alias hbuild='dpkg-buildpackage -T clean; dpkg-buildpackage -k9FA298A1E42665B8; dpkg-buildpackage -T clean' | |
alias pkgupload='scp *.dsc *.buildinfo *.*deb *.*z *.changes ivs01@apt.hamonikr.org:/var/www/repos/apt/hamonikr-pkg/incomming/' | |
alias show-pkgsize="aptitude search --sort '~installsize' --display-format '%p %I' '~i'" | |
alias insdep='mk-build-deps --install --root-cmd sudo --remove' | |
alias uprepo='scp *.dsc *.buildinfo *.*deb *.*z *.changes ivs01@repo.hamonikr.org:/var/www/repos/apt/hamonikr-pkg/incomming/' | |
alias upupdate='scp *.dsc *.buildinfo *.*deb *.*z *.changes ivs01@49.247.24.203:/var/www/repos/apt/hamonikr-update/incomming/' | |
alias conapt='ssh ivs01@49.247.24.203' | |
alias code='code --no-sandbox' | |
alias pdel='rm -f *.dsc *.buildinfo *.*deb *.*z *.changes' | |
alias goupdate='cd .. && upupdate && conapt' | |
alias gorepo='cd .. && uprepo && conapt' | |
# custom | |
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' | |
alias myip='curl http://ipecho.net/plain; echo' | |
alias api='DEBIAN_FRONTEND=noninteractive sudo apt install' | |
alias apu='DEBIAN_FRONTEND=noninteractive sudo apt update' | |
alias df='df -h' | |
alias lt='ls --human-readable --size -1 -S --classify' | |
alias left='ls -t -1' | |
alias count='find . -type f | wc -l' | |
alias cpv='rsync -ah --info=progress2' | |
EOF | |
fi | |
echo "" | |
echo "DEBFULLNAME : ${DEBFULLNAME}" | |
echo "DEBEMAIL : ${DEBEMAIL}" | |
log "debian packaging 설정 완료." | |
# VSCODE | |
if ! command -v code &> /dev/null | |
then | |
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg | |
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ | |
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list' | |
eval "sudo apt update && sudo apt install -y code" | |
fi | |
echo "=== Install vscode extention ===" | |
code --install-extension jsynowiec.vscode-insertdatestring | |
code --install-extension donjayamanne.githistory | |
code --install-extension funkyremi.vscode-google-translate | |
# Download the fonts using wget | |
wget https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/Hack/Regular/complete/Hack%20Regular%20Nerd%20Font%20Complete.ttf -P ~/.local/share/fonts/ | |
fc-cache -v | |
cat > ~/.config/Code/User/settings.json <<EOF | |
{ | |
"insertDateString.format": "DDD, DD MMM YYYY hh:mm:ss ZZZZ", | |
"terminal.integrated.fontFamily": "\"Hack Nerd Font\"", | |
"terminal.integrated.fontSize": 13, | |
"git.autofetch": true, | |
"git.confirmSync": false, | |
"editor.fontFamily": "'Hack Nerd Font','Droid Sans Mono', 'monospace', monospace", | |
"editor.fontSize": 13, | |
"vscodeGoogleTranslate.preferredLanguage": "Korean" | |
} | |
EOF | |
# Add snippet | |
[[ ! -d "~/.config/Code/User/snippets" ]] && mkdir -p ~/.config/Code/User/snippets | |
cat >~/.config/Code/User/snippets/hamonikr-dev.code-snippets <<EOF | |
{ | |
// https://code.visualstudio.com/docs/editor/userdefinedsnippets | |
"HamoniKR TEAM": { | |
"prefix": ["ha", "har"], | |
"body": ["HamoniKR <pkg@hamonikr.org> "], | |
"description": "Print hamonikr developemet team and email" | |
} | |
} | |
EOF | |
log "vscode 설정 완료." | |
# disable screensaver | |
# cinnamon-screensaver-command --exit | |
# gsettings set org.cinnamon.settings-daemon.plugins.power sleep-display-ac "0" | |
# gsettings set org.cinnamon.settings-daemon.plugins.power sleep-inactive-ac-timeout "0" | |
# ssh key with bitbucket | |
if [ ! -e ~/.ssh/id_rsa.pub ]; then | |
echo "ssh key generation." | |
#ssh-keygen -t rsa -C "chaeya@gmail.com" | |
ssh-keygen -t rsa -C "hckim@invesume.com" | |
fi | |
echo "=== copy to apt.hamonikr.org ssh key ===" | |
ssh-copy-id ivs01@apt.hamonikr.org | |
echo "=== copy to repo.hamonikr.org ssh key ===" | |
ssh-copy-id ivs01@49.247.24.203 | |
xclip -selection clipboard < ~/.ssh/id_rsa.pub | |
echo "" | |
echo "copy & paste ssh key to your bitbucket setting as below" | |
echo "bitbucket 저장소의 사용을 위해 아래 주소를 방문하여 하단의 키를 설정하세요" | |
echo "" | |
echo "http://pms.invesume.com:7990/plugins/servlet/ssh/account/keys" | |
echo "" | |
echo "https://github.com/settings/profile" | |
echo "" | |
echo "=== 복사할 ssh 공개키 ===" | |
echo "`cat ~/.ssh/id_rsa.pub`" | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment