#!/usr/bin/env bash # Source: https://bitbucket.org/tpettersen/git-sham/ if [ -z "$1" ]; then echo "git-sham manipulates the commit message of the most recent commit until the SHA matches a particular pattern." echo "Usage: git-sham " exit fi EMOJIS=("😀" "😬" "😂" "😄" "😅" "😇" "😋" "😘" "😚" "😜" "🤑" "😎" "🤗" "😳" "🙄" "😤" "😱" "😨" "😰" "😥" "🤒" "😭" "💩" "👹" "💀" "👻" "👽" "🤖" "😺" "😹" "😻" "😼" "😽" "🙀" "😿" "😾" "🙌" "👏" "👋" "👍" "👊" "✊" "✌️" "👌" "✋" "👐" "💪" "☝️" "🙏" "👆" "🖐" "🤘" "🖖" "✍️" "💅" "👄" "👅" "👂" "👁" "👀" "👶" "👦" "👧" "👨" "👩" "👱" "👴" "👵" "👲" "👳" "👷" "💂" "🕵" "🎅" "👼" "👸" "👰" "🚶" "🏃" "💃" "👯" "👫" "👬" "👭" "🙇" "💁" "🙅" "🙆" "🙋" "🙎" "🙍" "💇" "💆" "💑" "👨‍❤️‍👨" "💏" "👩‍❤️‍💋‍👩" "👨‍❤️‍💋‍👨" "👩‍👩‍👦" "👨‍👨‍👦" "👮" "👚" "👕" "👖" "👔" "👗" "👙" "👘" "💄" "💋" "🎩" "👟" "👞" "👢" "👡" "👠" "👣" "⛑" "🎓" "👑" "🎒" "👝" "👛" "👜" "💼" "🌂" "💍" "🕶" "👓" "🐯" "🦁" "🐮" "🐷" "🐽" "🐸" "🐙" "🐵" "🐦" "🐧" "🐔" "🐒" "🙉" "🙈" "🐣" "🐥" "🐺" "🐗" "🐴" "🦄" "🐝" "🐛" "🐢" "🦀" "🦂" "🕷" "🐜" "🐞" "🐌" "🐠" "🐟" "🐡" "🐬" "🐋" "🐊" "🐆" "🐘" "🐫" "🐪" "🐄" "🐂" "🐃" "🐏" "🐑" "🐀" "🐁" "🐓" "🦃" "🐉" "🐾" "🐿" "🐇" "🐈" "🐩" "🐕" "🐲" "🌵" "🎄" "🌲" "🌴" "🌱" "🌿" "🌾" "🍁" "🍂" "🍃" "🎋" "🎍" "🍀" "🌺" "🌻" "🌹" "🌷" "🌼" "🌸" "💐" "🍄" "🎃" "🐚" "🌎" "🌍" "🌏" "🌕" "🌖" "🌗" "🌘" "🌑" "🌒" "🌓" "🌔" "🌚" "🌝" "🌛" "🌜" "🌞" "⭐️" "🌟" "💫" "✨" "☄️" "🌥" "🌦" "🌧" "⛈" "⚡️" "🔥" "❄️" "🌨" "☔️" "☂️" "🌪" "💨" "☃️" "⛄️" "💧" "💦" "🌊" "🍏" "🍎" "🍐" "🍋" "🍌" "🍉" "🍇" "🌶" "🍅" "🍍" "🍑" "🍈" "🍓" "🌽" "🍠" "🍯" "🍞" "🍗" "🧀" "🍖" "🍤" "🌯" "🌮" "🍝" "🍕" "🌭" "🍟" "🍔" "🍳" "🍜" "🍲" "🍥" "🍣" "🍱" "🍛" "🍙" "🍚" "🎂" "🍰" "🍦" "🍨" "🍧" "🍡" "🍢" "🍘" "🍮" "🍬" "🍭" "🍫" "🍿" "🍩" "🍪" "🍺" "☕️" "🍵" "🍶" "🍹" "🍻" "🍼" "🍴" "🍷" "🍽" "⚽️" "🏀" "🏈" "⚾️" "🎾" "🏐" "🏉" "🎱" "🎿" "🏏" "🏑" "🏓" "🏌" "⛳️" "⛷" "🏂" "⛸" "🏹" "🎣" "🚣" "🏊🏼" "🏄" "🏆" "🕴" "🏇" "🚵" "🚴" "🏋" "⛹" "🛀" "🎽" "🏅" "🎖" "🎗" "🏵" "🎫" "🎟" "🎭" "🎺" "🎷" "🎹" "🎤" "🎪" "🎨" "🎸" "🎻" "🎬" "🎮" "👾" "🎯" "🎲" "🎰" "🎳" "🚗" "🚕" "🚙" "🚌" "🚎" "🏎" "🚓" "🚒" "🚐" "🚛" "🚜" "🏍" "🚲" "🚨" "🚃" "🚟" "🚠" "🚡" "🚖" "🚘" "🚍" "🚔" "🚋" "🚝" "🚄" "🚅" "🚈" "🚞" "🚂" "🚆" "🛬" "🛫" "✈️" "🛩" "🚁" "🚉" "🚊" "🚇" "⛵️" "🛥" "🚤" "⛴" "🚀" "🛳" "🛰" "💺" "🏁" "🚥" "🚦" "🚏" "⛽️" "🚧" "⚓️" "🎡" "🎢" "🎠" "🏗" "🌁" "🗼" "🏭" "⛲️" "⛺️" "🏕" "🗾" "🌋" "🗻" "🏔" "⛰" "🎑" "🏞" "🛣" "🛤" "🌅" "🌄" "🏜" "🏖" "🏝" "🎇" "🌠" "🌌" "🌉" "🌃" "🏙" "🌆" "🌇" "🎆" "🌈" "🏘" "🏰" "🏯" "🏠" "🗽" "🏟" "🏡" "🏚" "🏢" "🏬" "🏣" "🏤" "🏥" "🏦" "🕌" "⛪️" "🏛" "💒" "🏩" "🏫" "🏪" "🏨" "🕍" "🕋" "⛩" "🕹" "💽" "💾" "💿" "📼" "📷" "📹" "🎥" "☎️" "⏱" "🎙" "📻" "📺" "📠" "📟" "⏲" "⏰" "🕰" "⏳" "📡" "🔋" "💴" "💵" "💸" "🛢" "🔦" "💡" "💶" "💷" "💰" "💳" "💎" "🔨" "💣" "🔫" "🔪" "☠️" "🔮" "💈" "💊" "💉" "🔖" "🚿" "🔑" "🛋" "🚪" "🛎" "🖼" "🎁" "🎀" "🎏" "🎈" "🛍" "⛱" "🗺" "🎊" "🎉" "🎎" "🎐" "🎌" "🏮" "📮" "📫" "📯" "📊" "🗃" "📇" "📅" "📉" "📈" "📰" "📕" "📙" "📒" "✂️" "🖇" "📖" "📚" "📌" "📍" "🚩" "❤️" "💔" "❣️" "💕" "💓" "💗" "💖" "💘" "💝" "💠" "🔔") random_emoji() { echo ${EMOJIS[$RANDOM % ${#EMOJIS[@]}]} } COMMIT=$(git cat-file -p HEAD) export EMOJI while ! [[ $SHA =~ $1 ]]; do EMOJI=$(random_emoji)$(random_emoji)$(random_emoji) SHA=$(echo "$COMMIT $EMOJI" | git hash-object --stdin -t commit) done SHA=$(echo "$COMMIT $EMOJI" | git hash-object --stdin -t commit -w) git reset $SHA git --no-pager log --oneline -1