change === and >>> to ::*** and ***::
This commit is contained in:
		
							parent
							
								
									c063e02f1e
								
							
						
					
					
						commit
						edb1f40cf1
					
				| @ -1,21 +1,21 @@ | ||||
| while [ ! "$TARGET_HOSTNAME" ] | ||||
| do | ||||
|   echo "#<<< DNS name such as www.example.com: " | ||||
|   read -p "#>>> " TARGET_HOSTNAME | ||||
|   echo "::*** DNS name such as www.example.com: " | ||||
|   read -p "***:: " TARGET_HOSTNAME | ||||
| done | ||||
| echo "*** -d $TARGET_HOSTNAME" | ||||
| echo | ||||
| 
 | ||||
| while [ ! "$ISSUEMODE" ] | ||||
| do | ||||
|   echo "#<<< Issue mode:" | ||||
|   echo "::*** Issue mode:" | ||||
|   echo "    [s] for standalone" | ||||
|   echo "    [w] for webroot" | ||||
|   echo "    [n] for nginx" | ||||
|   echo "    [a] for apache" | ||||
|   echo "    [c] for challenge-alias" | ||||
|   echo "    [d] for dnsapi" | ||||
|   read -p "#>>> " ISSUEMODE | ||||
|   read -p "***:: " ISSUEMODE | ||||
|   if [ "$ISSUEMODE" == 's' ] | ||||
|   then  | ||||
|     ISSUEPARM="--standalone" | ||||
| @ -45,8 +45,8 @@ if [ "$ISSUEMODE" == 'd' ] | ||||
| then | ||||
|   while [ ! "$DNSAPI" ] | ||||
|   do | ||||
|     echo "#<<< DNS API provider, [cf] for CloudFlare, [dp] for DNSPod/腾讯云, [ali] for Aliyun/阿里云:" | ||||
|     read -p "#>>> " DNSAPI_PROVIDER | ||||
|     echo "::*** DNS API provider, [cf] for CloudFlare, [dp] for DNSPod/腾讯云, [ali] for Aliyun/阿里云:" | ||||
|     read -p "***:: " DNSAPI_PROVIDER | ||||
|     if [ "$DNSAPI_PROVIDER" == 'cf' ] | ||||
|     then | ||||
|       DNSAPI='dns_cf' | ||||
| @ -70,25 +70,25 @@ echo "***" | ||||
| ~/.acme.sh/acme.sh --issue -d $TARGET_HOSTNAME $ISSUEPARM $DNSAPI | ||||
| echo | ||||
| 
 | ||||
| echo "#<<< Install certificates? [n] for no, [anything else] to install: " | ||||
| read -p "#>>> " INSTALL_CERT | ||||
| echo "::*** Install certificates? [n] for no, [anything else] to install: " | ||||
| read -p "***:: " INSTALL_CERT | ||||
| if [ "$INSTALL_CERT" != 'n' ] | ||||
| then | ||||
|   echo | ||||
|   while [ ! "$KEY_FILE_PATH" ] | ||||
|   do | ||||
|     echo "#<<< Deploy key file to: " | ||||
|     read -p "#>>> " KEY_FILE_PATH | ||||
|     echo "::*** Deploy key file to: " | ||||
|     read -p "***:: " KEY_FILE_PATH | ||||
|   done | ||||
|   echo | ||||
|   while [ ! "$FULLCHAIN_FILE_PATH" ] | ||||
|   do | ||||
|     echo "#<<< Deploy fullchain file to: " | ||||
|     read -p "#>>> " FULLCHAIN_FILE_PATH | ||||
|     echo "::*** Deploy fullchain file to: " | ||||
|     read -p "***:: " FULLCHAIN_FILE_PATH | ||||
|   done | ||||
|   echo  | ||||
|   echo "#<<< Set reload command, [leave blank] for default to 'service nginx force-reload'" | ||||
|   read -p "#>>> " RELOADCMD | ||||
|   echo "::*** Set reload command, [leave blank] for default to 'service nginx force-reload'" | ||||
|   read -p "***:: " RELOADCMD | ||||
|   if [ ! "$RELOADCMD" ] | ||||
|   then | ||||
|     RELOADCMD="service nginx force-reload" | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| echo "#<<< Enter Pi precision to calculate (leave blank for default to 5000): " | ||||
| read -p "#>>> " precision | ||||
| echo "::*** Enter Pi precision to calculate (leave blank for default to 5000): " | ||||
| read -p "***:: " precision | ||||
| if [ ! $precision ]; then | ||||
|   precision=5000 | ||||
| fi | ||||
|  | ||||
| @ -5,8 +5,8 @@ echo | ||||
| NewUser=$1 | ||||
| while [ ! "$NewUser" ] | ||||
| do | ||||
|   echo "#<<< To add a new user of name:" | ||||
|   read -p "#>>> " NewUser | ||||
|   echo "::*** To add a new user of name:" | ||||
|   read -p "***:: " NewUser | ||||
| done | ||||
| 
 | ||||
| useradd $NewUser | ||||
| @ -22,8 +22,8 @@ sed -i "s|/home/$NewUser:/bin/sh$|/home/$NewUser:/bin/bash|g" /etc/passwd | ||||
| # Debian 9 default to empty | ||||
| sed -i "s|/home/$NewUser:$|/home/$NewUser:/bin/bash|g" /etc/passwd | ||||
| 
 | ||||
| echo "#<<< Allow the new user [[$NewUser]] to sudo without password? [y] for yes, [anything else] for no" | ||||
| read -p "#>>> " AllowSudo | ||||
| echo "::*** Allow the new user [[$NewUser]] to sudo without password? [y] for yes, [anything else] for no" | ||||
| read -p "***:: " AllowSudo | ||||
| if [ "$AllowSudo" = "y" ] | ||||
| then | ||||
|   #usermod -a -G sudo $NewUser # Add to sudo group # Option 1: add user to %sudo group | ||||
|  | ||||
| @ -3,8 +3,8 @@ | ||||
| echo "Thanks https://github.com/bohanyang/debi" | ||||
| echo | ||||
| 
 | ||||
| echo "#<<< Enter debian version [8,9,10,11] or [leave blank] for 11" | ||||
| read -p "#>>> " DEBIAN_VERSION | ||||
| echo "::*** Enter debian version [8,9,10,11] or [leave blank] for 11" | ||||
| read -p "***:: " DEBIAN_VERSION | ||||
| if [ -z "${DEBIAN_VERSION}" ] | ||||
| then | ||||
|   DEBIAN_VERSION=11 | ||||
| @ -23,8 +23,8 @@ ARCH=`dpkg --print-architecture` | ||||
| #   ARCH=amd64 | ||||
| # fi | ||||
| 
 | ||||
| echo "#<<< Enter presets to download from [cdn, aws, china] or [leave blank] for cdn" | ||||
| read -p "#>>> " PRESET | ||||
| echo "::*** Enter presets to download from [cdn, aws, china] or [leave blank] for cdn" | ||||
| read -p "***:: " PRESET | ||||
| if [ -z "${PRESET}" ] | ||||
| then | ||||
|   PRESET=cdn | ||||
| @ -35,11 +35,11 @@ sudo chmod a+rx debi.sh | ||||
| sudo ./debi.sh --version $DEBIAN_VERSION --architecture `dpkg --print-architecture` --user root --$PRESET # --architecture 可参略或者[amd64(默认), i386, arm64, armhf];--password 可省略,则脚本启动后会问你要密码 | ||||
| 
 | ||||
| echo | ||||
| echo "#<<< Last chance!!! Enter [r] to reboot to new system, or [anything else] to cancel all changes" | ||||
| read -p "#>>> " LAST | ||||
| echo "::*** Last chance!!! Enter [r] to reboot to new system, or [anything else] to cancel all changes" | ||||
| read -p "***:: " LAST | ||||
| if [ 'r' = "$LAST" ] | ||||
| then  | ||||
|   echo "#<<< Shutdown now, wait for about 30 minutes (the project's github says 30 seconds), then try to ssh" | ||||
|   echo "::*** Shutdown now, wait for about 30 minutes (the project's github says 30 seconds), then try to ssh" | ||||
|   sudo shutdown -r now | ||||
| else | ||||
|   sudo rm -rf debi.sh /etc/default/grub.d/zz-debi.cfg /boot/debian-* && { sudo update-grub || sudo grub2-mkconfig -o /boot/grub2/grub.cfg; } | ||||
|  | ||||
| @ -11,17 +11,17 @@ else | ||||
|   NewUser=adot | ||||
| fi | ||||
| 
 | ||||
| echo "#<<< Installing basic tools" | ||||
| echo "::*** Installing basic tools" | ||||
| apt update | ||||
| apt install -y emacs git wget curl screen sudo automake rsync net-tools dnsutils gcc g++ make python3 jq | ||||
| # Debian 12.0 has no python package, However the following packages replace it:  python-is-python3 2to3 | ||||
| echo | ||||
| 
 | ||||
| echo "#<<< Making dir /faronear/" | ||||
| echo "::*** Making dir /faronear/" | ||||
| mkdir -p /faronear/ | ||||
| echo | ||||
| 
 | ||||
| echo "#<<< Git cloning to /faronear/sysconfig" | ||||
| echo "::*** Git cloning to /faronear/sysconfig" | ||||
| git config --global credential.helper cache | ||||
| if [ ! -d "/faronear/sysconfig" ] | ||||
| then | ||||
| @ -30,19 +30,19 @@ then | ||||
| fi | ||||
| echo | ||||
| 
 | ||||
| echo "#<<< Configure root home" | ||||
| echo "::*** Configure root home" | ||||
| source /faronear/sysconfig/nixhome-config.sh /faronear/sysconfig/nixhome root | ||||
| echo | ||||
| 
 | ||||
| echo "#<<< Change root password? [y] for yes, [anything else] for omit:" | ||||
| read -p "#>>> " ChangeRootPassword | ||||
| echo "::*** Change root password? [y] for yes, [anything else] for omit:" | ||||
| read -p "***:: " ChangeRootPassword | ||||
| if [ "$ChangeRootPassword" == 'y' ] | ||||
| then | ||||
|   passwd | ||||
| fi | ||||
| echo  | ||||
| 
 | ||||
| echo "#<<< Configure /etc/sudoers to includedir /etc/sudoers.d" | ||||
| echo "::*** Configure /etc/sudoers to includedir /etc/sudoers.d" | ||||
| #sed -i "s|%sudo\s\+ALL=(ALL:ALL)\sALL|%sudo\tALL=(ALL:ALL) NOPASSWD:ALL|g" /etc/sudoers  # allow all users in %sudo group to sudo without password | ||||
| DebianVersionMain=`cat /etc/debian_version | sed -r 's/^([0-9]+)\..*$/\1/'` | ||||
| if [ "$DebianVersionMain" == '10' ] | ||||
| @ -58,16 +58,16 @@ echo | ||||
| 
 | ||||
