Dotfiles for Khan Academy website developers.
Shell Other
Clone or download
Pull request Compare This branch is 247 commits ahead of divad12:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.git_template
.vim/ftplugin
.arcconfig
.arclint
.bash_profile.khan
.bashrc.khan
.gitconfig.khan
.gitconfig.khan-xtra
.profile.khan
Makefile
README.markdown
bash_profile.default
bashrc.default
git-completion.bash
gitignore.template
linux-setup.sh
mac-android-emulator.sh
mac-android-setup.sh
mac-ios-setup.sh
mac-setup.sh
profile.default
setup.sh
shared-functions.sh

README.markdown

💻 🍎 🐧 khan-dotfiles 🐧 🍎 💻

This repository contains configuration files and setup scripts for the Khan Academy web developer environment. This includes a variety of things, some very Khan-specific, some not, including:

  • the Khan linter
  • various git aliases, including for working with submodules
  • tools needed to run a dev server for the Khan webapp
  • other useful and "useful" miscellany

This is meant to complement the developer setup documentation in EngDocs. If you run into any problems with this script, contact the Infrastructure team, such as by pinging @dev-support on Slack.

Setup

Run the following commands:

mkdir -p ~/khan/devtools
cd ~/khan/devtools
git clone https://github.com/Khan/khan-dotfiles.git
cd khan-dotfiles
make

This will install your system: installing executables, python libraries, dotfiles, etc. It will not overwrite any of your existing dotfiles but will emit a warning if it sees something it doesn't understand.

If you later need to fix up your setup, or get updates to it, you can do:

cd ~/khan/devtools/khan-dotfiles
git pull
make

This script is idempotent, so it should be safe to run it multiple times. We support macOS and Ubuntu, using bash, but other flavors of Linux and other shells may work too.

Hacking on khan-dotfiles

Pull requests, whether to fix bugs, or add new goodies, are welcome! A few notes to keep in mind:

  • If you make nontrivial changes to the setup script, make sure to test them! The best way is to run the script on a blank VM, and check that make quickcheck passes. See EngDocs for instructions on VM setup.
  • Make sure to keep the script idempotent! Running it on a working dev setup should avoid breaking anything. You can keep it that way by making sure to no-op if a package is already installed or setup, and so on.

Ask in #infrastructure-devops if you have any questions, and thanks for the contributions!

Credits

The khan-dotfiles are now maintained by the DevOps group within the Infrastructure Team; ping them (e.g. @dev-support in Slack) if you have any questions or run into problems. They were originally extracted from David's dotfiles, with commits and lines here and there stolen from Jamie, Desmond, and others. Non-dotfile config files, and the setup script, were originally written by Craig Silverstein. Pull requests are welcome!