Skip to content

Commit

Permalink
Merge branch 'master' into speedup-pyenv-virtualenv-prompt
Browse files Browse the repository at this point in the history
  • Loading branch information
shunk031 authored Jul 17, 2024
2 parents 91e6ece + aedc22f commit b70db74
Show file tree
Hide file tree
Showing 12 changed files with 199 additions and 20 deletions.
9 changes: 9 additions & 0 deletions .github/workflows/macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,12 @@ jobs:
alert-threshold: "150%"
alert-comment-cc-users: "@shunk031"
benchmark-data-dir-path: "."

- name: Test file existence
run: |
brew install bats-core
cd $(chezmoi source-path)/../
bats --print-output-on-failure \
tests/files/common.bats \
tests/files/macos.bats
2 changes: 1 addition & 1 deletion .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
- name: Run unit test
run: |
./scripts/run_test.sh
./scripts/run_unit_test.sh
- name: Set flag for codecov
run: |
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/ubuntu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,21 @@ jobs:
# │ │
# │ └─ Simulate inputting an system arcitecture into the config.
# └─ Simulate inputting an email address into the config.
- name: Install latest bats-core
run: |
tmp_dir=$(mktemp -d /tmp/bats-core-XXXXX)
git clone --depth 1 https://github.com/bats-core/bats-core.git "${tmp_dir}"
cd "${tmp_dir}"
sudo ./install.sh /usr/local
rm -rf "${tmp_dir}"
- name: Test file existence
env:
SYSTEM: ${{ matrix.system }}
run: |
cd $(chezmoi source-path)/../
bats tests/files/common.bats
bats --filter-tags common,ubuntu:${SYSTEM} \
--print-output-on-failure \
tests/files/ubuntu.bats
1 change: 1 addition & 0 deletions home/.chezmoitemplates/chezmoiignore.d/macos
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.profile
.bashrc
.tmux.conf.d/os/ubuntu_client.conf
.tmux.conf.d/system/server.conf
.config/sheldon/plugins.toml

Expand Down
6 changes: 3 additions & 3 deletions install/ubuntu/common/eza.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ if [ "${DOTFILES_DEBUG:-}" ]; then
fi

function apt_install_eza() {
sudo apt install -y eza
sudo apt-get install -y eza
}

function apt_install_exa() {
sudo apt install -y exa
sudo apt-get install -y exa
}

