Giter VIP home page Giter VIP logo

dotfiles's Introduction

Dotfiles

CircleCI Build Status

A collection of config files that I use.

Installation

Installing will overwrite anything in the way. Run make -n first. If you are happy with that output, you can test the dotfile environment with

❯ TMP=$(mktemp -d -t HOME); HOME=$TMP make install && ls -al $TMP && unset TMP

Install common, cross-platform dotfiles to $HOME with

❯ make install

Install individual dotfiles with, e.g.

❯ make install-git

or

❯ make install-vim-config

and so forth.

Look at the Makefile to see which dotfiles are installed by default and which require running a separate task. For example, tarsnap configs only really apply to my local machine, so they are not installed by default.

Use make list to see a list of all targets, including the test targets and any auxiliary helper targets. More on test targets follows.

Tests

There is a test target in the Makefile. Not everything is tested, but I've attempted to verify the files that can be tested. If you know of a way to verify or test other dotfiles, please open an issue or let me know.

  • All zsh and bash config files and scripts are parsed by their respective shells. This includes all the zsh installation script helpers.
  • All vim config files are linted by vim-vint.
  • All dotjs files are linted by eslint.

You need bash and zsh installed to check the syntax of some installation files. Presumably, if you are using these dotfiles, you have at least those two shells installed.

In order to test the dotjs and vim config files, you need to install vim-vint and eslint. There is a test-requirements.txt to help with vim-vint, and there is a package.json to help with the javascript linters. Simply run pip install -r test-requirements.txt and npm install --only=dev to install these dependencies.

Note that you do not need to install pip and npm requirements in order to install and use these dotfiles. These requirements are only used for running tests, hence their test- and dev-specific install commands.

Inspiration and Thanks

https://sanctum.geek.nz/cgit/dotfiles.git/about/ - Makefile and overall project structure

https://github.com/holman/dotfiles - Interactive, templated gitconfig

dotfiles's People

Contributors

dependabot[bot] avatar tupton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

drgo

dotfiles's Issues

Move commands that are more complex than `install` to scripts

There are some checks and some commands that are (slightly) more complex than install directly in the Makefile. The trailing \ and the overall Makefile format makes this hard to read.

The git/setup example is a good one to follow; installation/clone of oh-my-zsh and Vundle.vim can move to external scripts. It might be worth it to script vim plugin installation – and maybe add plugin updates, too?

Split up vimrc into relevant vim/ directory structure

See https://vimways.org/2018/from-vimrc-to-vim/.

E.g. move the markdown autocommand to .vim/ftdetect/ghmarkdown. There's lots to do from that article series, so perhaps splitting that up is the best way to go.

Special care must be taken to install the vim directory structure properly, as it can be arbitrarily deep, within reason, and each level can have many differently-named directories. install can do this, but you have to explicitly name the subdirectories; see this Makefile for an example: https://sanctum.geek.nz/cgit/dotfiles.git/tree/Makefile#n603

Test dotfiles

  • zsh helper scripts can be syntax-checked
  • vimrc can be linted
  • It's possible that lein's profiles.clj can be linted

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.