Skip to content

Commit

Permalink
v2.0.0: one OS per branch, currently Debian/Ubuntu and OS X
Browse files Browse the repository at this point in the history
- Update Changelog, License and Readme from Develop branch (checkout).
- See README.md for more information on the current repo structure
  • Loading branch information
TheMatjaz committed Feb 16, 2016
1 parent de0f8dc commit 96f6fcf
Show file tree
Hide file tree
Showing 3 changed files with 115 additions and 54 deletions.
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
v2.0.0
===============================================================================


Added
----------------------------------------

- One `git` branch per operative system:
- currently `debian-ubuntu` and `mac-osx`
- removes portability issues of any configuration file or script
- allows scalability to more operative systems
- one operative system simply stays on its branch all the time without
caring for others
- Explicit license header in every file, except Markdown files


Changed
----------------------------------------

- Typo in `LICENSE.md` (missing "the copyright holder")
- Adapted `README.md` to the new branches


Removed
----------------------------------------

- Portability of operative-system specific scripts
- Anything except `README.md`, `LICENSE.md` and `CHANGELOG.md` from `master`
branch


v1.2.0
===============================================================================

Expand Down
15 changes: 9 additions & 6 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
Matjaž's dotfiles license
-------------------------

The _Matjaž's dotfiles_ repository and all it's files are released under the
_BSD 3-clause License_, also known as _Revised BSD License_, _New BSD License_
or _Modified BSD License_.
or _Modified BSD License_. The full text of the license follows.

********************************************************************************

_Copyright © 2015, Matjaž Guštin <dev@matjaz.it> <http://matjaz.it>_
*******************************************************************************


_Copyright © 2015-2016, Matjaž Guštin <dev@matjaz.it> <http://matjaz.it>_
_All rights reserved._

Redistribution and use in source and binary forms, with or without modification,
Expand All @@ -17,9 +20,9 @@ are permitted provided that the following conditions are met:
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of nor the names of its contributors may be used to endorse
or promote products derived from this software without specific prior written
permission.
3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS “AS IS” AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
Expand Down
123 changes: 75 additions & 48 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,66 @@
Matjaž Dotfiles Repository
==========================
Matjaž's dotfiles
===============================================================================

_a.k.a. yet another dotfiles repo but now with powerful installer scripts_
Highly customized dotfiles with one operative system per branch and powerful
installer and updater scripts.

Contained files
---------------

What are dotfiles anyway?
----------------------------------------

Dotfiles are user's configuration files on Unix/Linux/BSD/OS X operative
systems. Their filename begins with a dot `.` (thus the name _dotfiles_),
making them hidden files; they are usually places in the user's home
directory `~`.

Having a published repository of your whole system configuration (with some
installers), allows fast and no-pain set-up of any newly installed machine
anywhere, especially some servers that are controlled only by command line
by `ssh`.


Installation of _Matjaž's dotfiles_
----------------------------------------

This repository has no dotfiles on the master branch but there is **one _Git_
branch for each operative system**. This helps using the OS-specific packager
managers (`apt-get`, `brew`, ...) and make OS-specific changes (for instance
`mc` and `htop` have different configuration files on Linux and OS X).

**To install _Matjaž's dotfiles_, run one of the following commands**. It
downloads and run the installer for your specific OS found in that OS's branch.

The installer should handle all the rest with an **interactive command line
interface**. It installs the dotfiles repository (by default in
`~/Development/Dotfiles`, but you can change that), all the required packages,
_HomeBrew_ (OS X only) and _Oh My ZSH!_.

_Git_ is required by the installer to clone the branch of your OS.


### Debian/Ubuntu

Basically Linuxes with `apt-get`.

```bash
# Using curl
bash -c "$(curl -fsSL https://raw.github.com/TheMatjaz/dotfiles/debian-ubuntu/matjaz_dotfiles_installer.sh)"

# Or using wget
bash -c "$(wget https://raw.github.com/TheMatjaz/dotfiles/debian-ubuntu/matjaz_dotfiles_installer.sh -O -)"
```


### Apple OS X (Mac)

```bash
# Using curl
bash -c "$(curl -fsSL https://raw.github.com/TheMatjaz/dotfiles/mac-osx/matjaz_dotfiles_installer.sh)"
```


What is each dotfile for?
----------------------------------------

#### Configuration files

