├── .gitignore ├── LICENSE ├── README.md ├── bin └── git-smb ├── etc └── config.json └── share └── data ├── cc ├── cc_ak.wav ├── cc_building.wav ├── cc_fallen.wav ├── cc_funds.wav ├── cc_nodeply.wav ├── cc_ok.wav ├── cc_pb.wav ├── cc_save.wav ├── cc_well.wav ├── cc_wish.wav └── sounds.json ├── dn ├── DN_getout.wav ├── DN_getsome.wav ├── DN_good.wav ├── DN_hail.wav ├── DN_makeday.wav ├── DN_myway.wav ├── DN_pieces.wav ├── DN_suck.wav ├── DN_talkin.wav └── sounds.json ├── smb ├── smb_1up.wav ├── smb_bowserfire.wav ├── smb_die.wav ├── smb_fireball.wav ├── smb_flagpole.wav ├── smb_gameover.wav ├── smb_jump.wav ├── smb_kick.wav ├── smb_pause.wav ├── smb_pipe.wav ├── smb_stomp.wav ├── smb_vine.wav └── sounds.json └── zelda ├── LOZ_Die.wav ├── LOZ_Fanfare.wav ├── LOZ_Get_Heart.wav ├── LOZ_Get_Item.wav ├── LOZ_Get_Rupee.wav ├── LOZ_Key.wav ├── LOZ_MagicalRod.wav ├── LOZ_Recorder.wav ├── LOZ_Secret.wav ├── LOZ_Stairs.wav ├── LOZ_Sword_Shoot.wav ├── LOZ_Unlock.wav └── sounds.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | # C extensions 6 | *.so 7 | 8 | # Distribution / packaging 9 | .Python 10 | env/ 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | *.egg-info/ 23 | .installed.cfg 24 | *.egg 25 | 26 | # PyInstaller 27 | # Usually these files are written by a python script from a template 28 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 29 | *.manifest 30 | *.spec 31 | 32 | # Installer logs 33 | pip-log.txt 34 | pip-delete-this-directory.txt 35 | 36 | # Unit test / coverage reports 37 | htmlcov/ 38 | .tox/ 39 | .coverage 40 | .coverage.* 41 | .cache 42 | nosetests.xml 43 | coverage.xml 44 | *,cover 45 | 46 | # Translations 47 | *.mo 48 | *.pot 49 | 50 | # Django stuff: 51 | *.log 52 | 53 | # Sphinx documentation 54 | docs/_build/ 55 | 56 | # PyBuilder 57 | target/ 58 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Pascal de Vink 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a small wrapper around git that plays sounds effects (currently from Super Mario Bros (NES), Zelda (NES), Command & Conquer or Duke Nukem) on common commands. 2 | Heavily inspired by Sean Farley's implementation for mercurial (https://bitbucket.org/seanfarley/smb/src) 3 | 4 | # Sounds for commands 5 | 6 | ## Super Mario Bros 7 | 8 | - clone: kick 9 | - checkout: stomp 10 | - add: jump 11 | - rm: fireball 12 | - commit: 1up 13 | - push: vine 14 | - pull: pipe 15 | - tag: pause 16 | - error: die 17 | 18 | ## Zelda 19 | 20 | - clone: fanfare 21 | - checkout: secret 22 | - add: get rupee 23 | - rm: sword shoot 24 | - commit: stairs 25 | - push: magical rod 26 | - pull: get item 27 | - tag: recoders 28 | - error: die 29 | 30 | ## Command & Conquer 31 | 32 | - clone: building 33 | - checkout: primary building selected 34 | - add: ok 35 | - rm: forces have fallen 36 | - commit: acknowledged 37 | - push: very well 38 | - pull: as you wish 39 | - tag: mission saved 40 | - error: cannot deploy here 41 | 42 | ## Duke Nukem 43 | 44 | - clone: Make my day 45 | - checkout: I do it my way 46 | - add: Are you talking to me? 47 | - rm: Get out 48 | - commit: Rest in pieces 49 | - push: Damn i'm good 50 | - pull: Get some 51 | - tag: Hail to the king 52 | - error: You guys suck 53 | 54 | [![Screencast with zelda theme](http://img.youtube.com/vi/G4Mh7brzfY4/0.jpg)](https://www.youtube.com/watch?v=G4Mh7brzfY4) 55 | 56 | 57 | # Installation 58 | 59 | ## Homebrew 60 | 61 | 1. Tap my homebrew tap: ```$ brew tap pascaldevink/pascaldevink``` 62 | 2. Update brew: ```$ brew update``` 63 | 3. Install git-smb: ```$ brew install git-smb``` 64 | 4. Bonus: put ```alias git=git-smb``` somewhere in your (ba)(z)(k)sh profile to make the wrapping complete and easy 65 | 66 | ## Manual 67 | 68 | 1. Clone or download this repository. 69 | 2. Either put the bin folder in your path or create a symlink to it (eg. in /usr/local/bin) 70 | 3. You can now use it with ```$ git-smb``` 71 | 4. Bonus: put ```alias git=git-smb``` somewhere in your (ba)(z)(k)sh profile to make the wrapping complete and easy 72 | 73 | ## Arch linux 74 | 75 | 1. Install from AUR, using e.g.: `yaourt -S git-smb` 76 | 2. You can now use it with ```$ git-smb``` 77 | 3. Bonus: put ```alias git=git-smb``` somewhere in your (ba)(z)(k)sh profile to make the wrapping complete and easy 78 | 79 | # Configuration 80 | 81 | Locate the config.json file in either /etc/config.json (for manual installations) or in /usr/local/etc/git-smb/config.json. 82 | The only configuration currently is the theme, with the following options: 83 | - smb, for Super Mario Bros themed sounds effects 84 | - zelda, for Legend Of Zelda themed sounds effects 85 | - cc, for Command & Conquer themed sound effects 86 | - dn, for Duke Nukem themed sound effects 87 | -------------------------------------------------------------------------------- /bin/git-smb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import sys 4 | import os 5 | import subprocess 6 | import tempfile 7 | import json 8 | 9 | 10 | ###################### 11 | # audio player methods 12 | ###################### 13 | 14 | def is_exe(fpath): 15 | return os.path.isfile(fpath) and os.access(fpath, os.X_OK) 16 | 17 | 18 | def which(program): 19 | fpath, fname = os.path.split(program) 20 | if fpath: 21 | if is_exe(program): 22 | return program 23 | else: 24 | for path in os.environ["PATH"].split(os.pathsep): 25 | path = path.strip('"') 26 | exe_file = os.path.join(path, program) 27 | if is_exe(exe_file): 28 | return exe_file 29 | 30 | return None 31 | 32 | 33 | def audioplayer(): 34 | for p in ('afplay', 'aplay', 'mpg123'): 35 | found = which(p) 36 | if found is not None: 37 | return found 38 | return None 39 | 40 | 41 | def play(sound): 42 | player = audioplayer() 43 | 44 | if player: 45 | datapath = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) 46 | datapath = os.path.join(datapath, 'share/data/' + get_sounds_set()) 47 | if not sound.endswith('.wav'): 48 | sound += '.wav' 49 | 50 | subprocess.Popen([player, os.path.join(datapath, sound)], 51 | stdout=open(os.devnull, 'w'), 52 | stderr=subprocess.STDOUT) 53 | 54 | 55 | ###################### 56 | # wrapper methods 57 | ###################### 58 | 59 | def what_sound(sounds, command): 60 | return sounds['commands'].get(command, None) 61 | 62 | 63 | def what_sound_on_error(sounds, command): 64 | return { 65 | 'config': None, # git config is often used to build prompts 66 | 'rev-parse': None, # git rev-parse is often used to build prompts 67 | 'describe': None, # git describe is often used to build prompts 68 | }.get(command, sounds['error']) 69 | 70 | 71 | def call_git(sounds, argv): 72 | argument_length = len(argv) 73 | argv.insert(0, 'git') 74 | argv.insert(0, '/usr/bin/env') 75 | 76 | try: 77 | with tempfile.NamedTemporaryFile() as temp: 78 | subprocess.check_call(argv) 79 | return True 80 | except subprocess.CalledProcessError as error: 81 | # Make an exception for calls without an argument. This displays the quick help, so there's not really an error. 82 | if argument_length is 0: 83 | return False 84 | 85 | sound = what_sound_on_error(sounds, argv[2]) 86 | if sound is not None: 87 | play(sound) 88 | 89 | return False 90 | 91 | 92 | def load_sounds(): 93 | datapath = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) 94 | datapath = os.path.join(datapath, 'share/data/' + get_sounds_set()) 95 | with open(os.path.join(datapath, "sounds.json")) as sound_file: 96 | sounds = json.load(sound_file) 97 | 98 | return sounds 99 | 100 | 101 | def get_sounds_set(): 102 | try: 103 | config_file = get_config_file() 104 | 105 | with open(config_file) as config_file: 106 | config = json.load(config_file) 107 | 108 | return config['theme'] 109 | except Exception as error: 110 | return 'smb' 111 | 112 | 113 | def get_config_file(): 114 | config_path1 = os.path.join('/etc/git-smb/', "config.json") 115 | config_path2 = os.path.join('/usr/local/etc/git-smb/', "config.json") 116 | config_path3 = os.path.join(os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'etc/'), "config.json") 117 | 118 | if os.path.exists(config_path1): 119 | return config_path1 120 | 121 | if os.path.exists(config_path2): 122 | return config_path2 123 | 124 | if os.path.exists(config_path3): 125 | return config_path3 126 | 127 | raise Exception("Configuration file not found") 128 | 129 | 130 | def main(argv): 131 | sounds = load_sounds() 132 | 133 | git_command = argv[0] if len(argv) > 0 else None 134 | return_value = call_git(sounds, argv) 135 | 136 | if return_value: 137 | sound = what_sound(sounds, git_command) 138 | if sound is not None: 139 | play(sound) 140 | 141 | 142 | if __name__ == "__main__": 143 | main(sys.argv[1:]) 144 | -------------------------------------------------------------------------------- /etc/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "theme": "smb" 3 | } -------------------------------------------------------------------------------- /share/data/cc/cc_ak.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/cc/cc_ak.wav -------------------------------------------------------------------------------- /share/data/cc/cc_building.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/cc/cc_building.wav -------------------------------------------------------------------------------- /share/data/cc/cc_fallen.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/cc/cc_fallen.wav -------------------------------------------------------------------------------- /share/data/cc/cc_funds.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/cc/cc_funds.wav -------------------------------------------------------------------------------- /share/data/cc/cc_nodeply.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/cc/cc_nodeply.wav -------------------------------------------------------------------------------- /share/data/cc/cc_ok.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/cc/cc_ok.wav -------------------------------------------------------------------------------- /share/data/cc/cc_pb.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/cc/cc_pb.wav -------------------------------------------------------------------------------- /share/data/cc/cc_save.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/cc/cc_save.wav -------------------------------------------------------------------------------- /share/data/cc/cc_well.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/cc/cc_well.wav -------------------------------------------------------------------------------- /share/data/cc/cc_wish.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/cc/cc_wish.wav -------------------------------------------------------------------------------- /share/data/cc/sounds.json: -------------------------------------------------------------------------------- 1 | { 2 | "commands": { 3 | "clone": "cc_building", 4 | "checkout": "cc_pb", 5 | "add": "cc_ok", 6 | "rm": "cc_fallen", 7 | "commit": "cc_ak", 8 | "push": "cc_well", 9 | "pull": "cc_wish", 10 | "tag": "cc_save" 11 | }, 12 | "error": "cc_nodeply" 13 | } 14 | -------------------------------------------------------------------------------- /share/data/dn/DN_getout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/dn/DN_getout.wav -------------------------------------------------------------------------------- /share/data/dn/DN_getsome.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/dn/DN_getsome.wav -------------------------------------------------------------------------------- /share/data/dn/DN_good.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/dn/DN_good.wav -------------------------------------------------------------------------------- /share/data/dn/DN_hail.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/dn/DN_hail.wav -------------------------------------------------------------------------------- /share/data/dn/DN_makeday.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/dn/DN_makeday.wav -------------------------------------------------------------------------------- /share/data/dn/DN_myway.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/dn/DN_myway.wav -------------------------------------------------------------------------------- /share/data/dn/DN_pieces.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/dn/DN_pieces.wav -------------------------------------------------------------------------------- /share/data/dn/DN_suck.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/dn/DN_suck.wav -------------------------------------------------------------------------------- /share/data/dn/DN_talkin.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/dn/DN_talkin.wav -------------------------------------------------------------------------------- /share/data/dn/sounds.json: -------------------------------------------------------------------------------- 1 | { 2 | "commands": { 3 | "clone": "DN_makeday", 4 | "checkout": "DN_myway", 5 | "add": "DN_talkin", 6 | "rm": "DN_getout", 7 | "commit": "DN_pieces", 8 | "push": "DN_good", 9 | "pull": "DN_getsome", 10 | "tag": "DN_hail" 11 | }, 12 | "error": "DN_suck" 13 | } 14 | -------------------------------------------------------------------------------- /share/data/smb/smb_1up.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_1up.wav -------------------------------------------------------------------------------- /share/data/smb/smb_bowserfire.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_bowserfire.wav -------------------------------------------------------------------------------- /share/data/smb/smb_die.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_die.wav -------------------------------------------------------------------------------- /share/data/smb/smb_fireball.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_fireball.wav -------------------------------------------------------------------------------- /share/data/smb/smb_flagpole.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_flagpole.wav -------------------------------------------------------------------------------- /share/data/smb/smb_gameover.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_gameover.wav -------------------------------------------------------------------------------- /share/data/smb/smb_jump.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_jump.wav -------------------------------------------------------------------------------- /share/data/smb/smb_kick.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_kick.wav -------------------------------------------------------------------------------- /share/data/smb/smb_pause.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_pause.wav -------------------------------------------------------------------------------- /share/data/smb/smb_pipe.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_pipe.wav -------------------------------------------------------------------------------- /share/data/smb/smb_stomp.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_stomp.wav -------------------------------------------------------------------------------- /share/data/smb/smb_vine.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/smb/smb_vine.wav -------------------------------------------------------------------------------- /share/data/smb/sounds.json: -------------------------------------------------------------------------------- 1 | { 2 | "commands": { 3 | "clone": "smb_kick", 4 | "checkout": "smb_stomp", 5 | "add": "smb_jump", 6 | "rm": "smb_fireball", 7 | "commit": "smb_1up", 8 | "push": "smb_vine", 9 | "pull": "smb_pipe", 10 | "tag": "smb_pause" 11 | }, 12 | "error": "smb_die" 13 | } -------------------------------------------------------------------------------- /share/data/zelda/LOZ_Die.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_Die.wav -------------------------------------------------------------------------------- /share/data/zelda/LOZ_Fanfare.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_Fanfare.wav -------------------------------------------------------------------------------- /share/data/zelda/LOZ_Get_Heart.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_Get_Heart.wav -------------------------------------------------------------------------------- /share/data/zelda/LOZ_Get_Item.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_Get_Item.wav -------------------------------------------------------------------------------- /share/data/zelda/LOZ_Get_Rupee.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_Get_Rupee.wav -------------------------------------------------------------------------------- /share/data/zelda/LOZ_Key.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_Key.wav -------------------------------------------------------------------------------- /share/data/zelda/LOZ_MagicalRod.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_MagicalRod.wav -------------------------------------------------------------------------------- /share/data/zelda/LOZ_Recorder.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_Recorder.wav -------------------------------------------------------------------------------- /share/data/zelda/LOZ_Secret.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_Secret.wav -------------------------------------------------------------------------------- /share/data/zelda/LOZ_Stairs.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_Stairs.wav -------------------------------------------------------------------------------- /share/data/zelda/LOZ_Sword_Shoot.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_Sword_Shoot.wav -------------------------------------------------------------------------------- /share/data/zelda/LOZ_Unlock.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pascaldevink/git-smb/21d91a56fec57a752106ffc478edbe4575c9587e/share/data/zelda/LOZ_Unlock.wav -------------------------------------------------------------------------------- /share/data/zelda/sounds.json: -------------------------------------------------------------------------------- 1 | { 2 | "commands": { 3 | "clone": "LOZ_Fanfare", 4 | "checkout": "LOZ_Secret", 5 | "add": "LOZ_Get_Rupee", 6 | "rm": "LOZ_Sword_Shoot", 7 | "commit": "LOZ_Stairs", 8 | "push": "LOZ_MagicalRod", 9 | "pull": "LOZ_Get_Item", 10 | "tag": "LOZ_Recoders" 11 | }, 12 | "error": "LOZ_Die" 13 | } --------------------------------------------------------------------------------