Skip to content

Instantly share code, notes, and snippets.

Fenying fenying

Block or report user

Report or block fenying

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@fenying
fenying / git-switch-remote-repo.sh
Last active Apr 24, 2019
A tool for switching git remote repository URL.
View git-switch-remote-repo.sh
#!/bin/bash
# Usage
#
# We assume the link of remote repository is of SSH style like:
#
# <git-user>@<domain>:<scope>/<project-name>.git
#
# git-switch-remote-repo <remote-name> full <full-repo-link>
# git-switch-remote-repo <remote-name> domain <new-domain>
@fenying
fenying / auto-init-ssh-agent.sh
Created Apr 9, 2019
Auto-start ssh-agent when BASH starts, and reuse for all bash instance.
View auto-init-ssh-agent.sh
# Add following code at the end of ~/.bashrc
# Check if ~/.pid_ssh_agent exists.
if [ -f ~/.pid_ssh_agent ]; then
source ~/.pid_ssh_agent
# Check process of ssh-agent still exists.
TEST=$(ssh-add -l)
@fenying
fenying / docker-mysql.sh
Last active Feb 23, 2019
Run MySQL server by docker with configurations
View docker-mysql.sh
#!/bin/bash
# This script will pull down the latest mysql 5.7 and run a container.
LOCAL_MYSQL_ROOT=/docker/mysql/data # The local mysql data directory.
LOCAL_MYSQL_CNF_DIR=/docker/mysql/conf.d # The local mysql configuration directory.
LOCAL_MYSQL_PORT=3306 # The exported port of mysql.
LOCAL_MYSQL_ADDR=0.0.0.0
DOCKER_MAX_MEMORY=512m
@fenying
fenying / get-latest-tag.sh
Last active Dec 26, 2018
Get the latest tag of git respository
View get-latest-tag.sh
#!/bin/bash
# Method 1, reference: https://stackoverflow.com/a/29497919
git log --tags --simplify-by-decoration --pretty="format:%ci %d" | head -n 1 | grep -Po '(?<=tag: ).+?(?=,)'
# Method 2, reference: https://stackoverflow.com/questions/6269927/how-can-i-list-all-tags-in-my-git-repository-by-the-date-they-were-created#comment81585017_24830212
git tag --sort=-creatordate | head -n 1
@fenying
fenying / acme-nginx-alidns.sh
Last active Dec 12, 2018
Issue SSL cert with AliDNS by ACME.sh
View acme-nginx-alidns.sh
export Ali_Key="<ACCESS_KEY>"
export Ali_Secret="<SECRET_KEY>"
THE_DOMAIN=litert.org
THE_CERT_OUTPUT_DIR=/etc/nginx/ssl.d
mkdir -p $THE_CERT_OUTPUT_DIR
acme.sh --issue \
--dns dns_ali \
-d "$THE_DOMAIN" \
@fenying
fenying / docker-redis.sh
Last active Feb 23, 2019
Run Redis server by docker with configurations
View docker-redis.sh
#!/bin/bash
# Redis configuration file is /docker/redis/redis_6379.conf:/data/redis_6379.conf
# Redis RDB file dir is /docker/redis/dump.rdb:/data/dump.rdb
REDIS_CONFIG_FILE=redis_6379.conf
DOCKER_REDIS_ROOT=/data
DOCKER_CONTAINER_NAME="Redis-Server"
DOCKER_MAX_MEMORY=256m
DOCKER_MAX_CPU=1
@fenying
fenying / getSameDayOfNeighboringMonth.ts
Last active Nov 25, 2018
Get the same day of neighboring month.
View getSameDayOfNeighboringMonth.ts
/**
* Get the same day in neighboring month, e.g.
*
* Input: ("2018-10-31", 1) Output: 2018-11-30
*
* Input: ("2018-10-30", 1) Output: 2018-11-30
*
* Input: ("2018-01-31", 1) Output: 2018-02-28
*
* Input: ("2020-01-31", 1) Output: 2020-02-29
@fenying
fenying / tasks.json
Created Jun 24, 2018
Node.js Remote Debugging Configuration for VSCode
View tasks.json
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "[Remote-Debug-Sample] Auto-Attach",
"remoteRoot": "/home/admin/node-projects/remote-debug",
"protocol": "inspector",
"address": "localhost",
@fenying
fenying / frps.sh
Last active Mar 7, 2018
The frp server service script /etc/init.d/frps
View frps.sh
## File: /etc/init.d/frps
#!/bin/sh
#
# frps: FRP-Server Daemon
#
# description: FRP-Server Daemon
PID_FILE=/run/frps.pid
CONFIG_FILE=/etc/frps.ini
FRP_SERVER=/usr/local/frps/frps
start()
@fenying
fenying / to32BitHex.js
Created Jan 10, 2018
Convert a signed integer into a unsigned 32-bit hex integer string.
View to32BitHex.js
function to32BitHex(v) {
if (typeof (v) !== 'number' || (Number.isInteger && !Number.isInteger(v))) {
throw new TypeError("Require a number as the argument.");
}
v = 0xFFFFFFFF & v;
if (v < 0) {
return (v >>> 0).toString(16);
}
else {
return v.toString(16);
You can’t perform that action at this time.