function install_eza() {
sudo mkdir -p /etc/apt/keyrings
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --yes --dearmor -o /etc/apt/keyrings/gierens.gpg
echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list
sudo chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list
sudo apt update
sudo apt-get update

if ! apt_install_eza; then
apt_install_exa
Expand Down
2 changes: 1 addition & 1 deletion install/ubuntu/common/gh.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ if [ "${DOTFILES_DEBUG:-}" ]; then
fi

function install_gh() {
type -p curl >/dev/null || sudo apt install curl -y
type -p curl >/dev/null || sudo apt-install curl -y

curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg &&
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg &&
Expand Down
6 changes: 3 additions & 3 deletions install/ubuntu/server/setup_timezone.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ fi

function main() {
export TZ="Asia/Tokyo"
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
echo $TZ > /etc/timezone
sudo ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime
echo "${TZ}" | sudo tee /etc/timezone

DEBIAN_FRONTEND="noninteractive" apt-get install -y tzdata
DEBIAN_FRONTEND="noninteractive" sudo apt-get install -y tzdata
}

if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
Expand Down
26 changes: 14 additions & 12 deletions install/ubuntu/server/ssh_server.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,30 +7,32 @@ if [ "${DOTFILES_DEBUG:-}" ]; then
fi

function install_openssh_server() {
# install openssh-server
apt-get update && apt-get install --no-install-recommends -y vim openssh-server
# install openssh-server and vim
sudo apt-get update && sudo apt-get install --no-install-recommends -y \
vim \
openssh-server
}

function setup_sshd() {
mkdir -p /var/run/sshd
mkdir -p /root/.ssh
sudo mkdir -p /var/run/sshd
mkdir -p ${HOME}/.ssh

sed -i 's/^#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config &&
sed -i 's/^#Port 22/Port 22/' /etc/ssh/sshd_config &&
sed -i 's/^#ListenAddress 0.0.0.0/ListenAddress 0.0.0.0/' /etc/ssh/sshd_config &&
sed -i 's/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config &&
sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
sudo sed -i 's/^#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config &&
sudo sed -i 's/^#Port 22/Port 22/' /etc/ssh/sshd_config &&
sudo sed -i 's/^#ListenAddress 0.0.0.0/ListenAddress 0.0.0.0/' /etc/ssh/sshd_config &&
sudo sed -i 's/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config &&
sudo sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

# check the /etc/ssh/sshd_config
/usr/sbin/sshd -t
sudo /usr/sbin/sshd -t

# create .ssh/authorized_keys if not exists
touch ~/.ssh/authorized_keys
touch ${HOME}/.ssh/authorized_keys
}

function run_sshd() {
# run sshd
/usr/sbin/sshd
sudo /usr/sbin/service ssh start
}

function main() {
Expand Down
File renamed without changes.
41 changes: 41 additions & 0 deletions tests/files/common.bats
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/usr/bin/env bats

# bats file_tags=common
@test "[common] dotfiles" {
files_exists=(
"${HOME}/.config/git/ignore"
"${HOME}/.config/git/config"
"${HOME}/.config/jupyter/lab/user-settings/@jupyterlab/terminal-extension/plugin.jupyterlab-settings.json"
"${HOME}/.config/tango.yml"
"${HOME}/.local/bin/common/dev"
"${HOME}/.local/bin/common/gpg.sh"
"${HOME}/.local/bin/common/setup-gh"
"${HOME}/.gnupg/gpg-agent.conf"
"${HOME}/.ssh/config"
"${HOME}/.vimrc"
"${HOME}/.tmux.conf"
)
for file in "${files_exists[@]}"; do
echo "Checking ${file}"
[ -f "${file}" ]
done

directories_exists=(
"${HOME}/.config/fzf"
"${HOME}/.spacemacs.d"
"${HOME}/.pyenv"
)
for directory in "${directories_exists[@]}"; do
echo "Checking ${directory}"
[ -d "${directory}" ]
done

symbolic_links_exists=(
"${HOME}/.zshrc"
"${HOME}/.zprofile"
)
for link in "${symbolic_links_exists[@]}"; do
echo "Checking ${link}"
[ -L "${link}" ]
done
}
46 changes: 46 additions & 0 deletions tests/files/macos.bats
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/usr/bin/env bats

@test "[macos] dotfiles" {
files_exists=(
"${HOME}/.config/powerlevel10k/p10k.zsh"
"${HOME}/.zsh/client/zshrc"
"${HOME}/.zsh/client/zprofile"
"${HOME}/.bash/client/bashrc"
"${HOME}/.tmux-powerlinerc"
"${HOME}/.tmux.conf.d/system/client.conf"
"${HOME}/.tmux.conf.d/os/macos.conf"
)
for file in "${files_exists[@]}"; do
echo "Checking ${file}"
[ -f "${file}" ]
done

directories_exists=(
"${HOME}/.local/bin/client"
"${HOME}/.zprezto"
)
for directory in "${directories_exists[@]}"; do
echo "Checking ${directory}"
[ -d "${directory}" ]
done

symbolic_links_exists=(
"${HOME}/Library/Application Support/iTerm2/DynamicProfiles/hotkey_window.json"
)
for link in "${symbolic_links_exists[@]}"; do
echo "Checking ${link}"
[ -L "${link}" ]
done

files_not_exists=(
"${HOME}/.local/bin/server"
"${HOME}/.zsh/server/zshrc"
"${HOME}/.zsh/server/zprofile"
"${HOME}/.tmux.conf.d/system/server.conf"
"${HOME}/.tmux.conf.d/os/ubuntu_client.conf"
)
for file in "${files_not_exists[@]}"; do
echo "Checking ${file}"
[ ! -f "${file}" ]
done
}
62 changes: 62 additions & 0 deletions tests/files/ubuntu.bats
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/usr/bin/env bats

# bats test_tags=ubuntu:client
@test "[ubuntu-client] dotfiles" {
files_exists=(
"${HOME}/.zsh/client/zshrc"
"${HOME}/.zsh/client/zprofile"
"${HOME}/.tmux-powerlinerc"
"${HOME}/.tmux.conf.d/system/client.conf"
"${HOME}/.tmux.conf.d/os/ubuntu_client.conf"
)
for file in "${files_exists[@]}"; do
echo "Checking ${file}"
[ -f "${file}" ]
done

directories_exists=(
"${HOME}/.local/bin/client"
"${HOME}/.zprezto"
)
for directory in "${directories_exists[@]}"; do
echo "Checking ${directory}"
[ -d "${directory}" ]
done

files_not_exists=(
"${HOME}/.zsh/server/zshrc"
"${HOME}/.zsh/server/zprofile"
"${HOME}/.tmux.conf.d/system/server.conf"
"${HOME}/.tmux.conf.d/os/macos.conf"
)
for file in "${files_not_exists[@]}"; do
echo "Checking ${file}"
[ ! -f "${file}" ]
done
}

# bats test_tags=ubuntu:server
@test "[ubuntu-server] dotfiles" {
files_exists=(
"${HOME}/.zsh/server/zshrc"
"${HOME}/.zsh/server/zprofile"
"${HOME}/.tmux.conf.d/system/server.conf"
"${HOME}/.tmux.conf.d/os/ubuntu_server.conf"
)
for file in "${files_exists[@]}"; do
echo "Checking ${file}"
[ -f "${file}" ]
done

files_not_exists=(
"${HOME}/.tmux-powerlinerc"
"${HOME}/.zsh/client/zshrc"
"${HOME}/.zsh/client/zprofile"
"${HOME}/.tmux.conf.d/system/client.conf"
"${HOME}/.tmux.conf.d/os/macos.conf"
)
for file in "${files_not_exists[@]}"; do
echo "Checking ${file}"
[ ! -f "${file}" ]
done
}

0 comments on commit b70db74

Please sign in to comment.