Skip to content

Instantly share code, notes, and snippets.

@chaeya
Last active October 28, 2023 02:51
Show Gist options
  • Save chaeya/627b20104f1386e3f8d936a917c855c2 to your computer and use it in GitHub Desktop.
Save chaeya/627b20104f1386e3f8d936a917c855c2 to your computer and use it in GitHub Desktop.
Prepare build env at Desktop
#!/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