| if [ -e /etc/ssh/sshd_config ] | ||||
| then | ||||
|   echo "#<<< Deny root login: PermitRootLogin no" | ||||
|   echo "::*** Deny root login: PermitRootLogin no" | ||||
|   sed -i "s|PermitRootLogin |#PermitRootLogin |g" /etc/ssh/sshd_config && echo 'PermitRootLogin no' >> /etc/ssh/sshd_config | ||||
|   echo "#<<< Allow password login: PasswordAuthentication yes" | ||||
|   echo "::*** Allow password login: PasswordAuthentication yes" | ||||
|   sed -i "s|PasswordAuthentication |#PasswordAuthentication |g" /etc/ssh/sshd_config && echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config | ||||
|   service sshd restart | ||||
|   echo | ||||
| fi | ||||
| 
 | ||||
| echo "#<<< Set [new hostname] or [leave blank] for no change" | ||||
| read -p "#>>> " NewHostname | ||||
| echo "::*** Set [new hostname] or [leave blank] for no change" | ||||
| read -p "***:: " NewHostname | ||||
| if [ $NewHostname ] | ||||
| then | ||||
|   sed -i "s|\b`hostname`\b|$NewHostname|g" /etc/hosts # echo "127.0.0.1 $NewHostname" >> /etc/hosts | ||||
| @ -77,7 +77,7 @@ else | ||||
| fi | ||||
| echo | ||||
| 
 | ||||
| echo "#<<< Configure autostart" | ||||
| echo "::*** Configure autostart" | ||||
| if [ -f /etc/rc.local ] | ||||
| then | ||||
|   # 在腾讯云的 Debian 11.1 里,/etc/rc.local 第一行是 "#!bin/bash",应当是错误的。 | ||||
| @ -93,24 +93,24 @@ chmod +x /faronear/autostart.sh | ||||
| echo 'Autostart is set to /faronear/autostart.sh. Run "systemctl start/stop/status rc-local" to manage it.' | ||||
| echo | ||||
| 
 | ||||
| echo "#<<< Configure locales: [y] for yes, [anything else] for no change:" | ||||
| read -p "#>>> " ConfigLocales | ||||
| echo "::*** Configure locales: [y] for yes, [anything else] for no change:" | ||||
| read -p "***:: " ConfigLocales | ||||
| if [ "$ConfigLocales" == 'y' ] | ||||
| then | ||||
|   dpkg-reconfigure locales | ||||
| fi | ||||
| echo | ||||
| 
 | ||||
| echo "#<<< Add a new user [[$NewUser]]? [y] for yes, [anything else] for no change:" | ||||
| read -p "#>>> " AddNewUser | ||||
| echo "::*** Add a new user [[$NewUser]]? [y] for yes, [anything else] for no change:" | ||||
| read -p "***:: " AddNewUser | ||||
| if [ "$AddNewUser" == 'y' ] | ||||
| then | ||||
|   source /faronear/sysconfig/debian-add-user.sh $NewUser | ||||
|   source /faronear/sysconfig/nixhome-config.sh /faronear/sysconfig/nixhome $NewUser | ||||
| 
 | ||||
|   echo | ||||
|   echo "#<<< Enable xfce autologin [/etc/lightdm/lightdm.conf]: [y] for autologin as [[$NewUser]] or [anything else] for no change:" | ||||
|   read -p "#>>> " XfceAutologin | ||||
|   echo "::*** Enable xfce autologin [/etc/lightdm/lightdm.conf]: [y] for autologin as [[$NewUser]] or [anything else] for no change:" | ||||
|   read -p "***:: " XfceAutologin | ||||
|   if [ "$XfceAutologin" == "y" ] | ||||
|   then | ||||
|     sed -i "s/^.*autologin-user=.*$/autologin-user=$NewUser/g" /etc/lightdm/lightdm.conf | ||||
| @ -122,4 +122,4 @@ then | ||||
| fi | ||||
| echo | ||||
| 
 | ||||
| echo "#<<< Debian System Setup Completed." | ||||
| echo "::*** Debian System Setup Completed." | ||||
|  | ||||
| @ -1,30 +1,30 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| echo "#>>> cat /etc/issue" | ||||
| echo "::*** cat /etc/issue" | ||||
| cat /etc/issue | ||||
| echo | ||||
| 
 | ||||
| echo "#>>> cat /etc/debian_version" | ||||
| echo "::*** cat /etc/debian_version" | ||||
| cat /etc/debian_version | ||||
| echo | ||||
| 
 | ||||
| echo "#>>> cat /etc/os-release" | ||||
| echo "::*** cat /etc/os-release" | ||||
| cat /etc/os-release | ||||
| echo | ||||
| 
 | ||||
| echo "#>>> cat /etc/cpuinfo" | ||||
| echo "::*** cat /etc/cpuinfo" | ||||
| cat /etc/cpuinfo | ||||
| echo | ||||
| 
 | ||||
| # echo "#>>> lsb-release" | ||||
| # echo "::*** lsb-release" | ||||
| # apt install lsb-release | ||||
| # lsb-release -a | ||||
| # echo | ||||
| 
 | ||||
| echo "#>>> hostnamectl" | ||||
| echo "::*** hostnamectl" | ||||
| hostnamectl | ||||
| echo | ||||
| 
 | ||||
| echo "#>>> uname -a" | ||||
| echo "::*** uname -a" | ||||
| uname -a | ||||
| echo | ||||
| @ -1,10 +1,10 @@ | ||||
| echo "#<<< Add a non-root user to run docker" | ||||
| echo "::*** Add a non-root user to run docker" | ||||
| if [ "$1" ] | ||||
| then | ||||
|   DOCKERUSER=$1 | ||||
| else | ||||
|   echo "Enter the [user name] or [leave blank] for default to '`whoami`'" | ||||
|   read -p "#>>> " DOCKERUSER | ||||
|   read -p "***:: " DOCKERUSER | ||||
|   if [ ! "$DOCKERUSER" ] | ||||
|   then | ||||
|     DOCKERUSER=`whoami` | ||||
|  | ||||
| @ -6,9 +6,9 @@ | ||||
| # 安装自带版本 apt install docker.io && apt install docker-compose | ||||
| # sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin | ||||
| 
 | ||||
| echo "#<<< Option 1: Install docker with latest official repositories, Option 2: Install docker with default (maybe outdated) linux repositories (sudo apt install docker.io && sudo apt install docker-compose && sudo snap install docker)" | ||||
| echo "#<<< Choose docker source: [a] 阿里云, [z] 中科大, [leave blank] for default"  | ||||
| read -p "#>>> " DOCKER_SOURCE | ||||
| echo "::*** Option 1: Install docker with latest official repositories, Option 2: Install docker with default (maybe outdated) linux repositories (sudo apt install docker.io && sudo apt install docker-compose && sudo snap install docker)" | ||||
| echo "::*** Choose docker source: [a] 阿里云, [z] 中科大, [leave blank] for default"  | ||||
| read -p "***:: " DOCKER_SOURCE | ||||
| if [ "$DOCKER_SOURCE" = 'a' ] | ||||
| then | ||||
|   GPG_URL=http://mirrors.aliyun.com/docker-ce/linux/debian/gpg | ||||
| @ -49,8 +49,8 @@ docker compose version | ||||
| # sudo curl -L $COMPOSE_URL/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose | ||||
| # sudo chmod +x /usr/local/bin/docker-compose | ||||
| 
 | ||||
| echo "#<<< Enter [y] to 配置中国加速镜像源 /etc/docker/daemon.json, [anything else] for no mirror:" | ||||
| read -p "#>>> "  DOCKER_MIRROR | ||||
| echo "::*** Enter [y] to 配置中国加速镜像源 /etc/docker/daemon.json, [anything else] for no mirror:" | ||||
| read -p "***:: "  DOCKER_MIRROR | ||||
| if [ "$DOCKER_MIRROR" = 'y' ] | ||||
| then | ||||
|   echo '{  "registry-mirrors": [' > /etc/docker/daemon.json | ||||
| @ -62,8 +62,8 @@ then | ||||
|   echo '] }' >> /etc/docker/daemon.json | ||||
| fi | ||||
| 
 | ||||
| echo "#<<< 启动docker服务?[y] for yes, [anything else] for no" | ||||
| read -p "#>>> " StartDockerDaemon | ||||
| echo "::*** 启动docker服务?[y] for yes, [anything else] for no" | ||||
| read -p "***:: " StartDockerDaemon | ||||
| if [ "$StartDockerDaemon" = 'y' ] | ||||
| then | ||||
|   sudo systemctl enable docker # 开机启动 | ||||
|  | ||||
| @ -9,8 +9,8 @@ echo | ||||
| IMAGE=$1 | ||||
| while [ ! "$IMAGE" ]  | ||||
| do | ||||
|   echo "#<<< Enter [image name]:" | ||||
|   read -p "#>>> " IMAGE | ||||
|   echo "::*** Enter [image name]:" | ||||
|   read -p "***:: " IMAGE | ||||
|   echo | ||||
| done | ||||
| 
 | ||||
| @ -21,8 +21,8 @@ then | ||||
|   then | ||||
|     OWNER="library" | ||||
|   else | ||||
|     echo "#<<< Enter [owner name] or [empty] for default 'library':" | ||||
|     read -p "#>>> " OWNER | ||||
|     echo "::*** Enter [owner name] or [empty] for default 'library':" | ||||
|     read -p "***:: " OWNER | ||||
|     if [ ! "$OWNER" ] | ||||
|     then | ||||
|       OWNER="library" | ||||
| @ -31,7 +31,7 @@ then | ||||
| fi | ||||
| 
 | ||||
| echo | ||||
| echo "#<<< Searching $OWNER/$IMAGE ......" | ||||
| echo "::*** Searching $OWNER/$IMAGE ......" | ||||
| echo | ||||
| 
 | ||||
| page_size=100 | ||||
|  | ||||
| @ -23,8 +23,8 @@ else | ||||
|   echo "  sh  : $sh" | ||||
|   echo "  wx  : $wx" | ||||
|   echo | ||||
|   echo "#<<< Enter target (leave blank to specify host/user/pwd):" | ||||
|   read -p "#>>> " TARGET | ||||
|   echo "::*** Enter target (leave blank to specify host/user/pwd):" | ||||
|   read -p "***:: " TARGET | ||||
|   if [ ! $TARGET ] | ||||
|   then | ||||
|     TARGET=other | ||||
|  | ||||
| @ -3,39 +3,39 @@ echo "find \$FOLDER -mindepth \$MINDEPTH -maxdepth \$MAXDEPTH -type d_f_l -name | ||||
| echo "***************************************" | ||||
| 
 | ||||
| echo "To find in which path? Enter [root path] or [leave blank] for the current path [[`pwd`]]:" | ||||
| read -p "path #>>> " FIND_FOLDER | ||||
| read -p "path ***:: " FIND_FOLDER | ||||
| if [ ! "$FIND_FOLDER" ] | ||||
| then | ||||
|   FIND_FOLDER=`pwd` | ||||
| fi | ||||
| 
 | ||||
