diff --git a/dot/.bashrc b/dot/.bashrc index 54cebf1..2e4a849 100644 --- a/dot/.bashrc +++ b/dot/.bashrc @@ -48,7 +48,7 @@ if [[ -n $(type -t _comp__split_longopt) ]] && [[ -z $(type -t _split_longopt) ] alias _split_longopt="_comp__split_longopt" fi -for _ in ${HOME}/.bashrc.d/*; do +for _ in ${HOME}/.bashrc.d/manager/*; do if [[ $_ == *.@(bash|sh) && -r $_ ]]; then source "$_" fi @@ -57,3 +57,9 @@ done if [[ -n "$(type -t mise-activate)" ]]; then mise-activate fi + +for _ in ${HOME}/.bashrc.d/*; do + if [[ $_ == *.@(bash|sh) && -r $_ ]]; then + source "$_" + fi +done diff --git a/dot/.bashrc.d/mise.bash b/dot/.bashrc.d/manager/mise.bash similarity index 71% rename from dot/.bashrc.d/mise.bash rename to dot/.bashrc.d/manager/mise.bash index 1bceb9d..2431341 100644 --- a/dot/.bashrc.d/mise.bash +++ b/dot/.bashrc.d/manager/mise.bash @@ -1,15 +1,14 @@ basedir=$(realpath -m $(dirname "${BASH_SOURCE[0]:-$0}")) -source "${basedir}/function.bash" +source "${basedir}/../function.bash" unset basedir if [[ -x $(type -p mise) ]]; then - completion_cmd="mise completion --include-bash-completion-lib bash" - generate-bash-completion mise "$completion_cmd" - unset completion_cmd - mise-activate() { eval "$(mise activate bash)" + + local completion_cmd="mise completion --include-bash-completion-lib bash" + generate-bash-completion mise "$completion_cmd" } mise-deactivate() { diff --git a/dot/.bashrc.d/rust.bash b/dot/.bashrc.d/manager/rust.bash similarity index 91% rename from dot/.bashrc.d/rust.bash rename to dot/.bashrc.d/manager/rust.bash index bda869e..730ce0d 100644 --- a/dot/.bashrc.d/rust.bash +++ b/dot/.bashrc.d/manager/rust.bash @@ -1,5 +1,5 @@ basedir=$(realpath -m $(dirname "${BASH_SOURCE[0]:-$0}")) -source "${basedir}/function.bash" +source "${basedir}/../function.bash" unset basedir diff --git a/dot/.bashrc.d/proxy.bash b/dot/.bashrc.d/proxy.bash index 80eff9a..a81abfc 100644 --- a/dot/.bashrc.d/proxy.bash +++ b/dot/.bashrc.d/proxy.bash @@ -1,10 +1,43 @@ -PROXY_IP="192.168.0.104" -HTTP_PROXY="http://${PROXY_IP}:20172" -SOCKS_PROXY="socks5://${PROXY_IP}:20170" +proxy_ip="192.168.0.104" +proxy_http_port="20172" +# SOCKS_PROXY="socks5://${PROXY_IP}:20170" + +_proxy_config_validate() { + if [[ -z "$proxy_ip" && -z "$proxy_http_port" ]]; then + echo "error: proxy_ip and proxy_http_port is not set" >&2 + return 1 + fi + if [[ -z "$proxy_ip" ]]; then + echo "error: proxy_id is not set" + return 1 + fi + if [[ -z "$proxy_http_port" ]]; then + echo "error: proxy_http_port is not set" + return 1 + fi + + if ! [[ "$proxy_http_port" =~ ^[0-9]+$ ]] || ((proxy_http_port < 1 || proxy_http_port > 65535)); then + echo "error: proxy_http_port is invalid: $proxy_http_port" >&2 + return 1 + fi + + if command -v nc >/dev/null 2>&1; then + if ! nc -z -w2 "$proxy_ip" "$proxy_http_port" 2>/dev/null; then + echo "error: proxy $proxy_ip:$proxy_http_port is not reachable" >&2 + return 1 + fi + fi + + return 0 +} set-shell-proxy() { - export http_proxy="$HTTP_PROXY" - export https_proxy="$HTTP_PROXY" + _proxy_config_validate || return 1 + + local http_proxy_url="http://${proxy_ip}:${proxy_http_port}" + + export http_proxy="$http_proxy_url" + export https_proxy="$http_proxy_url" } unset-shell-proxy() { @@ -13,8 +46,10 @@ unset-shell-proxy() { } set-git-proxy() { - prefix_cmd="" - flag="--global" + _proxy_config_validate || return 1 + + local prefix_cmd="" + local flag="--global" if [[ "$1" == "-s" ]]; then prefix_cmd="sudo" flag="--system" @@ -22,13 +57,15 @@ set-git-proxy() { flag="--local" fi - $prefix_cmd git config $flag http.proxy $HTTP_PROXY + local http_proxy_url="http://${proxy_ip}:${proxy_http_port}" + + $prefix_cmd git config $flag http.proxy $http_proxy_url $prefix_cmd git config $flag http.sslVerify false } unset-git-proxy() { - prefix_cmd="" - flag="--global" + local prefix_cmd="" + local flag="--global" if [[ "$1" == "-s" ]]; then prefix_cmd="sudo" flag="--system" @@ -41,8 +78,12 @@ unset-git-proxy() { } set-npm-proxy() { - npm config set proxy $HTTP_PROXY - npm config set https-proxy $HTTP_PROXY + _proxy_config_validate || return 1 + + local http_proxy_url="http://${proxy_ip}:${proxy_http_port}" + + npm config set proxy $http_proxy_url + npm config set https-proxy $http_proxy_url } unset-npm-proxy() { diff --git a/dot/.bashrc.d/uv.bash b/dot/.bashrc.d/uv.bash new file mode 100644 index 0000000..138b13c --- /dev/null +++ b/dot/.bashrc.d/uv.bash @@ -0,0 +1,12 @@ +basedir=$(realpath -m $(dirname "${BASH_SOURCE[0]:-$0}")) +source "${basedir}/function.bash" + +unset basedir + +if [[ -x "$(type -p uv)" ]]; then + generate-bash-completion uv "uv generate-shell-completion bash" +fi + +if [[ -x "$(type -p uvx)" ]]; then + generate-bash-completion uvx "uvx --generate-shell-completion bash" +fi diff --git a/dot/.bashrc.d/volta.bash b/dot/.bashrc.d/volta.bash index a0b2628..2716380 100644 --- a/dot/.bashrc.d/volta.bash +++ b/dot/.bashrc.d/volta.bash @@ -6,10 +6,9 @@ unset basedir export VOLTA_HOME="${HOME}/.volta" if [[ -x $(type -p volta) || -x "${VOLTA_HOME}/bin/volta" ]]; then - generate-bash-completion volta "volta completions bash" - volta-activate() { add-to-path "${VOLTA_HOME}/bin" + generate-bash-completion volta "volta completions bash" # enable pnpm support # export VOLTA_FEATURE_PNPM=1 diff --git a/dot/.xprofile b/dot/.xprofile index 605420f..7e9d4bd 100644 --- a/dot/.xprofile +++ b/dot/.xprofile @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/bin/bash #xrandr --output HDMI-1 --same-as LVDS-1 @@ -38,14 +38,23 @@ fcitx5 -d #sudo service shadowsocks.client start # emacs --daemon -export PATH="~/.local/bin${PATH:+:}$PATH" -# pnpm -export PATH="~/.local/share/pnpm${PATH:+:}$PATH" -# pnpm end +# shell environment setup +export PATH="${HOME}/.local/bin${PATH:+:}$PATH" -# rust cargo -export PATH="~/.cargo/bin${PATH:+:}$PATH" -if [[ -e "$HOME/.cargo/env" ]]; then - . "$HOME/.cargo/env" +for _ in ${HOME}/.bashrc.d/manager/*; do + if [[ $_ == *.@(bash|sh) && -r $_ ]]; then + echo "$_" + source "$_" + fi +done + +if [[ -n "$(type -t mise-activate)" ]]; then + mise-activate fi -# rust cargo end + +for _ in ${HOME}/.bashrc.d/*; do + echo "$_" + if [[ $_ == *.@(bash|sh) && -r $_ ]]; then + source "$_" + fi +done diff --git a/gentoo_portage/package.license b/gentoo_portage/package.license index 60d5580..eb309ed 100644 --- a/gentoo_portage/package.license +++ b/gentoo_portage/package.license @@ -1,4 +1,4 @@ -app-arch/p7zip unRAR +app-arch/7zip unRAR app-editors/cursor cursor app-editors/vscode Microsoft-vscode app-emulation/virtualbox-bin PUEL diff --git a/gentoo_portage/package.use b/gentoo_portage/package.use index 7cef1a7..cc72c26 100644 --- a/gentoo_portage/package.use +++ b/gentoo_portage/package.use @@ -21,8 +21,8 @@ x11-terms/rxvt-unicode 256-color blink fading-colors pixbuf unicode3 app-editors/emacs cairo dynamic-loading gtk gui gzip-el harfbuzz json libxml2 sound source sqlite tree-sitter wide-int app-emacs/emacs-common gui -# p7zip -app-arch/p7zip rar -wxwidgets +# 7zip +app-arch/7zip rar # vim app-editors/vim lua python diff --git a/gentoo_portage/repos.conf b/gentoo_portage/repos.conf index 6337ff6..8de7549 100644 --- a/gentoo_portage/repos.conf +++ b/gentoo_portage/repos.conf @@ -33,7 +33,7 @@ sync-webrsync-verify-signature = yes [gentoo-zh] location = /var/db/repos/gentoo-zh sync-type = git -sync-uri = https://github.com/microcai/gentoo-zh.git +sync-uri = https://github.com/gentoo-zh/overlay.git auto-sync = yes [gentoo-zedhugh] diff --git a/note/account.org.gpg b/note/account.org.gpg index 9abc1cc..115f1a2 100644 Binary files a/note/account.org.gpg and b/note/account.org.gpg differ