让你成为最历害的git提交人

阅读次数:1648 次  |  发布时间:2019-02-04T00:00:00Z 

这个shell脚本,来源于https://github.com/KimDarren/git-faker。其逻辑很简单,就是通过不停的重复以下操作,使你成为最活跃的git用户:

  • 创建.git-faker目录
  • 生成文件
  • 提交文件
  • 删除之前提交的内容
#!/usr/bin/env sh

VERSION="0.2.0"

version() {
	printf "git-faker version %s\n" "$VERSION"
}

# Helpers.

current_year() {
	date +"%Y"
}

last_year() {
	year=$(current_year)
	echo $(( ${year#0} -1 ))
}

current_branch() {
	basename "$(git symbolic-ref HEAD)"
}

faker() {

	rm -rf .git-faker
	mkdir .git-faker

	if [ -z "$1" ]; then
		branch="$(current_branch)"
	else
		branch="$1"
	fi

	case "$2" in
		objc)
				extension="m"
				code="#import <UIKit/UIKit.h> @interface NSFaker () @end @implementation NSFaker - (instancetype)init { self = [super init]; if (self) {self.title = "faker";} return self; } @end " ;;
		js)
				extension="js"
				code="var express     = require('express'); console.log(express);" ;;
		java)
				extension="java"
				code="public class IntListVer1 {private static final int DEFAULT_CAP = 10;private int[] iValues;private int iSize;public IntListVer1(){this(DEFAULT_CAP);}}" ;;
		c)
				extension="c"
				code="#include <stdio.h> int main(){int c = 0;char ch, s[1000];gets(s);while (s[c] != '\0') {ch = s[c];if (ch >= 'A' && ch <= 'Z'){s[c] = s[c] + 32;}}return 0;}" ;;
		*)
				extension=""
				code="default" ;;
	esac

	git checkout $branch >/dev/null

	months=( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )

	for month in ${months[@]}; do
		for day in {1..31}; do
			ranH=$RANDOM
			ranS=$RANDOM
			ranM=$RANDOM

			hour=$(( ranH %= 23 ))
			min=$(( ranM %= 59 ))
			sec=$(( ranS %= 59 ))

			echo "$code" > ".git-faker/$(current_year).$month.$day.$extension"
			git add -A >/dev/null
			GIT_AUTHOR_DATE="$month $day $hour:$min:$sec $(current_year) -0000" GIT_COMMITTER_DATE="$month $day $hour:$min:$sec $(current_year) -0000" git commit -m "I'm working hard.." >/dev/null

			echo "$code" > ".git-faker/$(last_year).$month.$day.$extension"
			git add -A >/dev/null
			GIT_AUTHOR_DATE="$month $day $hour:$sec:$min $(last_year) -0000" GIT_COMMITTER_DATE="$month $day $hour:$sec:$min $(last_year) -0000" git commit -m "I'm hustlin" >/dev/null
		done
	done

	printf "Great!\nYou should push to the GitHub!\nNow, you are the best commiter in the planet.\n"
}

display_help() {
	cat <<-EOF
  usage:
    git faker                       Execute git faker at current branch
  commands:
    git faker <branch>              Execute git faker with <branch> for commit
  options:
    -V, --version                   Output current version of git-faker
    -h, --help                      Display this help information
    --objc                          Set the language: Objective-C
    --java                          Set the language: Java
    --js                            Set the language: Javascript
    --c                             Set the language: C
EOF
	exit 0
}


case $1 in
	-V|--version) version; exit 0 ;;
	-h|--help) display_help; exit 0 ;;
	--objc) faker "$(current_branch)" "objc"; exit 0 ;;
	--java) faker "$(current_branch)" "java"; exit 0 ;;
	--js) faker "$(current_branch)" "js"; exit 0 ;;
	--c) faker "$(current_branch)" "c"; exit 0 ;;
esac

faker "$@"

最近发布的代码:

