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

这个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 "$@"

Shell语法快速入门

一、基本语法 1.1、shell文件开头 shell文件必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例...

发布于:11月以前  |  1209次阅读  |  详细内容 »

读取Linux系统的CPU信息

判断当前主机的CPU生产商,(其信息保存在/proc/cupinfo文件中) #如果是:AuthemticAMD ,就显示其为AMD公司 # GenuineIntel ,就显示其为 Intel公司 #否则...

发布于:11月以前  |  891次阅读  |  详细内容 »

使用git快速切换到某一次提交

如我们都知道的,使用git时,每一次提交都会产到一个ID,我们称之为commit id。那如何快速定位到某一个提交点呢?其实很简单,git checkout commitid就可以。 比如,想到回...

发布于:11月以前  |  1077次阅读  |  详细内容 »

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

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

发布于:11月以前  |  1729次阅读  |  详细内容 »

使用Shell文件判断文件或目录

-d 参数判断 $folder目录 是否存在 if [ ! -d &quot;$folder&quot;]; then mkdir &quot;$folder&quot; fi -f 参数判断 $file 是否存在 if [ ! -f &quot;$file&quot; ]; then touch &quot;$file&quot; fi -x 参数...

发布于:11月以前  |  706次阅读  |  详细内容 »

所属标签

最多阅读

SSH 登录失败:Host key verification failed 11月以前  |  2601次阅读
让你成为最历害的git提交人 11月以前  |  1729次阅读
wget使用技巧 11月以前  |  1587次阅读
切换到后台执行的shell命令 11月以前  |  1426次阅读
查询当前网段内,那些IP被使用了 11月以前  |  1399次阅读
使用shell统计代码行数 11月以前  |  1397次阅读
使用Shell获取当前时间 11月以前  |  1268次阅读
判断管理员 11月以前  |  1233次阅读
unzip和zip指令的使用方法 11月以前  |  1163次阅读
Shell按行读取文件 11月以前  |  967次阅读
读取Linux系统的CPU信息 11月以前  |  891次阅读
字符界面加减乘除计算器 11月以前  |  886次阅读
Shell的For循环的几种写法 11月以前  |  871次阅读
Linux下枚举所有的用户信息 11月以前  |  769次阅读
找出目录中最大的文件 11月以前  |  768次阅读