Expand All @@ -17,26 +73,22 @@ Contained files
theme for _Oh My ZSH!_
- [`gitconfig`](gitconfig): general _Git_ settings
- [`gitignore_global`](gitignore_global): a list of files _Git_ should ignore in
any repository
any repository. Those are used also by Mercurial
- [`hgrc`](hgrc): general _Mercurial_ settings
- [`emacs_init.el`](emacs_init.el): _Emacs_ configuration that also installs some
ELPA packages, if not already installed, to completely clone an existing
- [`emacs_init.el`](emacs_init.el): _Emacs_ configuration that also installs
some ELPA packages, if not already installed, to completely clone an existing
configuration
- [`htoprc`](htoprc): looks and columns for `htop` process viewer
- [`screenrc`](screenrc): basic settings of `screen` terminal multiplexer
- [`wgetrc`](wgetrc): global configurations of the `wget` command line
downloader


#### Installer/automation scripts

Those scripts are meant to be portable, so they react differently based on the
operative system. Currently are implemented for _OS X_ and _Linux
Debian/Ubuntu_.
#### Installers/automation scripts

- [`matjaz_dotfiles_installer.sh`](matjaz_dotfiles_installer.sh) **does all the
work for you** (see _Installation_ section below). It's an interactive installer
which allows:
work for you** (see _Installation_ section above). It's an interactive
installer which allows:
- downloading this repository
- downloading all the required packages for the dotfiles, like _Emacs_ or
_Oh My ZSH!_
Expand All @@ -45,52 +97,26 @@ Debian/Ubuntu_.
- and a few more small things
- [`new_system_packages_installer.sh`](new_system_packages_installer.sh)
installs some packages which the Matjaž's dotfiles are for. It calls the
system's package manager. Currently only for `brew` + `brew cask` or
`apt-get`. Can be run stand-alone but the `matjaz_dotfiles_installer.sh` calls
it for you as well.
system's package manager. **Can be run stand-alone**. The
`matjaz_dotfiles_installer.sh` calls it for you as well.
- [`full_system_updater.sh`](full_system_updater.sh) just like
`new_system_packages_installs.sh` detects the operative system and updates all
the packages of its package managers. Currently only for `brew` + `brew cask`
or `apt-get`, `pip3` and `gem`. Can be run stand-alone but the
`matjaz_dotfiles_installer.sh` calls it for you as well.
the packages of its package managers. **Can be run stand-alone**.
The `matjaz_dotfiles_installer.sh` calls it optionally during the install.
- [`useful_packages.md`](useful_packages.md) is a simple list containing
packages generally worth installing on any system (it's not an executable,
just a memo).


Installation
------------

All you need to do is download and run the
[`matjaz_dotfiles_installer.sh`](matjaz_dotfiles_installer.sh) which should
handle all the rest with an **interactive command line interface**. It installs
the dotfiles repository in `~/Development/Dotfiles` (by default), all the
required packages, _HomeBrew_ and _Oh My ZSH!_.

_Git_ is obviously required to clone the repository.

**Just run one of the following commands** to download, install and activate this dotfiles
repository, either by `wget` or `curl`.

##### Using `wget`
```bash
bash -c "$(wget https://raw.github.com/TheMatjaz/dotfiles/master/matjaz_dotfiles_installer.sh -O -)"
```

##### Using `curl`
```bash
bash -c "$(curl -fsSL https://raw.github.com/TheMatjaz/dotfiles/master/matjaz_dotfiles_installer.sh)"
```

License
-------
----------------------------------------

This dotfiles repository is released under the
This dotfiles repository and all its files are released under the
[BSD 3-clause license](LICENSE.md).


Thanks to
---------
----------------------------------------

Those repositories were used as a huge inspiration, some functions and
aliases were also taken from them. All of those repositories are subject to the
Expand All @@ -100,6 +126,7 @@ owners.
- [Mathias Bynens's dotfiles](https://github.com/mathiasbynens/dotfiles)
- [Holman's dotfiles](https://github.com/holman/dotfiles)
- [Joined's dotfiles](https://github.com/joined/dotfiles)
- [A huge list of other dotfiles repositories](https://dotfiles.github.io)
- [Oh My ZSH installation scripts](http://github.com/robbyrussell/oh-my-zsh/tree/master/tools)

Some really useful documentation about the dotfiles repositories may be found
Expand Down

0 comments on commit 96f6fcf

Please sign in to comment.