| read -p "mindepth #>>> " MINDEPTH | ||||
| read -p "mindepth ***:: " MINDEPTH | ||||
| if [ "$MINDEPTH" ] | ||||
| then | ||||
|   MINDEPTH_CLAUSE="-mindepth $MINDEPTH" | ||||
| fi | ||||
| read -p "maxdepth #>>> " MAXDEPTH | ||||
| read -p "maxdepth ***:: " MAXDEPTH | ||||
| if [ "$MAXDEPTH" ] | ||||
| then | ||||
|   MAXDEPTH_CLAUSE="-maxdepth $MAXDEPTH" | ||||
| fi | ||||
| 
 | ||||
| echo "To find file or directory? [f] for file, [d] for directory, [l] for link, [anything else] for all:" | ||||
| read -p "type #>>> " FIND_TYPE | ||||
| read -p "type ***:: " FIND_TYPE | ||||
| if [ "$FIND_TYPE" = 'f' ] || [ "$FIND_TYPE" = 'd' ] || [ "$FIND_TYPE" = 'l' ] | ||||
| then | ||||
|   FIND_TYPE_CLAUSE="-type $FIND_TYPE" | ||||
| fi | ||||
| 
 | ||||
| echo "To match pattern: [regex pattern] (e.g. '._*', '.*.js') or or [leave blank] for all:" | ||||
| read -p "#>>> " FIND_PATTERN | ||||
| read -p "***:: " FIND_PATTERN | ||||
| if [ ! "$FIND_PATTERN" ] | ||||
| then | ||||
|   FIND_PATTERN="*" | ||||
| fi | ||||
| 
 | ||||
| echo "To do something on each: [command line] or [leave blank] for 'echo':" | ||||
| read -p "pattern #>>> " FIND_ACTION | ||||
| read -p "pattern ***:: " FIND_ACTION | ||||
| if [ ! "$FIND_ACTION" ] | ||||
| then | ||||
|   FIND_ACTION='echo' | ||||
|  | ||||
| @ -4,8 +4,8 @@ if [ $1 ] | ||||
| then | ||||
|   VERSION=$1 | ||||
| else | ||||
|   echo "#<<< Install geth version of \n [version number] for example 1.10.26 \n [leave blank] for the latest version" | ||||
|   read -p "#>>> " VERSION | ||||
|   echo "::*** Install geth version of \n [version number] for example 1.10.26 \n [leave blank] for the latest version" | ||||
|   read -p "***:: " VERSION | ||||
| fi | ||||
| 
 | ||||
| if [ "$(uname)" = "Linux" ] | ||||
| @ -27,8 +27,8 @@ fi | ||||
| 
 | ||||
| OS=`uname | tr 'A-Z' 'a-z'` | ||||
| 
 | ||||
| echo "#<<< Install geth:[b] for 二进制, [s] for 源代码,[anything else or leave blank] for no change" | ||||
| read -p "#>>> " BINARY_OR_SOURCE | ||||
| echo "::*** Install geth:[b] for 二进制, [s] for 源代码,[anything else or leave blank] for no change" | ||||
| read -p "***:: " BINARY_OR_SOURCE | ||||
| if [ "$BINARY_OR_SOURCE" == 'b' ] | ||||
| then | ||||
|   echo "--- Extracting download link with correct hash from https://geth.ethereum.org/downloads" | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| echo "#<<< Set [datadir] name, leave [blank] for default 'pex-data-poa'(可以尚未存在):" | ||||
| read -p "#>>> " DATADIR | ||||
| echo "::*** Set [datadir] name, leave [blank] for default 'pex-data-poa'(可以尚未存在):" | ||||
| read -p "***:: " DATADIR | ||||
| if [ ! "$DATADIR" ] | ||||
| then | ||||
|   DATADIR=chain-poa | ||||
| @ -9,8 +9,8 @@ fi | ||||
| echo "*** DATADIR = $DATADIR " | ||||
| echo "" | ||||
| 
 | ||||
| echo "#<<< Init accounts: [y] for yes, [anything else] for no change" | ||||
| read -p "#>>> " INIT_ACCOUNTS | ||||
| echo "::*** Init accounts: [y] for yes, [anything else] for no change" | ||||
| read -p "***:: " INIT_ACCOUNTS | ||||
| if [ $INIT_ACCOUNTS ] && [ $INIT_ACCOUNTS == 'y' ] | ||||
| then | ||||
|   echo "--- 生成新账户,自动存放在 ./$DATADIR/keystore/" | ||||
| @ -24,8 +24,8 @@ else | ||||
| fi | ||||
| echo "" | ||||
| 
 | ||||
| echo "#<<< Init chain from genesis-$DATADIR.json: [y] for yes, [anything else] for no change" | ||||
| read -p "#>>> " INIT_CHAIN | ||||
| echo "::*** Init chain from genesis-$DATADIR.json: [y] for yes, [anything else] for no change" | ||||
| read -p "***:: " INIT_CHAIN | ||||
| if [ $INIT_CHAIN ] && [ $INIT_CHAIN == 'y' ] | ||||
| then | ||||
|   echo "--- 初始化链上数据,存放在 ./$DATADIR/geth/" | ||||
|  | ||||
							
								
								
									
										10
									
								
								geth-run.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								geth-run.sh
									
									
									
									
									
								
							| @ -4,8 +4,8 @@ DATADIR=$1 | ||||
| 
 | ||||
| while [ ! "$DATADIR" ] || [ ! -d "./$DATADIR" ] | ||||
| do | ||||
|   echo "#<<< Set [datadir] name, leave [blank] for default 'pex-data-poa'" | ||||
|   read -p "#>>> " DATADIR | ||||
|   echo "::*** Set [datadir] name, leave [blank] for default 'pex-data-poa'" | ||||
|   read -p "***:: " DATADIR | ||||
|   if [ ! "$DATADIR" ] | ||||
|   then | ||||
|     DATADIR=chain-poa | ||||
| @ -15,15 +15,15 @@ echo "" | ||||
| 
 | ||||
| 
 | ||||
| echo "Run geth in pm2? [y] for yes, [anything else] for raw geth:" | ||||
| read -p "#>>> " RUNPM2 | ||||
| read -p "***:: " RUNPM2 | ||||
| echo "--- Creating ./$DATADIR/geth.ipc ..." | ||||
| # http.addr 默认为 127.0.0.1 => 无法从远处连接。要用 0.0.0.0 才能从远处用 IP 连接。 | ||||
| # shh 是 whisper 协议,好像要先启动 websocket 接口才能启用。 | ||||
| 
 | ||||
| while [ ! "$KEYCODE" ] | ||||
| do | ||||
|   echo "#<<< Define chain keycode, for instance '882' for tuc chain:" | ||||
|   read -p "#>>> " KEYCODE | ||||
|   echo "::*** Define chain keycode, for instance '882' for tuc chain:" | ||||
|   read -p "***:: " KEYCODE | ||||
| done | ||||
| 
 | ||||
| if [ "$RUNPM2" == 'y' ] | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
| 
 | ||||
| echo "---------------------------------------------" | ||||
| echo "User Name (leave blank for no change)"  | ||||
| read -p "#>>> " UserName | ||||
| read -p "***:: " UserName | ||||
| if [ $UserName ] | ||||
| then | ||||
|   echo "git config --global user.name $UserName" | ||||
| @ -11,7 +11,7 @@ fi | ||||
| 
 | ||||
| echo "---------------------------------------------" | ||||
| echo "User Email (leave blank for no change)"  | ||||
| read -p "#>>> " UserEmail | ||||
| read -p "***:: " UserEmail | ||||
| if [ $UserEmail ] | ||||
| then | ||||
|   echo "git config --global user.email $UserEmail" | ||||
| @ -21,7 +21,7 @@ fi | ||||
| echo "---------------------------------------------" | ||||
| echo "如果 git 远程服务器的 ssl 证书过期,或者使用了自颁发的证书,连接时会出现验证错误 Cannot verify local issuer" | ||||
| echo "Verify ssl? (true or false, blank for no change)"  | ||||
| read -p "#>>> " HttpSslVerify | ||||
| read -p "***:: " HttpSslVerify | ||||
| if [ $HttpSslVerify ] | ||||
| then | ||||
|   echo "git config --global http.sslVerify $HttpSslVerify" | ||||
| @ -30,7 +30,7 @@ fi | ||||
| 
 | ||||
| echo "---------------------------------------------" | ||||
| echo "Store credential in cache or store? (leave blank for no change)"  | ||||
| read -p "#>>> " CredentialHelper | ||||
| read -p "***:: " CredentialHelper | ||||
| if [ $CredentialHelper ] | ||||
| then | ||||
|   echo "git config --global credential.helper $CredentialHelper" | ||||
| @ -39,7 +39,7 @@ fi | ||||
| 
 | ||||
| echo "---------------------------------------------" | ||||
| echo "Store pull rebase to true or false? (leave blank for no change)"  | ||||
| read -p "#>>> " PullRebase | ||||
| read -p "***:: " PullRebase | ||||
| if [ $PullRebase ] | ||||
| then | ||||
|   echo "git config --global pull.rebase $PullRebase" | ||||
| @ -48,7 +48,7 @@ fi | ||||
| 
 | ||||
| echo "---------------------------------------------" | ||||
| echo "Path to global gitignore file? (For example ~/.gitignore.global.txt, leave blank for no change)" | ||||
| read -p "#>>> " ExcludesFile | ||||
| read -p "***:: " ExcludesFile | ||||
| if [ $ExcludesFile ] | ||||
| then | ||||
|   echo "git config --global core.excludesfile $ExcludesFile" | ||||
| @ -59,7 +59,7 @@ fi | ||||
| 
 | ||||