移除所有已停止的DOCKER Shell 程序  |  12次阅读  | 发布于:2020-08-08T12:58:23Z
使用ffmpeg命令行:删除音频中静音的部分 Shell 程序  |  5次阅读  | 发布于:2020-08-01T23:03:45Z
install_kibana Shell 程序  |  13次阅读  | 发布于:2020-07-29T23:50:28Z
install_logstash Shell 程序  |  14次阅读  | 发布于:2020-07-29T23:50:28Z
install_maven Shell 程序  |  16次阅读  | 发布于:2020-07-29T23:50:28Z
install_tomcat Shell 程序  |  15次阅读  | 发布于:2020-07-29T23:50:28Z
install_zookeeper Shell 程序  |  13次阅读  | 发布于:2020-07-29T23:50:28Z
删除用户脚本 Shell 程序  |  17次阅读  | 发布于:2020-07-29T23:50:28Z
查看磁盘目录使用情况 Shell 程序  |  11次阅读  | 发布于:2020-07-29T23:50:28Z
自动化下载脚本 Shell 程序  |  21次阅读  | 发布于:2020-07-29T23:50:28Z
Sys_Check Shell 程序  |  12次阅读  | 发布于:2020-07-29T23:50:27Z
black_list Shell 程序  |  14次阅读  | 发布于:2020-07-29T23:50:27Z
check_mysql_ms Shell 程序  |  12次阅读  | 发布于:2020-07-29T23:50:27Z
install_elasticserch Shell 程序  |  11次阅读  | 发布于:2020-07-29T23:50:27Z
install_filebeat Shell 程序  |  7次阅读  | 发布于:2020-07-29T23:50:27Z
install_git Shell 程序  |  11次阅读  | 发布于:2020-07-29T23:50:27Z
install_grafana Shell 程序  |  14次阅读  | 发布于:2020-07-29T23:50:27Z
install_kafka Shell 程序  |  9次阅读  | 发布于:2020-07-29T23:50:27Z
默认退出状态码 Shell 程序  |  10次阅读  | 发布于:2020-07-29T23:50:26Z
Autoback-xtraback Shell 程序  |  12次阅读  | 发布于:2020-07-29T23:50:26Z
Autoinstall_ELK_V1.3 Shell 程序  |  9次阅读  | 发布于:2020-07-29T23:50:26Z
Cpu_Limit Shell 程序  |  7次阅读  | 发布于:2020-07-29T23:50:26Z
Custom_Rm Shell 程序  |  8次阅读  | 发布于:2020-07-29T23:50:26Z
Daily_Archive Shell 程序  |  11次阅读  | 发布于:2020-07-29T23:50:26Z
Hourly_Archive Shell 程序  |  8次阅读  | 发布于:2020-07-29T23:50:26Z
IP_iptables Shell 程序  |  12次阅读  | 发布于:2020-07-29T23:50:26Z
使用局部变量 Shell 程序  |  11次阅读  | 发布于:2020-07-29T23:50:25Z
使用库函数 Shell 程序  |  9次阅读  | 发布于:2020-07-29T23:50:25Z
全局变量 Shell 程序  |  7次阅读  | 发布于:2020-07-29T23:50:25Z
在函数中使用参数 Shell 程序  |  9次阅读  | 发布于:2020-07-29T23:50:25Z

最多阅读的代码

 SSH 登录失败:Host key verification failed Shell 程序  |  2467次阅读
 让你成为最历害的git提交人 Shell 程序  |  1648次阅读
 wget使用技巧 Shell 程序  |  1550次阅读
 切换到后台执行的shell命令 Shell 程序  |  1325次阅读
 查询当前网段内,那些IP被使用了 Shell 程序  |  1283次阅读
 使用shell统计代码行数 Shell 程序  |  1261次阅读
 使用Shell获取当前时间 Shell 程序  |  1216次阅读
 判断管理员 Shell 程序  |  1130次阅读
 unzip和zip指令的使用方法 Shell 程序  |  1035次阅读
 Shell按行读取文件 Shell 程序  |  916次阅读
 Shell 获取当前正在执行脚本的绝对路径 Shell 程序  |  901次阅读
 Shell的For循环的几种写法 Shell 程序  |  861次阅读
 读取Linux系统的CPU信息 Shell 程序  |  821次阅读
 字符界面加减乘除计算器 Shell 程序  |  818次阅读
 Linux下枚举所有的用户信息 Shell 程序  |  784次阅读
 找出目录中最大的文件 Shell 程序  |  725次阅读
 提取用户的账号信息 Shell 程序  |  688次阅读
 Bash Shell的文件格式 Shell 程序  |  666次阅读
 使用Shell文件判断文件或目录 Shell 程序  |  661次阅读
 shell 提取文件名和目录名 Shell 程序  |  577次阅读
 在shell中将"\n"以换行的方式输出 Shell 程序  |  495次阅读
 shell/查看Linux的磁盘大小 Shell 程序  |  407次阅读
 检查shell文件是否运行在自己的目录下 Shell 程序  |  389次阅读
 根据进程名Kill指定进程 Shell 程序  |  345次阅读
 枚举目录下的文件 Shell 程序  |  330次阅读
 枚举数组 Shell 程序  |  327次阅读