| echo "---------------------------------------------" | ||||
| echo "Set default branch since git 2.28 to master or main? (leave blank for no change)" | ||||
| read -p "#>>> " DefaultBranch | ||||
| read -p "***:: " DefaultBranch | ||||
| if [ $DefaultBranch ] | ||||
| then | ||||
|   echo "git config --global init.defaultbranch $DefaultBranch" | ||||
|  | ||||
| @ -7,7 +7,7 @@ set ROOTPATH= | ||||
|   set ROOTPATH=%1 | ||||
| ) else ( | ||||
|     echo; | ||||
|     echo #<<< Enter [root path] or [leave blank] for default [[%CD%]] to start tree search for .gitignore files | ||||
|     echo ::*** Enter [root path] or [leave blank] for default [[%CD%]] to start tree search for .gitignore files | ||||
|     set /p ROOTPATH=">>> " | ||||
|     echo; | ||||
|     if "" == "%ROOTPATH%" ( | ||||
| @ -23,7 +23,7 @@ if not exist "%ROOTPATH%" ( | ||||
|   echo √√√ ROOTPATH = [[%ROOTPATH%]] | ||||
| ) | ||||
| 
 | ||||
| echo #<<< Enter [path to .gitignore.global.txt] or [leave blank] for default [[https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/.gitignore.global.txt]] | ||||
| echo ::*** Enter [path to .gitignore.global.txt] or [leave blank] for default [[https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/.gitignore.global.txt]] | ||||
| set /p IGNOREPATH=">>> " | ||||
| echo; | ||||
| if "" == "%IGNOREPATH%" ( | ||||
| @ -39,7 +39,7 @@ if "" == "%IGNOREPATH%" ( | ||||
| ) | ||||
| 
 | ||||
| pushd %ROOTPATH% | ||||
| echo #<<< Starting from [[%CD%]] | ||||
| echo ::*** Starting from [[%CD%]] | ||||
| echo; | ||||
| 
 | ||||
| for /d /r %%r in (*) do ( | ||||
|  | ||||
| @ -8,8 +8,8 @@ if [ -d "$1" ] | ||||
| then | ||||
|   ROOTPATH=$1 | ||||
| else | ||||
|   echo "#<<< Enter [root path] or [leave blank] for default [[`pwd`]] to start tree search for git repositories" | ||||
|   read -p "#>>> " ROOTPATH | ||||
|   echo "::*** Enter [root path] or [leave blank] for default [[`pwd`]] to start tree search for git repositories" | ||||
|   read -p "***:: " ROOTPATH | ||||
|   if [ "$ROOTPATH" ] | ||||
|   then | ||||
|     ROOTPATH=$(realpath $ROOTPATH) | ||||
| @ -26,8 +26,8 @@ else | ||||
| fi | ||||
| echo "" | ||||
| 
 | ||||
| echo "#<<< Enter [path to .gitignore.global.txt] or [leave blank] for default [[https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/.gitignore.global.txt]]"  | ||||
| read -p "#>>> " IGNOREPATH | ||||
| echo "::*** Enter [path to .gitignore.global.txt] or [leave blank] for default [[https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/.gitignore.global.txt]]"  | ||||
| read -p "***:: " IGNOREPATH | ||||
| if [ "$IGNOREPATH" ] | ||||
| then | ||||
|   if [ -d "$IGNOREPATH" ] | ||||
| @ -46,8 +46,8 @@ else | ||||
| fi | ||||
| echo "" | ||||
| 
 | ||||
| echo "#<<< Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "#>>> " YESNO | ||||
| echo "::*** Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "***:: " YESNO | ||||
| if [ "$YESNO" != 'y' ] | ||||
| then | ||||
|   exit | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| echo #<<< Merge remote [.gitignore.global.txt] and local [.gitignore.local.txt] to [.gitignore] | ||||
| echo ::*** Merge remote [.gitignore.global.txt] and local [.gitignore.local.txt] to [.gitignore] | ||||
| curl -sSL https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/.gitignore.global.txt > .gitignore | ||||
| if [ -f .gitignore.local.txt ]; then cat .gitignore.local.txt >> .gitignore; fi; | ||||
| echo | ||||
|  | ||||
| @ -7,7 +7,7 @@ set ROOTPATH= | ||||
|   set ROOTPATH=%1 | ||||
| ) else ( | ||||
|   echo; | ||||
|   echo #<<< Enter [root path]> or [leave blank] for default to [[%CD%]] | ||||
|   echo ::*** Enter [root path]> or [leave blank] for default to [[%CD%]] | ||||
|   set /p ROOTPATH=">>> " | ||||
|   echo; | ||||
|   if "" == "%ROOTPATH%" ( | ||||
| @ -23,20 +23,20 @@ if not exist "%ROOTPATH%" ( | ||||
| ) | ||||
| 
 | ||||
| pushd %ROOTPATH% | ||||
| echo #<<< Starting from [[%CD%]] | ||||
| echo ::*** Starting from [[%CD%]] | ||||
| echo; | ||||
| 
 | ||||
| @ if "%2" == "hier" ( | ||||
|   @REM for /d %%d in (*) do ( pushd %%d & ( for /d %%d in (*) do ( if exist %%d/.git pushd %%d & echo ---  git pulling: %%d ... & git pull & popd ) ) & popd ) | ||||
|   for /d %%o in (*) do ( | ||||
|     @ if not "%%o" == ".vscode" ( | ||||
|       echo #<<<===== entering [[%ROOTPATH%\%%o]] | ||||
|       echo ::******** entering [[%ROOTPATH%\%%o]] | ||||
|       echo; | ||||
|       pushd %%o | ||||
|       for /d %%g in (*) do ( | ||||
|         if exist "%%g\.git" ( | ||||
|           pushd %%g | ||||
|           echo #<<<== git pulling [[%ROOTPATH%\%%o\%%g]] | ||||
|           echo ::***** git pulling [[%ROOTPATH%\%%o\%%g]] | ||||
|           git pull --all | ||||
|           echo; | ||||
|           popd | ||||
| @ -51,7 +51,7 @@ echo; | ||||
|     echo "%%r" | findstr "node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl" >NUL || ( | ||||
|       if exist "%%r\.git" ( | ||||
|         pushd "%%r" | ||||
|         echo #<<<== git pulling [[%%r]] | ||||
|         echo ::***** git pulling [[%%r]] | ||||
|         git pull --all | ||||
|         echo; | ||||
|         popd | ||||
|  | ||||
| @ -5,8 +5,8 @@ then | ||||
|   ROOTPATH=$1 | ||||
| else | ||||
|   echo "" | ||||
|   echo "#<<< Enter [root path] or [leave blank] for default to [[`pwd`]]" | ||||
|   read -p "#>>> " ROOTPATH | ||||
|   echo "::*** Enter [root path] or [leave blank] for default to [[`pwd`]]" | ||||
|   read -p "***:: " ROOTPATH | ||||
|   if [ "$ROOTPATH"] | ||||
|   then | ||||
|     ROOTPATH=`realpath $ROOTPATH` | ||||
| @ -23,8 +23,8 @@ else | ||||
| fi | ||||
| echo "" | ||||
| 
 | ||||
| echo "#<<< Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "#>>> " YESNO | ||||
| echo "::*** Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "***:: " YESNO | ||||
| if [ "$YESNO" != 'y' ] | ||||
| then | ||||
|   exit | ||||
| @ -39,7 +39,7 @@ then | ||||
|   # for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 | ||||
|   ls -F | grep '/$' | grep -v 'node_modules' | while read org ## 换用这种方法,可以成功过滤出含有空格的完整目录名 | ||||
|   do  | ||||
|     echo "#<<<===== entering [[$ROOTPATH/$org]]" | ||||
|     echo "::******** entering [[$ROOTPATH/$org]]" | ||||
|     echo "" | ||||
|     cd "$org"; | ||||
|     for repo in * ## for ??? in * 是分割成一个个目录名的,即使目录名含有空格 | ||||
|  | ||||
| @ -7,7 +7,7 @@ set ROOTPATH= | ||||
|   set ROOTPATH=%1 | ||||
| ) else ( | ||||
|   echo; | ||||
|   echo #<<< Enter [root path] or [leave blank] for default to [[%CD%]] | ||||
|   echo ::*** Enter [root path] or [leave blank] for default to [[%CD%]] | ||||
|   set /p ROOTPATH=">>> " | ||||
|   echo; | ||||
|   if "" == "%ROOTPATH%" ( | ||||
| @ -23,10 +23,10 @@ if not exist "%ROOTPATH%" ( | ||||
| ) | ||||
| 
 | ||||
| pushd %ROOTPATH% | ||||
| echo #<<< Starting from [[%CD%]] | ||||
| echo ::*** Starting from [[%CD%]] | ||||
| echo; | ||||
| 
 | ||||
| echo #<<< Enter [commit message] or [leave blank] for default to 'updated' | ||||
| echo ::*** Enter [commit message] or [leave blank] for default to 'updated' | ||||
| set /p COMMIT_MESSAGE=">>> " | ||||
| @ if "" == "%COMMIT_MESSAGE%" ( | ||||
|   set COMMIT_MESSAGE="updated" | ||||
| @ -37,7 +37,7 @@ echo; | ||||
|   @REM for /d %%d in (*) do ( pushd %%d & ( for /d %%d in (*) do ( if exist %%d/.git pushd %%d & echo ---  git pulling: %%d ... & git pull & popd ) ) & popd ) | ||||
|   for /d %%o in (*) do ( | ||||
|     @ if not "%%o" == ".vscode" ( | ||||
|       echo #<<<== entering [[%ROOTPATH%\%%o]] | ||||
|       echo ::***** entering [[%ROOTPATH%\%%o]] | ||||
|       echo; | ||||
|       pushd "%%o" | ||||
|       for /d %%g in (*) do ( | ||||
| @ -58,7 +58,7 @@ echo; | ||||
|     echo "%%r" | findstr "node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl" >NUL || ( | ||||
|       if exist "%%r\.git" ( | ||||
|         pushd "%%r" | ||||
|         echo #<<<== git commit and push [[%%r]] | ||||
|         echo ::***** git commit and push [[%%r]] | ||||
|         git add . && git commit -m "%COMMIT_MESSAGE%" && git push | ||||
|         echo; | ||||
|         popd | ||||
|  | ||||
| @ -5,8 +5,8 @@ then | ||||
|   ROOTPATH=$1 | ||||
| else | ||||
|   echo "" | ||||
|   echo "#<<< Enter [root path] or [leave blank] for default to [[`pwd`]]" | ||||
|   read -p "#>>> " ROOTPATH | ||||
|   echo "::*** Enter [root path] or [leave blank] for default to [[`pwd`]]" | ||||
|   read -p "***:: " ROOTPATH | ||||
|   if [ "$ROOTPATH"] | ||||
|   then | ||||
|     ROOTPATH=`realpath $ROOTPATH` | ||||
| @ -22,8 +22,8 @@ else | ||||
|   echo "√√√ ROOTPATH = [[$ROOTPATH]]" | ||||
| fi | ||||
| 
 | ||||
| echo "#<<< Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "#>>> " YESNO | ||||
| echo "::*** Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "***:: " YESNO | ||||
| if [ "$YESNO" != 'y' ] | ||||
| then | ||||
|   exit | ||||
| @ -33,23 +33,23 @@ pushd $ROOTPATH | ||||
| echo "*** Starting from [[`pwd`]] ***" | ||||
| echo "" | ||||
| 
 | ||||
| echo "#<<< Enter [commit message] or [leave blank] for default to 'updated'" | ||||
| read -p "#>>> " COMMIT_MESSAGE | ||||
| echo "::*** Enter [commit message] or [leave blank] for default to 'updated'" | ||||
| read -p "***:: " COMMIT_MESSAGE | ||||
| if [ ! "$COMMIT_MESSAGE" ] | ||||
| then | ||||
|   COMMIT_MESSAGE="Update" | ||||
| fi | ||||
| echo "" | ||||
| 
 | ||||
| echo "#<<< Enter [h] for hierarchical, [r] for recursive, [anything else] for listing" | ||||
| read -p "#>>> " ACTION_TYPE | ||||
| echo "::*** Enter [h] for hierarchical, [r] for recursive, [anything else] for listing" | ||||
| read -p "***:: " ACTION_TYPE | ||||
| 
 | ||||
| if [ "$ACTION_TYPE" == 'h' ] | ||||
| then | ||||
|   # for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 | ||||
|   ls -F | grep '/$' | grep -v 'node_modules' | while read org ## 换用这种方法,可以成功过滤出含有空格的完整目录名 | ||||
|   do  | ||||
|     echo "#<<<===== entering [[$ROOTPATH/$org]]" | ||||
|     echo "::******** entering [[$ROOTPATH/$org]]" | ||||
|     echo "" | ||||
|     cd "$org"; | ||||
|     for repo in * ## for ??? in * 是分割成一个个目录名的,即使目录名含有空格 | ||||
|  | ||||
| @ -7,7 +7,7 @@ set ROOTPATH= | ||||
|   set ROOTPATH=%1 | ||||
| ) else ( | ||||
|   echo; | ||||
|   echo #<<< Enter [root path]> or [leave blank] for default to [[%CD%]] | ||||
|   echo ::*** Enter [root path]> or [leave blank] for default to [[%CD%]] | ||||
|   set /p ROOTPATH=">>> " | ||||
|   echo; | ||||
|   if "" == "%ROOTPATH%" ( | ||||
| @ -23,7 +23,7 @@ if not exist %ROOTPATH% ( | ||||
| ) | ||||
| 
 | ||||
| pushd %ROOTPATH% | ||||
| echo #<<< Current path = [[%CD%]] | ||||
| echo ::*** Current path = [[%CD%]] | ||||
| 
 | ||||
| @REM for /d %%d in (*) do ( pushd %%d & ( for /d %%d in (*) do ( if exist %%d/.git pushd %%d & echo ---  git pulling: %%d ... & git pull & popd ) ) & popd ) | ||||
| 
 | ||||
|  | ||||
| @ -5,8 +5,8 @@ then | ||||
|   ROOTPATH=$1 | ||||
| else | ||||
|   echo "" | ||||
|   echo "#<<< Enter [root path] or [leave blank] for default to [[`pwd`]]" | ||||
|   read -p "#>>> " ROOTPATH | ||||
|   echo "::*** Enter [root path] or [leave blank] for default to [[`pwd`]]" | ||||
|   read -p "***:: " ROOTPATH | ||||
|   if [ "$ROOTPATH"] | ||||
|   then | ||||
|     ROOTPATH=`realpath $ROOTPATH` | ||||
| @ -22,8 +22,8 @@ else | ||||
|   echo "√√√ ROOTPATH = [[$ROOTPATH]]" | ||||
| fi | ||||
| 
 | ||||
| echo "#<<< Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "#>>> " YESNO | ||||
| echo "::*** Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "***:: " YESNO | ||||
| if [ "$YESNO" != 'y' ] | ||||
| then | ||||
|   exit | ||||
| @ -36,7 +36,7 @@ echo "" | ||||
| # for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 | ||||
| ls -F | grep '/$' | grep -v '=' | while read org ## 换用这种方法,可以成功过滤出含有空格的完整目录名 | ||||
| do  | ||||
|   echo "#<<<===== entering [[$ROOTPATH/$org]]" | ||||
|   echo "::******** entering [[$ROOTPATH/$org]]" | ||||
|   echo "" | ||||
|   cd "$org"; | ||||
|   for repo in * ## for ??? in * 是分割成一个个目录名的,即使目录名含有空格 | ||||
|  | ||||
| @ -3,22 +3,22 @@ | ||||
| echo "in [REPOROOT]/*/*/hooks/[pre-receive.d|post-receive.d|update.d]/gitea, path is hard-coded in full such as `/faronear/git/gitea/gitea hook --config=/faronear/git/gitea/custom/conf/app.ini`, you need to replace it if the path is changed." | ||||
| echo "[20230305] noticed that gitea 1.18.5 default is `/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini`" | ||||
| 
 | ||||
| echo "#<<< Enter [old hook path string] or [leave blank] for default '/faronear/git/gitea/gitea':"  | ||||
| read -p "#>>> " OLDPATH | ||||
| echo "::*** Enter [old hook path string] or [leave blank] for default '/faronear/git/gitea/gitea':"  | ||||
| read -p "***:: " OLDPATH | ||||
| if [ ! "$OLDPATH"] | ||||
| then | ||||
|   OLDPATH=/faronear/git/gitea/gitea | ||||
| fi | ||||
| 
 | ||||
| echo "#<<< Enter [new hook path string] or [leave blank] for default '/usr/local/bin/gitea': " | ||||
| read -p "#>>> " NEWPATH | ||||
| echo "::*** Enter [new hook path string] or [leave blank] for default '/usr/local/bin/gitea': " | ||||
| read -p "***:: " NEWPATH | ||||
| if [ ! "$NEWPATH" ] | ||||
| then | ||||
|   NEWPATH=/usr/local/bin/gitea | ||||
| fi | ||||
| 
 | ||||
| echo "#<<< Enter [root path] of repositories, or [leave blank] for default [[]]`pwd`]] " | ||||
| read -p "#>>> " REPOROOT | ||||
| echo "::*** Enter [root path] of repositories, or [leave blank] for default [[]]`pwd`]] " | ||||
| read -p "***:: " REPOROOT | ||||
| if [ "$ROOTPATH"] | ||||
| then | ||||
|   ROOTPATH=`realpath $ROOTPATH` | ||||
| @ -26,8 +26,8 @@ else | ||||
|   ROOTPATH=`pwd` | ||||
| fi | ||||
| 
 | ||||
| echo "#<<< Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "#>>> " YESNO | ||||
| echo "::*** Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "***:: " YESNO | ||||
| if [ "$YESNO" != 'y' ] | ||||
| then | ||||
|   exit | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| echo '#>>>> Starting gitea ...' | ||||
| echo '::*** Starting gitea ...' | ||||
| cd /faronear/git/gitea | ||||
| pm2 start -x './gitea' --name gitea -- web | ||||
| 
 | ||||
| echo '#>>>> Started gitea.' | ||||
| echo '::*** Started gitea.' | ||||
|  | ||||
| @ -1,13 +1,13 @@ | ||||
| # 服务化方案1: screen | ||||
| #echo '#>>> Starting gogs in screen ...' | ||||
| #echo '::*** Starting gogs in screen ...' | ||||
| #screen -dmS gogs | ||||
| #screen -S gogs -X stuff "/faronear/gogs/gogs web\n" | ||||
| 
 | ||||
| # 服务化方案2: pm2 | ||||
| echo '#>>>> Starting gogs in pm2 ...' | ||||
| echo '::*** Starting gogs in pm2 ...' | ||||
| cd /faronear/git/gogs # 如果在 /faronear/git 中运行 ./gogs/gogs,导致额外生成 /faronear/git/data 目录。 | ||||
| # sudo it so that pm2 list shows it as root | ||||
| sudo pm2 start -x './gogs' --name git.gogs -- web | ||||
| cd /faronear/git | ||||
| 
 | ||||
| echo '#>>>> Started gogs.' | ||||
| echo '::*** Started gogs.' | ||||
|  | ||||
| @ -6,8 +6,8 @@ if [ $1 ] | ||||
| then | ||||
|   VERSION=$1 | ||||
| else | ||||
|   echo "#<<< Enter kubo [version number] or [leave blank] for default $defaultVERSION"  | ||||
|   read -p "#>>> " VERSION | ||||
|   echo "::*** Enter kubo [version number] or [leave blank] for default $defaultVERSION"  | ||||
|   read -p "***:: " VERSION | ||||
|   if [ ! $VERSION ] | ||||
|   then | ||||
|     VERSION=$defaultVERSION | ||||
|  | ||||
| @ -1,11 +1,11 @@ | ||||
| echo "#<<< Install formulaes and casks, enter [y] for Yes, [anything else] for No:" | ||||
| echo "::*** Install formulaes and casks, enter [y] for Yes, [anything else] for No:" | ||||
| echo | ||||
| 
 | ||||
| formulaeList=(cloudflared jq openssl pandoc rclone readline speedtest-cli hudochenkov/sshpass/sshpass v2ray v2raya/v2raya/v2raya yt-dlp) | ||||
| for APP in "${formulaeList[@]}" | ||||
| do | ||||
|   echo "--- brew install $APP" | ||||
|   read -p "#>>> " YN | ||||
|   read -p "***:: " YN | ||||
|   if [ "$YN" = 'y' ] | ||||
|   then | ||||
|     brew install $APP | ||||
| @ -19,7 +19,7 @@ caskList=(appcleaner avidemux baidunetdisk cloudflare-warp cursor discord douyin | ||||
| for APP in "${caskList[@]}" | ||||
| do | ||||
|   echo "--- brew install $APP --cask" | ||||
|   read -p "#>>> " YN | ||||
|   read -p "***:: " YN | ||||
|   if [ "$YN" = 'y' ] | ||||
|   then | ||||
|     brew install $APP | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| echo #<<< Enter [g] to reset git source to github, [a] to 阿里云, [z] to 中科大, [q] to 清华, [anything else] to quit: | ||||
| read -p '#>>> ' TARGET | ||||
| echo ::*** Enter [g] to reset git source to github, [a] to 阿里云, [z] to 中科大, [q] to 清华, [anything else] to quit: | ||||
| read -p '***:: ' TARGET | ||||
| 
 | ||||
| if [ "$TARGET" = 'g' ] | ||||
| then | ||||
|  | ||||
| @ -1,13 +1,13 @@ | ||||
| echo "#<<< Enter [row number] (7 for MBA, 9 for iMac) or [leave blank] for default to 9" | ||||
| read -p "#>>> " ROWS | ||||
| echo "::*** Enter [row number] (7 for MBA, 9 for iMac) or [leave blank] for default to 9" | ||||
| read -p "***:: " ROWS | ||||
| if [ "$ROWS" = "" ] | ||||
| then | ||||
|   ROWS=9 | ||||
| fi | ||||
| defaults write com.apple.dock springboard-rows -int $ROWS | ||||
| 
 | ||||
| echo "#<<< Enter [column number] (10 for MBA, 15 for iMac) or [leave blank] for default to 15" | ||||
| read -p "#>>> " COLS | ||||
| echo "::*** Enter [column number] (10 for MBA, 15 for iMac) or [leave blank] for default to 15" | ||||
| read -p "***:: " COLS | ||||
| if [ "$COLS" = "" ] | ||||
| then | ||||
|   COLS=15 | ||||
|  | ||||
| @ -1,22 +1,19 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| if [ -d "$1" ] | ||||
| then | ||||
| if [ -d "$1" ]; then | ||||
|   NIXHOME=$1 | ||||
| else if [ -d "`pwd`/nixhome" ] | ||||
| then | ||||
|   NIXHOME=`pwd`/nixhome | ||||
| elif [ -d "$(pwd)/nixhome" ]; then | ||||
|   NIXHOME=$(pwd)/nixhome | ||||
| else | ||||
|   echo "" | ||||
|   echo "#<<< Enter [root path] or [leave blank] for default to [[`pwd`]]" | ||||
|   read -p "#>>> " NIXHOME | ||||
|   if [ ! "$NIXHOME" ] | ||||
|   then | ||||
|     NIXHOME=`pwd` | ||||
|   echo "::*** Enter [root path] or [leave blank] for default to [[$(pwd)]]" | ||||
|   read -p "***:: " NIXHOME | ||||
|   if [ -z "$NIXHOME" ]; then | ||||
|     NIXHOME=$(pwd) | ||||
|   fi | ||||
| fi | ||||
| if [ ! -e "$NIXHOME/.bashrc" ] | ||||
| then  | ||||
| 
 | ||||
| if [ ! -e "$NIXHOME/.bashrc" ]; then  | ||||
|   echo "××× [[$NIXHOME/.bashrc]] not exist! Exit now. ***" | ||||
|   exit | ||||
| else | ||||
| @ -25,60 +22,48 @@ fi | ||||
| echo "" | ||||
| 
 | ||||
| # $2 应当为用户名 | ||||
| if [ "$2" == 'root' ] | ||||
| then | ||||
| if [ "$2" == 'root' ]; then | ||||
|   HomePath=/root | ||||
|   TheUser=root | ||||
| elif [ "$2" ] | ||||
| then | ||||
| elif [ "$2" ]; then | ||||
|   HomePath=/home/$2 | ||||
|   TheUser=$2 | ||||
| else | ||||
|   # 可能是 root 或其他 | ||||
|   HomePath=~ | ||||
|   TheUser=`whoami` | ||||
|   TheUser=$(whoami) | ||||
| fi | ||||
| 
 | ||||
| if [ -d "$HomePath" ] | ||||
| then | ||||
| if [ -d "$HomePath" ]; then | ||||
| 
 | ||||
|   pushd $HomePath | ||||
|   pushd "$HomePath" | ||||
|    | ||||
|   homescriptlist=".emacs .emacs.lisp .bashrc .bash_profile .gitignore.global.txt" | ||||
|   echo | ||||
|   echo "#<<< Copy or link scripts? [l] to link, [c] to copy, [g] to git import, [anything else] to omit:" | ||||
|   read -p "#>>> " CopyOrLinkScripts | ||||
|   if [ "$CopyOrLinkScripts" == 'l' ] | ||||
|   then | ||||
|     for homescript in $homescriptlist | ||||
|     do | ||||
|       if [ -e "$homescript" ] || [ -L "$homescript" ] | ||||
|       then | ||||
|         mv $homescript $homescript.backup-$(date -u +%Y%m%dT%H%M%Sutc) | ||||
|   echo "::*** Copy or link scripts? [l] to link, [c] to copy, [g] to git import, [anything else] to omit:" | ||||
|   read -p "***:: " CopyOrLinkScripts | ||||
|   if [ "$CopyOrLinkScripts" == 'l' ]; then | ||||
|     for homescript in $homescriptlist; do | ||||
|       if [ -e "$homescript" ] || [ -L "$homescript" ]; then | ||||
|         mv "$homescript" "$homescript.backup-$(date -u +%Y%m%dT%H%M%Sutc)" | ||||
|       fi | ||||
|       echo "--- Linking [[$NIXHOME/$homescript]] to [[$HomePath/$homescript]] ..." | ||||
|       ln -s $NIXHOME/$homescript ./ | ||||
|       ln -s "$NIXHOME/$homescript" ./ | ||||
|     done | ||||
|   elif [ "$CopyOrLinkScripts" == 'c' ] | ||||
|   then | ||||
|     for homescript in $homescriptlist | ||||
|     do | ||||
|       if [ -e "$homescript" ] || [ -L "$homescript" ] | ||||
|       then | ||||
|         mv $homescript $homescript.backup-$(date -u +%Y%m%dT%H%M%Sutc) | ||||
|   elif [ "$CopyOrLinkScripts" == 'c' ]; then | ||||
|     for homescript in $homescriptlist; do | ||||
|       if [ -e "$homescript" ] || [ -L "$homescript" ]; then | ||||
|         mv "$homescript" "$homescript.backup-$(date -u +%Y%m%dT%H%M%Sutc)" | ||||
|       fi | ||||
|       echo "--- Copying [[$NIXHOME/$homescript]] to [[$HomePath/$homescript]] ..." | ||||
|       cp -r $NIXHOME/$homescript ./ | ||||
|       cp -r "$NIXHOME/$homescript" ./ | ||||
|     done | ||||
|   elif [ "$CopyOrLinkScripts" == 'g' ] | ||||
|   then | ||||
|     for homescript in $homescriptlist | ||||
|     do | ||||
|       if [ -e "$homescript" ] || [ -L "$homescript" ] | ||||
|       then | ||||
|         mv $homescript $homescript.backup-$(date -u +%Y%m%dT%H%M%Sutc) | ||||
|   elif [ "$CopyOrLinkScripts" == 'g' ]; then | ||||
|     for homescript in $homescriptlist; do | ||||
|       if [ -e "$homescript" ] || [ -L "$homescript" ]; then | ||||
|         mv "$homescript" "$homescript.backup-$(date -u +%Y%m%dT%H%M%Sutc)" | ||||
|       fi | ||||
|       curl -sSLO https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/$homescript | ||||
|       curl -sSLO "https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/$homescript" | ||||
|     done | ||||
|   else | ||||
|     echo '--- Home scripts not changed.' | ||||
| @ -86,37 +71,31 @@ then | ||||
| 
 | ||||
|   echo | ||||
| 
 | ||||
|   if [ "$(uname)" == "Darwin" ] | ||||
|   then | ||||
|   if [ "$(uname)" == "Darwin" ]; then | ||||
|     echo '--- No need to configure ./ssh/authorized_keys on Mac OS X. Exit now.' | ||||
|   elif [ "$TheUser" != 'root' ]  # 仅允许 non-root 用户进行远程密钥登录 | ||||
|   then | ||||
|   elif [ "$TheUser" != 'root' ]; then | ||||
| 
 | ||||
|     mkdir -p $HomePath/.ssh | ||||
|     chmod 700 $HomePath/.ssh | ||||
|     if [ "$2" ] | ||||
|     then | ||||
|     mkdir -p "$HomePath/.ssh" | ||||
|     chmod 700 "$HomePath/.ssh" | ||||
|     if [ "$2" ]; then | ||||
|       # 由 root 指定新用户而创建的配置文件的 owner 是 root,而不是新用户,导致新用户无法读取该文件而密钥登录失败,因此要重设 owner。 | ||||
|       chown $TheUser:$TheUser $HomePath/.ssh | ||||
|       chown "$TheUser:$TheUser" "$HomePath/.ssh" | ||||
|     fi | ||||
|     if [ -f "$HomePath/.ssh/authorized_keys" ] || [ -L "$HomePath/.ssh/authorized_keys" ] | ||||
|     then | ||||
|       mv $HomePath/.ssh/authorized_keys $HomePath/.ssh/authorized_keys.backup-$(date -u +%Y%m%dT%H%M%Sutc) | ||||
|     if [ -f "$HomePath/.ssh/authorized_keys" ] || [ -L "$HomePath/.ssh/authorized_keys" ]; then | ||||
|       mv "$HomePath/.ssh/authorized_keys" "$HomePath/.ssh/authorized_keys.backup-$(date -u +%Y%m%dT%H%M%Sutc)" | ||||
|     fi | ||||
| 
 | ||||
|     echo "#<<< Append or link or omit [[$HomePath/.ssh/authorized_keys]] to config ssh server? [a] for append, [l] for link, [anything else] for omit:" | ||||
|     read -p "#>>> " CopyOrLinkOrOmitAuthorizedKeys | ||||
|     echo "::*** Append or link or omit [[$HomePath/.ssh/authorized_keys]] to config ssh server? [a] for append, [l] for link, [anything else] for omit:" | ||||
|     read -p "***:: " CopyOrLinkOrOmitAuthorizedKeys | ||||
| 
 | ||||
|     if [ "$CopyOrLinkOrOmitAuthorizedKeys" = 'l' ] | ||||
|     then | ||||
|     if [ "$CopyOrLinkOrOmitAuthorizedKeys" = 'l' ]; then | ||||
|       echo "--- Linking [[$NIXHOME/authorized_keys]] to [[$HomePath/.ssh/authorized_keys]] ..." | ||||
|       ln -s $NIXHOME/.ssh/authorized_keys $HomePath/.ssh/authorized_keys | ||||
|       sudo chmod 644 $HomePath/.ssh/authorized_keys # 确保其他用户能读取 nixhome/.ssh/authorized_keys | ||||
|     elif [ "$CopyOrLinkOrOmitAuthorizedKeys" = 'a' ] | ||||
|     then | ||||
|       ln -s "$NIXHOME/.ssh/authorized_keys" "$HomePath/.ssh/authorized_keys" | ||||
|       sudo chmod 644 "$HomePath/.ssh/authorized_keys" # 确保其他用户能读取 nixhome/.ssh/authorized_keys | ||||
|     elif [ "$CopyOrLinkOrOmitAuthorizedKeys" = 'a' ]; then | ||||
|       echo "--- Copying [[$NIXHOME/authorized_keys]] to [[$HomePath/.ssh/authorized_keys]] ..." | ||||
|       cat $NIXHOME/.ssh/authorized_keys >> $HomePath/.ssh/authorized_keys | ||||
|       chmod 600 $HomePath/.ssh/authorized_keys | ||||
|       cat "$NIXHOME/.ssh/authorized_keys" >> "$HomePath/.ssh/authorized_keys" | ||||
|       chmod 600 "$HomePath/.ssh/authorized_keys" | ||||
|     fi | ||||
|     echo | ||||
| 
 | ||||
|  | ||||
| @ -8,8 +8,8 @@ if [ $1 ] | ||||
| then | ||||
|   VERSION=$1 | ||||
| else | ||||
|   echo "#<<< Enter [nodejs version] or [leave blank] for default $defaultVERSION, enter [tools] to install C++ build tools"  | ||||
|   read -p "#>>> " VERSION | ||||
|   echo "::*** Enter [nodejs version] or [leave blank] for default $defaultVERSION, enter [tools] to install C++ build tools"  | ||||
|   read -p "***:: " VERSION | ||||
|   if [ ! $VERSION ] | ||||
|   then | ||||
|     VERSION=$defaultVERSION | ||||
|  | ||||
| @ -7,7 +7,7 @@ set ROOTPATH= | ||||
|   set ROOTPATH=%1 | ||||
| ) else ( | ||||
|   echo; | ||||
|   echo #<<< Enter [root path] or [leave blank] for default to [[%CD%]] | ||||
|   echo ::*** Enter [root path] or [leave blank] for default to [[%CD%]] | ||||
|   set /p ROOTPATH=">>> " | ||||
|   echo; | ||||
|   if "" == "%ROOTPATH%" ( | ||||
| @ -23,21 +23,21 @@ if not exist "%ROOTPATH%" ( | ||||
| ) | ||||
| 
 | ||||
| pushd %ROOTPATH% | ||||
| echo #<<< Starting from [[%CD%]] | ||||
| echo ::*** Starting from [[%CD%]] | ||||
| echo; | ||||
| 
 | ||||
| @ if "%2" == "hier" ( | ||||
|   @REM for /d %%d in (*) do ( pushd %%d & ( for /d %%d in (*) do if exist %%d/package.json ( pushd %%d & echo --- npm booting: %%d ... & npm run boot & popd ) ) & popd ) | ||||
|   for /d %%o in (*) do ( | ||||
|     @ if not "%%o" == ".vscode" ( | ||||
|       echo #<<<===== entering [[%ROOTPATH%\%%o]] | ||||
|       echo ::******** entering [[%ROOTPATH%\%%o]] | ||||
|       echo; | ||||
|       pushd %%o  | ||||
|       for /d %%g in (*) do ( | ||||
|         @ if exist "%%g\package.json" ( | ||||
|           findstr "\"boot\"" %%g\package.json >NUL && ( | ||||
|             pushd %%g  | ||||
|             echo #<<<== npm booting [[%ROOTPATH%\%%o\%%g]] | ||||
|             echo ::***** npm booting [[%ROOTPATH%\%%o\%%g]] | ||||
|             npm run boot | ||||
|             echo; | ||||
|             popd | ||||
| @ -54,7 +54,7 @@ echo; | ||||
|       if exist "%%r\package.json" ( | ||||
|         findstr "\"boot\"" "%%r\package.json" >NUL && ( | ||||
|           pushd %%r | ||||
|           echo #<<<== npm booting [[%ROOTPATH%\%%r]] | ||||
|           echo ::***** npm booting [[%ROOTPATH%\%%r]] | ||||
|           npm run boot | ||||
|           echo; | ||||
|           popd | ||||
|  | ||||
| @ -5,8 +5,8 @@ then | ||||
|   ROOTPATH=$1 | ||||
| else | ||||
|   echo "" | ||||
|   echo "#<<< Enter [root path] or [leave blank] for default to [[`pwd`]]" | ||||
|   read -p "#>>> " ROOTPATH | ||||
|   echo "::*** Enter [root path] or [leave blank] for default to [[`pwd`]]" | ||||
|   read -p "***:: " ROOTPATH | ||||
|   if [ ! "$ROOTPATH" ] | ||||
|   then | ||||
|     ROOTPATH=`pwd` | ||||
| @ -30,17 +30,17 @@ then | ||||
|   # for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 | ||||
|   ls -F | grep '/$' | grep -v '=' | while read org ## 换用这种方法,可以成功过滤出含有空格的完整目录名 | ||||
|   do  | ||||
|     echo "#<<<===== entering [[$ROOTPATH/$org]]" | ||||
|     echo "::******** entering [[$ROOTPATH/$org]]" | ||||
|     echo "" | ||||
|     cd "$org"; | ||||
|     for repo in * ## for ??? in * 是分割成一个个目录名的,即使目录名含有空格 | ||||
|     do | ||||
|       if ( [ -f "$repo/package.json" ] && grep -q '"boot"' "$repo/package.json" ) | ||||
|       then | ||||
|         echo "<<<< npm booting: [[$org/$repo]] <<<<" | ||||
|         echo "::*** npm booting: [[$org/$repo]]" | ||||
|         cd "$repo" | ||||
|         npm run boot | ||||
|         echo "#>>>> npm booted: [[$org/$repo]] #>>>>" | ||||
|         echo "***:: npm booted: [[$org/$repo]]" | ||||
|         echo "" | ||||
|         cd .. | ||||
|       fi | ||||
|  | ||||
| @ -7,7 +7,7 @@ set ROOTPATH= | ||||
|   set ROOTPATH=%1 | ||||
| ) else ( | ||||
|   echo; | ||||
|   echo #<<< Enter [root path] or [leave blank] for default to [[%CD%]] | ||||
|   echo ::*** Enter [root path] or [leave blank] for default to [[%CD%]] | ||||
|   set /p ROOTPATH=">>> " | ||||
|   echo; | ||||
|   if "" == "%ROOTPATH%" ( | ||||
| @ -22,7 +22,7 @@ if not exist "%ROOTPATH%" ( | ||||
| ) | ||||
| 
 | ||||
| pushd %ROOTPATH% | ||||
| echo #<<< Starting from [[%CD%]] | ||||
| echo ::*** Starting from [[%CD%]] | ||||
| echo; | ||||
| 
 | ||||
| for /d /r %%r in (*) do ( | ||||
|  | ||||
| @ -9,10 +9,10 @@ echo   nrm ls | ||||
| echo   nrm current | ||||
| echo | ||||
| 
 | ||||
| echo "#<<< npm config get registry ==> $(npm config get registry)" | ||||
| echo "::*** npm config get registry ==> $(npm config get registry)" | ||||
| echo | ||||
| echo "#<<< npm config set registry \n [c] China, \n [w] World, [anything else] to quit" | ||||
| read -p "#>>> " TARGET | ||||
| echo "::*** npm config set registry \n [c] China, \n [w] World, [anything else] to quit" | ||||
| read -p "***:: " TARGET | ||||
| if [ "$TARGET" = 'c' ] | ||||
| then | ||||
|   npm config set registry https://registry.npmmirror.com | ||||
| @ -21,4 +21,4 @@ then | ||||
|   npm config set registry https://registry.npmjs.org | ||||
| fi | ||||
| echo | ||||
| echo "#<<< npm config get registry ==> $(npm config get registry)" | ||||
| echo "::*** npm config get registry ==> $(npm config get registry)" | ||||
| @ -1,7 +1,7 @@ | ||||
| @ if not "" == "%1" ( | ||||
|   set PORT=%1 | ||||
| ) else ( | ||||
|   echo #<<< Enter [port] to scan: | ||||
|   echo ::*** Enter [port] to scan: | ||||
|   set /p PORT=">>> " | ||||
|   echo; | ||||
| ) | ||||
|  | ||||
| @ -2,8 +2,8 @@ if [ "$1" ] | ||||
| then | ||||
|   PORT=$1 | ||||
| else | ||||
|   echo "#<<< 需要查看的端口号:" | ||||
|   read -p "#>>> " PORT | ||||
|   echo "::*** 需要查看的端口号:" | ||||
|   read -p "***:: " PORT | ||||
| fi | ||||
| 
 | ||||
| if [ "$(uname)" = "Darwin" ] | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| @REM 在 powershell 里,只要 ssr 打开全局模式,不需要设置 proxy 就可以。 | ||||
| @REM 在 cmd 里,需要设置 proxy 才可以。 | ||||
| 
 | ||||
| echo #<<< Enter [s] to start, [t] to terminate or [anything else] for no change | ||||
| echo ::*** Enter [s] to start, [t] to terminate or [anything else] for no change | ||||
| set /p TODOMODE=">>> " | ||||
| echo; | ||||
| if "s" == "%TODOMODE%" ( | ||||
|  | ||||
							
								
								
									
										10
									
								
								proxy.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								proxy.sh
									
									
									
									
									
								
							| @ -1,12 +1,12 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| echo "#<<< Please run with 'source proxy.sh', otherwise it has no effect on the current shell" | ||||
| echo "::*** Please run with 'source proxy.sh', otherwise it has no effect on the current shell" | ||||
| 
 | ||||
| if [ -n "$1" ]; then | ||||
|   proxySwitch="$1" | ||||
| else | ||||
|   echo "#<<< 开启或关闭网络代理? [s/1] for start, [t/0] for terminate, [anything else] for no change." | ||||
|   read -p "#>>> " proxySwitch | ||||
|   echo "::*** 开启或关闭网络代理? [s/1] for start, [t/0] for terminate, [anything else] for no change." | ||||
|   read -p "***:: " proxySwitch | ||||
| fi | ||||
| 
 | ||||
| # to reset port to empty, otherwise the second run of this script will not ask for port. | ||||
| @ -14,10 +14,10 @@ PORT= | ||||
| PORTDEFAULT=20170 | ||||
| # function proxy() { | ||||
|   if [ "$proxySwitch" == "s" ] || [ "$proxySwitch" == "1" ]; then | ||||
|     echo "#<<< Proxy server running on [port number] or [leave blank] for default $PORTDEFAULT (20170 for v2ray2, or 7897 for clash verge)" | ||||
|     echo "::*** Proxy server running on [port number] or [leave blank] for default $PORTDEFAULT (20170 for v2ray2, or 7897 for clash verge)" | ||||
|     while [ ! "$PORT" ] | ||||
|     do | ||||
|       read -p "#>>> " PORT | ||||
|       read -p "***:: " PORT | ||||
|       if [ ! "$PORT" ] | ||||
|       then | ||||
|         PORT=$PORTDEFAULT | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| echo "#<<< rclone [i] to install, [s] to sync, [c] to copy, [w] to web gui, [else] to quit"  | ||||
| read -p "#>>> " ACTION_TYPE | ||||
| echo "::*** rclone [i] to install, [s] to sync, [c] to copy, [w] to web gui, [else] to quit"  | ||||
| read -p "***:: " ACTION_TYPE | ||||
| if [ "$ACTION_TYPE" = 'i' ] | ||||
| then | ||||
|   sudo -v ; curl https://rclone.org/install.sh | sudo bash | ||||
| @ -16,30 +16,30 @@ then | ||||
|   fi | ||||
|    | ||||
|   echo | ||||
|   echo "#<<< from source (default ./)"; read -p "#>>> " SOURCE_PATH; if [ ! "$SOURCE_PATH" ]; then SOURCE_PATH="./"; fi | ||||
|   echo "::*** from source (default ./)"; read -p "***:: " SOURCE_PATH; if [ ! "$SOURCE_PATH" ]; then SOURCE_PATH="./"; fi | ||||
|    | ||||
|   echo | ||||
|   while [ ! "$TARGET_PATH" ] | ||||
|   do | ||||
|     echo "#<<< to target [remote:path]" | ||||
|     read -p "#>>> " TARGET_PATH | ||||
|     echo "::*** to target [remote:path]" | ||||
|     read -p "***:: " TARGET_PATH | ||||
|   done | ||||
| 
 | ||||
|   #  read -p "rclone $RC_CMD  with max-age #>>> " MAX_AGE ## 发现用了 max-age 并没有提升速度,反而略有下降,即使对大量现有文件和少量更新文件 | ||||
|   #  read -p "rclone $RC_CMD  with max-age ***:: " MAX_AGE ## 发现用了 max-age 并没有提升速度,反而略有下降,即使对大量现有文件和少量更新文件 | ||||
| 
 | ||||
|   echo | ||||
|   echo "excluding files and folders (folders must end with /)" | ||||
|   read -p "#>>> " EXCLUDING; | ||||
|   read -p "***:: " EXCLUDING; | ||||
|    | ||||
|   echo  | ||||
|   echo "with [number] files in parallel, default 4" | ||||
|   read -p "#>>> " TRANSFERS; | ||||
|   read -p "***:: " TRANSFERS; | ||||
|   if [ ! "$TRANSFERS" ]; then TRANSFERS=4; fi | ||||
| 
 | ||||
| 
 | ||||
|   echo | ||||
|   echo "with [number] threads simultaneously, default 4";  | ||||
|   read -p "#>>> " THREADS; | ||||
|   read -p "***:: " THREADS; | ||||
|   if [ ! "$THREADS" ]; then THREADS=4; fi | ||||
| 
 | ||||
|   FULL_CMD="rclone $RC_CMD $SOURCE_PATH $TARGET_PATH -P -L --transfers=$TRANSFERS --multi-thread-streams=$THREADS --create-empty-src-dirs --exclude=._* --exclude=.DS_Store --exclude={node_modules/,.deploy_git/,unpackage/,$EXCLUDING}" | ||||
| @ -50,7 +50,7 @@ then | ||||
|   echo "*****************************" | ||||
|   echo | ||||
|   echo "Starting? [y] for yes, [anything else] for quit" | ||||
|   read -p "#>>> " YES_OR_NOT | ||||
|   read -p "***:: " YES_OR_NOT | ||||
|   echo | ||||
|   if [ "$YES_OR_NOT" = 'y' ] | ||||
|   then | ||||
|  | ||||
| @ -2,8 +2,8 @@ if [ $1 ] | ||||
| then | ||||
|   NewHostname=$1 | ||||
| else | ||||
|   echo "#<<< Set [new hostname] or [leave blank] for no change" | ||||
|   read -p "#>>> " NewHostname | ||||
|   echo "::*** Set [new hostname] or [leave blank] for no change" | ||||
|   read -p "***:: " NewHostname | ||||
| fi | ||||
| 
 | ||||
| if [ $NewHostname ] | ||||
| @ -11,6 +11,6 @@ then | ||||
|   hostnamectl set-hostname $NewHostname | ||||
|   sed -i "s|\b$`hostname`\b|$NewHostname|g" /etc/hosts # echo "127.0.0.1 $NewHostname" >> /etc/hosts | ||||
| else | ||||
|   echo 'Nothing changed #>>>' | ||||
|   echo 'Nothing changed' | ||||
| fi | ||||
| echo | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| @echo off  | ||||
| 
 | ||||
| echo #<<< Append ~/.ssh/id_rsa.pub to remote server | ||||
| echo ::*** Append ~/.ssh/id_rsa.pub to remote server | ||||
| 
 | ||||
| @ if not "%1" == "" ( | ||||
|   set REMOTEHOST=%1 | ||||
|  | ||||
| @ -6,8 +6,8 @@ if [ $1 ] | ||||
| then | ||||
|   REMOTEHOST=$1 | ||||
| else | ||||
|   echo "#<<< Enter << user@remotehost >> to connect to:" | ||||
|   read -p "#>>> " REMOTEHOST | ||||
|   echo "::*** Enter << user@remotehost >> to connect to:" | ||||
|   read -p "***:: " REMOTEHOST | ||||
| fi | ||||
| 
 | ||||
| scp ~/.ssh/id_rsa.pub $REMOTEHOST:~/tmp.pub | ||||
|  | ||||
| @ -4,7 +4,7 @@ sudo apt update | ||||
| sudo apt install -y seafile-cli | ||||
| 
 | ||||
| echo "To initialze the client, create a settings folder at [settings path] or [leave blank] for default '~/seafile-client'" | ||||
| read -p "#>>> " SETTINGS_FOLDER | ||||
| read -p "***:: " SETTINGS_FOLDER | ||||
| if [ ! $SETTINGS_FOLDER ] | ||||
| then | ||||
|   SETTINGS_FOLDER = ~/seafile-client | ||||
|  | ||||
| @ -7,7 +7,7 @@ set ROOTPATH= | ||||
|   set ROOTPATH=%1 | ||||
| ) else ( | ||||
|   echo; | ||||
|   echo #<<< Enter [root path] or [leave blank] for default [[%CD%]] to start tree search for seafile-ignore.txt files | ||||
|   echo ::*** Enter [root path] or [leave blank] for default [[%CD%]] to start tree search for seafile-ignore.txt files | ||||
|   set /p ROOTPATH=">>> " | ||||
|   echo; | ||||
|   if "" == "%ROOTPATH%" ( | ||||
| @ -23,7 +23,7 @@ if not exist "%ROOTPATH%" ( | ||||
|   echo √√√ ROOTPATH = [[%ROOTPATH%]] | ||||
| ) | ||||
| 
 | ||||
| echo #<<< Enter [path to seafile-ignore.global.txt] or [leave blank] for default [[https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/seafile-ignore.global.txt]] | ||||
| echo ::*** Enter [path to seafile-ignore.global.txt] or [leave blank] for default [[https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/seafile-ignore.global.txt]] | ||||
| set /p IGNOREPATH=">>> " | ||||
| echo; | ||||
| if "" == "%IGNOREPATH%" ( | ||||
| @ -39,7 +39,7 @@ if "" == "%IGNOREPATH%" ( | ||||
| ) | ||||
| 
 | ||||
| pushd %ROOTPATH% | ||||
| echo #<<< Starting from [[%CD%]] | ||||
| echo ::*** Starting from [[%CD%]] | ||||
| echo; | ||||
| 
 | ||||
| for /d /r %%r in (*) do ( | ||||
|  | ||||
| @ -8,8 +8,8 @@ if [ -d "$1" ] | ||||
| then | ||||
|   ROOTPATH=$1 | ||||
| else | ||||
|   echo "#<<< Enter [root path] or [leave blank] for default [[`pwd`]] to start tree search for seafile-ignore.txt files" | ||||
|   read -p "#>>> " ROOTPATH | ||||
|   echo "::*** Enter [root path] or [leave blank] for default [[`pwd`]] to start tree search for seafile-ignore.txt files" | ||||
|   read -p "***:: " ROOTPATH | ||||
|   if [ "$ROOTPATH" ] | ||||
|   then | ||||
|     ROOTPATH=$(realpath $ROOTPATH) | ||||
| @ -26,8 +26,8 @@ else | ||||
| fi | ||||
| echo "" | ||||
| 
 | ||||
| echo "#<<< Enter [path to seafile-ignore.global.txt] or [leave blank] for default [[https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/seafile-ignore.global.txt]]" | ||||
| read -p "#>>> " IGNOREPATH | ||||
| echo "::*** Enter [path to seafile-ignore.global.txt] or [leave blank] for default [[https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/seafile-ignore.global.txt]]" | ||||
| read -p "***:: " IGNOREPATH | ||||
| if [ "$IGNOREPATH" ] | ||||
| then | ||||
|   if [ -d "$IGNOREPATH" ] | ||||
| @ -46,8 +46,8 @@ else | ||||
| fi | ||||
| echo "" | ||||
| 
 | ||||
| echo "#<<< Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "#>>> " YESNO | ||||
| echo "::*** Enter [y] to start updating, or [anything else] to quit" | ||||
| read -p "***:: " YESNO | ||||
| if [ "$YESNO" != 'y' ] | ||||
| then | ||||
|   exit | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| echo #<<< Merge remote [seafile-ignore.global.txt] and local [seafile-ignore.local.txt] to [seafile-ignore.txt] | ||||
| echo ::*** Merge remote [seafile-ignore.global.txt] and local [seafile-ignore.local.txt] to [seafile-ignore.txt] | ||||
| curl -sSL https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/seafile-ignore.global.txt > seafile-ignore.txt | ||||
| if [ -f seafile-ignore.local.txt ]; then cat seafile-ignore.local.txt >> seafile-ignore.txt; fi | ||||
| echo | ||||
|  | ||||
							
								
								
									
										21
									
								
								ssh.sh
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								ssh.sh
									
									
									
									
									
								
							| @ -36,12 +36,14 @@ if [ "$1" -ge 0 ] 2>/dev/null && [ "$1" -le ${#hosts[@]} ] 2>/dev/null | ||||
| then | ||||
|   selected_index=$1-1 | ||||
| else | ||||
|   echo "Select a target to connect via SSH:" | ||||
|   echo "Select a target to connect via SSH, or press 0 to exit:" | ||||
|   select target in "${labels[@]}" | ||||
|   do | ||||
|     if [[ -n "$target" ]]; then | ||||
|       selected_index=$REPLY-1 | ||||
|       break | ||||
|     elif [ "$REPLY" = '0' ]; then | ||||
|       exit 0 | ||||
|     else | ||||
|       echo "Invalid selection. Try again." | ||||
|     fi | ||||
| @ -61,13 +63,18 @@ then | ||||
|   port=22 | ||||
| fi | ||||
| 
 | ||||
| if [ "$password" != "" ] & [ "$(which sshpass)" != "" ] | ||||
| echo "::*** Coonecting to ${label}" | ||||
| if [ "$password" != "null" ] | ||||
| then | ||||
|   echo "#<<< Coonecting to ${label} with password" | ||||
|   echo "#>>> ssh -X -p $port $username@$host" | ||||
|   sshpass -p $password ssh -X -p $port "$username@$host" $2 | ||||
|   if [ "$(which sshpass)" ] | ||||
|   then | ||||
|     echo "::*** sshpass -p $password -X -p $port $username@$host" | ||||
|     sshpass -p $password ssh -X -p $port "$username@$host" $2 | ||||
|   else | ||||
|     echo "::*** ssh -X -p $port $username@$host" | ||||
|     ssh -X -p $port "$username@$host" $2 | ||||
|   fi | ||||
| else | ||||
|   echo "#<<< Coonecting to ${label} with private key" | ||||
|   echo "#>>> ssh -X -p $port $username@$host" | ||||
|   echo "::*** ssh -X -p $port $username@$host" | ||||
|   ssh -X -p $port "$username@$host" $2 | ||||
| fi | ||||
| @ -1,11 +1,11 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| 
 | ||||
| echo #<<< 把 HBuilder 创建的 uniapp 应用转换成 vue-cli 应用的脚手架。 | ||||
| echo #<<< More info at https://uniapp.dcloud.net.cn/quickstart-cli.html | ||||
| echo ::*** 把 HBuilder 创建的 uniapp 应用转换成 vue-cli 应用的脚手架。 | ||||
| echo ::*** More info at https://uniapp.dcloud.net.cn/quickstart-cli.html | ||||
| 
 | ||||
| echo #<<< CLI project name?  | ||||
| read -p '##>>> ' PROJECT | ||||
| echo ::*** CLI project name?  | ||||
| read -p '#***:: ' PROJECT | ||||
| 
 | ||||
| if [ $PROJECT ] | ||||
| then | ||||
| @ -13,14 +13,14 @@ then | ||||
|   vue create -p dcloudio/uni-preset-vue $PROJECT | ||||
|   cd $PROJECT | ||||
|   mv src src-old | ||||
|   echo #<<< Originial Repository URL? | ||||
|   read -p '#>>> ' $url | ||||
|   echo ::*** Originial Repository URL? | ||||
|   read -p '***:: ' $url | ||||
|   echo  | ||||
|   echo #<<< 下载一个 HBuilderX 创建的项目下载存为 src 目录: | ||||
|   echo ::*** 下载一个 HBuilderX 创建的项目下载存为 src 目录: | ||||
|   echo | ||||
|   git clone $url src | ||||
|   echo | ||||
|   echo #<<< 进入 src 安装依赖库 | ||||
|   echo ::*** 进入 src 安装依赖库 | ||||
|   cd src | ||||
|   npm run boot | ||||
|   cd .. | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user