Add Mac support (#89)

This commit is contained in:
Cyryl Płotnicki 2017-01-26 05:44:03 +00:00 committed by GitHub
parent 2ac6310ded
commit d076f4711b
15 changed files with 270 additions and 278 deletions

View file

@ -1,26 +1,13 @@
[merge]
[mergetool "filemerge"] keepBackup = false
cmd = /Applications/Xcode.app/Contents/Applications/FileMerge.app/Contents/MacOS/FileMerge -merge $MERGED -left $LOCAL -ancestor $BASE -right $REMOTE tool = p4merge
trustExitCode = false [mergetool "p4merge"]
[core] cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$PWD/$BASE\"" "\"$PWD/$REMOTE\"" "\"$PWD/$LOCAL\"" "\"$PWD/$MERGED\""
excludesfile = /Users/cplotnicki/.gitignore_global keepTemporaries = false
[difftool "kdiff3"]
path = /Applications/kdiff3.app/Contents/MacOS/kdiff3
trustExitCode = false
[difftool]
prompt = false
[diff]
tool = kdiff3
[mergetool "kdiff3"]
path = /Applications/kdiff3.app/Contents/MacOS/kdiff3
trustExitCode = false trustExitCode = false
keepBackup = false keepBackup = false
[merge] [diff]
tool = kdiff3 tool = p4merge
[difftool "sourcetree"] [difftool "p4merge"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\" cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$REMOTE\"" "\"$LOCAL\""
path =
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
trustExitCode = true

3
.gitmodules vendored
View file

@ -1,9 +1,6 @@
[submodule "tools/icdiff.git"] [submodule "tools/icdiff.git"]
path = tools/icdiff.git path = tools/icdiff.git
url = https://github.com/jeffkaufman/icdiff.git url = https://github.com/jeffkaufman/icdiff.git
[submodule "tools/subuser"]
path = tools/subuser
url = https://github.com/subuser-security/subuser
[submodule ".vim/bundle/Vundle.vim"] [submodule ".vim/bundle/Vundle.vim"]
path = .vim/bundle/Vundle.vim path = .vim/bundle/Vundle.vim
url = https://github.com/VundleVim/Vundle.vim.git url = https://github.com/VundleVim/Vundle.vim.git

102
.hyper.js Normal file
View file

@ -0,0 +1,102 @@
module.exports = {
config: {
// default font size in pixels for all tabs
fontSize: 14,
// font family with optional fallbacks
fontFamily: '"DejaVu Sans Mono for Powerline", "DejaVu Sans Mono", Menlo, Consolas, "Lucida Console", monospace',
// terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
cursorColor: 'rgba(248,28,229,0.8)',
// `BEAM` for |, `UNDERLINE` for _, `BLOCK` for █
cursorShape: 'BLOCK',
// color of the text
foregroundColor: '#fff',
// terminal background color
backgroundColor: '#000',
// border color (window, tabs)
borderColor: '#333',
// custom css to embed in the main window
css: '',
// custom css to embed in the terminal window
termCSS: '',
// set to `true` if you're using a Linux set up
// that doesn't shows native menus
// default: `false` on Linux, `true` on Windows (ignored on macOS)
showHamburgerMenu: '',
// set to `false` if you want to hide the minimize, maximize and close buttons
// additionally, set to `'left'` if you want them on the left, like in Ubuntu
// default: `true` on windows and Linux (ignored on macOS)
showWindowControls: '',
// custom padding (css format, i.e.: `top right bottom left`)
padding: '12px 14px',
// the full list. if you're going to provide the full color palette,
// including the 6 x 6 color cubes and the grayscale map, just provide
// an array here instead of a color map object
colors: {
black: '#000000',
red: '#ff0000',
green: '#33ff00',
yellow: '#ffff00',
blue: '#0066ff',
magenta: '#cc00ff',
cyan: '#00ffff',
white: '#d0d0d0',
lightBlack: '#808080',
lightRed: '#ff0000',
lightGreen: '#33ff00',
lightYellow: '#ffff00',
lightBlue: '#0066ff',
lightMagenta: '#cc00ff',
lightCyan: '#00ffff',
lightWhite: '#ffffff'
},
// the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
// if left empty, your system's login shell will be used by default
shell: '/usr/local/bin/zsh',
// for setting shell arguments (i.e. for using interactive shellArgs: ['-i'])
// by default ['--login'] will be used
shellArgs: ['--login'],
// for environment variables
env: {},
// set to false for no bell
bell: false,
// if true, selected text will automatically be copied to the clipboard
copyOnSelect: false
// URL to custom bell
// bellSoundURL: 'http://example.com/bell.mp3',
// for advanced config flags please refer to https://hyper.is/#cfg
},
// a list of plugins to fetch and install from npm
// format: [@org/]project[#version]
// examples:
// `hyperpower`
// `@company/project`
// `project#1.0.1`
plugins: [
'hyper-solarized-dark'
],
// in development, you can create a directory under
// `~/.hyper_plugins/local/` and include it here
// to load it and avoid it being `npm install`ed
localPlugins: []
};

View file

@ -0,0 +1 @@
/Users/cyryl/dev/dotfiles/.hyper_plugins

View file

@ -0,0 +1,12 @@
{
"name": "hyper-plugins",
"description": "Auto-generated from `~/.hyper.js`!",
"private": true,
"version": "0.0.1",
"repository": "zeit/hyper",
"license": "MIT",
"homepage": "https://hyper.is",
"dependencies": {
"hyper-solarized-dark": "latest"
}
}

View file

@ -1,3 +1,4 @@
set-option -g default-command "reattach-to-user-namespace -l zsh"
set -g mouse on set -g mouse on
set -g terminal-overrides 'xterm*:smcup@:rmcup@' set -g terminal-overrides 'xterm*:smcup@:rmcup@'
set -g prefix C-a # prefix from ctrl-b to ctrl-a set -g prefix C-a # prefix from ctrl-b to ctrl-a

View file

@ -1,20 +1,27 @@
language: language: bash
- bash
script:
- ./test.sh
env:
- DETECTED_OS=fedora:24 DOCKER_IMAGE=cyplo/fedora24_base
- DETECTED_OS=fedora:25 DOCKER_IMAGE=cyplo/fedora25_base
- DETECTED_OS=debian:jessie DOCKER_IMAGE=cyplo/jessie_base
- DETECTED_OS=ubuntu:xenial DOCKER_IMAGE=cyplo/xenial_base
- DETECTED_OS=ubuntu:yakkety DOCKER_IMAGE=cyplo/yakkety_base
sudo: required sudo: required
services: services:
- docker - docker
dist: trusty
matrix:
include:
- os: osx
osx_image: xcode8.2
- os: linux
env: DETECTED_OS=fedora:24 DOCKER_IMAGE=cyplo/fedora24_base
- os: linux
env: DETECTED_OS=fedora:25 DOCKER_IMAGE=cyplo/fedora25_base
- os: linux
env: DETECTED_OS=debian:jessie DOCKER_IMAGE=cyplo/jessie_base
- os: linux
env: DETECTED_OS=ubuntu:xenial DOCKER_IMAGE=cyplo/xenial_base
- os: linux
env: DETECTED_OS=ubuntu:yakkety DOCKER_IMAGE=cyplo/yakkety_base
script:
- ./test.sh
git: git:
submodules: false submodules: false

5
.zshrc
View file

@ -31,11 +31,6 @@ prompt_dir() {
prompt_segment blue $PRIMARY_FG ' %1~ ' prompt_segment blue $PRIMARY_FG ' %1~ '
} }
# aliases
if [[ `uname` == 'Darwin' ]]; then
alias vim=/usr/local/Cellar/vim/7.4/bin/vim
fi
if [[ `uname` =~ 'CYGWIN.*' ]]; then if [[ `uname` =~ 'CYGWIN.*' ]]; then
export DISPLAY=:0.0 export DISPLAY=:0.0
fi fi

View file

@ -19,7 +19,6 @@ if [[ -z $DONT_CHANGE_SHELL ]]; then
fi fi
CURL="curl -sSfL" CURL="curl -sSfL"
jobs_count=`nproc`
if [[ -z $DIR ]]; then if [[ -z $DIR ]]; then
echo "please set DIR" echo "please set DIR"
@ -41,6 +40,8 @@ ln -vfs "$DIR/.zpreztorc" ~/.zpreztorc
ln -vfs "$DIR/.zprofile" ~/.zprofile ln -vfs "$DIR/.zprofile" ~/.zprofile
ln -vfs "$DIR/.zprezto/runcoms/zshenv" ~/.zshenv ln -vfs "$DIR/.zprezto/runcoms/zshenv" ~/.zshenv
ln -vfs "$DIR/.zshrc" ~/.zshrc ln -vfs "$DIR/.zshrc" ~/.zshrc
ln -vfs "$DIR/.hyper.js" ~/.hyper.js
ln -vfs "$DIR/.hyper_plugins" ~/.hyper_plugins
ln -vfs "$DIR/.setenv.sh" ~/.setenv ln -vfs "$DIR/.setenv.sh" ~/.setenv
ln -vfs "$DIR/.Slic3r" ~/. ln -vfs "$DIR/.Slic3r" ~/.
@ -63,8 +64,10 @@ source ~/.setenv
# symlink 'nodejs' as node on some systems # symlink 'nodejs' as node on some systems
# will replace symlink if it exists, but won't replace regular file # will replace symlink if it exists, but won't replace regular file
if [[ ! -f /usr/bin/node ]]; then if [[ ! -f /usr/bin/node ]]; then
if [[ -f /usr/bin/nodejs ]]; then
$SUDO ln -vfs /usr/bin/nodejs /usr/bin/node $SUDO ln -vfs /usr/bin/nodejs /usr/bin/node
fi fi
fi
# tools # tools
ln -vfs "$DIR/tools" ~/ ln -vfs "$DIR/tools" ~/
@ -107,6 +110,18 @@ set +e
cargo install racer cargo install racer
cargo install rustsym cargo install rustsym
cargo install ripgrep cargo install ripgrep
cd "$DIR/../"
if [[ ! -d alacritty ]]; then
git clone https://github.com/jwilm/alacritty.git --recursive
cd alacritty
else
cd alacritty
git pull
git submodule update --init --recursive
fi
rustup override set `cat rustc-version`
cargo install
set -e set -e
fi fi
@ -203,7 +218,7 @@ fi
# normalize npm permissions # normalize npm permissions
mkdir -p $HOME/.npm mkdir -p $HOME/.npm
$SUDO chown $USER $HOME/.npm -R $SUDO chown -R $USER $HOME/.npm
echo echo
echo "now go ahead and restart" echo "now go ahead and restart"

View file

@ -1,213 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Ansi 0 Color</key>
<dict>
<key>Blue Component</key>
<real>0.19370138645172119</real>
<key>Green Component</key>
<real>0.15575926005840302</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
<key>Ansi 1 Color</key>
<dict>
<key>Blue Component</key>
<real>0.14145714044570923</real>
<key>Green Component</key>
<real>0.10840655118227005</real>
<key>Red Component</key>
<real>0.81926977634429932</real>
</dict>
<key>Ansi 10 Color</key>
<dict>
<key>Blue Component</key>
<real>0.38298487663269043</real>
<key>Green Component</key>
<real>0.35665956139564514</real>
<key>Red Component</key>
<real>0.27671992778778076</real>
</dict>
<key>Ansi 11 Color</key>
<dict>
<key>Blue Component</key>
<real>0.43850564956665039</real>
<key>Green Component</key>
<real>0.40717673301696777</real>
<key>Red Component</key>
<real>0.32436618208885193</real>
</dict>
<key>Ansi 12 Color</key>
<dict>
<key>Blue Component</key>
<real>0.51685798168182373</real>
<key>Green Component</key>
<real>0.50962930917739868</real>
<key>Red Component</key>
<real>0.44058024883270264</real>
</dict>
<key>Ansi 13 Color</key>
<dict>
<key>Blue Component</key>
<real>0.72908437252044678</real>
<key>Green Component</key>
<real>0.33896297216415405</real>
<key>Red Component</key>
<real>0.34798634052276611</real>
</dict>
<key>Ansi 14 Color</key>
<dict>
<key>Blue Component</key>
<real>0.56363654136657715</real>
<key>Green Component</key>
<real>0.56485837697982788</real>
<key>Red Component</key>
<real>0.50599193572998047</real>
</dict>
<key>Ansi 15 Color</key>
<dict>
<key>Blue Component</key>
<real>0.86405980587005615</real>
<key>Green Component</key>
<real>0.95794391632080078</real>
<key>Red Component</key>
<real>0.98943418264389038</real>
</dict>
<key>Ansi 2 Color</key>
<dict>
<key>Blue Component</key>
<real>0.020208755508065224</real>
<key>Green Component</key>
<real>0.54115492105484009</real>
<key>Red Component</key>
<real>0.44977453351020813</real>
</dict>
<key>Ansi 3 Color</key>
<dict>
<key>Blue Component</key>
<real>0.023484811186790466</real>
<key>Green Component</key>
<real>0.46751424670219421</real>
<key>Red Component</key>
<real>0.64746475219726562</real>
</dict>
<key>Ansi 4 Color</key>
<dict>
<key>Blue Component</key>
<real>0.78231418132781982</real>
<key>Green Component</key>
<real>0.46265947818756104</real>
<key>Red Component</key>
<real>0.12754884362220764</real>
</dict>
<key>Ansi 5 Color</key>
<dict>
<key>Blue Component</key>
<real>0.43516635894775391</real>
<key>Green Component</key>
<real>0.10802463442087173</real>
<key>Red Component</key>
<real>0.77738940715789795</real>
</dict>
<key>Ansi 6 Color</key>
<dict>
<key>Blue Component</key>
<real>0.52502274513244629</real>
<key>Green Component</key>
<real>0.57082360982894897</real>
<key>Red Component</key>
<real>0.14679534733295441</real>
</dict>
<key>Ansi 7 Color</key>
<dict>
<key>Blue Component</key>
<real>0.79781103134155273</real>
<key>Green Component</key>
<real>0.89001238346099854</real>
<key>Red Component</key>
<real>0.91611063480377197</real>
</dict>
<key>Ansi 8 Color</key>
<dict>
<key>Blue Component</key>
<real>0.15170273184776306</real>
<key>Green Component</key>
<real>0.11783610284328461</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
<key>Ansi 9 Color</key>
<dict>
<key>Blue Component</key>
<real>0.073530435562133789</real>
<key>Green Component</key>
<real>0.21325300633907318</real>
<key>Red Component</key>
<real>0.74176257848739624</real>
</dict>
<key>Background Color</key>
<dict>
<key>Blue Component</key>
<real>0.15170273184776306</real>
<key>Green Component</key>
<real>0.11783610284328461</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
<key>Bold Color</key>
<dict>
<key>Blue Component</key>
<real>0.56363654136657715</real>
<key>Green Component</key>
<real>0.56485837697982788</real>
<key>Red Component</key>
<real>0.50599193572998047</real>
</dict>
<key>Cursor Color</key>
<dict>
<key>Blue Component</key>
<real>0.51685798168182373</real>
<key>Green Component</key>
<real>0.50962930917739868</real>
<key>Red Component</key>
<real>0.44058024883270264</real>
</dict>
<key>Cursor Text Color</key>
<dict>
<key>Blue Component</key>
<real>0.19370138645172119</real>
<key>Green Component</key>
<real>0.15575926005840302</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
<key>Foreground Color</key>
<dict>
<key>Blue Component</key>
<real>0.51685798168182373</real>
<key>Green Component</key>
<real>0.50962930917739868</real>
<key>Red Component</key>
<real>0.44058024883270264</real>
</dict>
<key>Selected Text Color</key>
<dict>
<key>Blue Component</key>
<real>0.56363654136657715</real>
<key>Green Component</key>
<real>0.56485837697982788</real>
<key>Red Component</key>
<real>0.50599193572998047</real>
</dict>
<key>Selection Color</key>
<dict>
<key>Blue Component</key>
<real>0.19370138645172119</real>
<key>Green Component</key>
<real>0.15575926005840302</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,94 @@
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" </dev/null
export PATH="/usr/local/bin:$PATH"
set -e
brew update
brew upgrade
echo "Installing basic console utils"
brew install vim
brew install aria2
brew install \
autojump \
bash \
mobile-shell \
the_silver_searcher \
tmux \
reattach-to-user-namespace --with-wrap-pbcopy-and-pbpaste \
tree \
watch \
zsh
echo "Installing networking tools"
brew install \
coreutils \
curl \
dos2unix \
findutils \
gawk \
gnu-sed \
gnupg2 \
gpg-agent \
htop-osx \
httpie \
httping \
jq \
moreutils \
pinentry \
pinentry-mac \
socat \
unrar \
wget
echo "Installing programmming tools"
brew install \
carthage \
cmake \
elm \
git \
haskell-stack \
heroku \
mercurial \
node \
python \
python3 \
ruby \
sqlite \
tidy-html5 \
doxygen \
go
echo "Installing GUI tools"
brew cask install gimp
brew cask install iterm2
brew cask install docker
brew cask install p4merge
brew cask install appcode
echo "Settings up zsh"
if ! fgrep /usr/local/bin/zsh /etc/shells; then
sudo bash -c "echo /usr/local/bin/zsh >> /etc/shells"
fi
echo "Brew cleanup"
brew linkapps
brew cleanup
brew prune
brew doctor
echo "Configuring NVRAM"
sudo nvram SystemAudioVolume=%80
DIR="$DIR/../"
if [[ -z $CONTINUOUS_INTEGRATION ]]; then
echo "Invoking common configuration scripts"
DIR="$DIR" $DIR/common/configure_fresh_system.sh
fi
ln -vfs "$DIR/.gitconfig.mac" ~/.gitconfig

View file

@ -1,4 +1,11 @@
#!/bin/bash #!/bin/bash
set -e
if [[ $TRAVIS_OS_NAME == "osx" ]]; then
export DONT_CHANGE_SHELL=true
./macosx/configure_fresh_system.sh
exit 0
fi
if [[ -z $DETECTED_OS ]]; then if [[ -z $DETECTED_OS ]]; then
echo "cannot detect OS, please set DETECTED_OS manually" echo "cannot detect OS, please set DETECTED_OS manually"

View file

@ -13,5 +13,8 @@ RESOLVED_ARGUMENTS="$@"
docker run -i -t -v "$CURRENT_DIRECTORY":"$MOUNT_PATH":Z $IMAGE bash -c "useradd -M -d '$MOUNT_PATH' $USERNAME && cd '$MOUNT_PATH' && bash -c '$RESOLVED_ARGUMENTS'" docker run -i -t -v "$CURRENT_DIRECTORY":"$MOUNT_PATH":Z $IMAGE bash -c "useradd -M -d '$MOUNT_PATH' $USERNAME && cd '$MOUNT_PATH' && bash -c '$RESOLVED_ARGUMENTS'"
# restore SELinux context for the current directory # restore SELinux context for the current directory
restorecon_path=`which restorecon`
if [[ -x "$restorecon_path" ]]; then
restorecon -R "$CURRENT_DIRECTORY" restorecon -R "$CURRENT_DIRECTORY"
fi

@ -1 +0,0 @@
Subproject commit 9a21e86753a7a3d4628aa612558291c9108fdc16

View file

@ -1,15 +0,0 @@
#!/bin/bash
# detect if building inside a CI system, like Travis
set -e
echo "choosing totally noninteractive installation method"
COMMAND_PREFIX="DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confnew\"";
curl --silent --location https://deb.nodesource.com/setup_0.12 | sudo bash
sudo apt-get update
INSTALL_COMMAND="sudo $COMMAND_PREFIX install meld whois zsh tmux vim atop aria2 curl pv gajim tor torsocks nodejs terminator gsmartcontrol python-pip mesa-utils mesa-utils-extra aptitude p7zip-full p7zip-rar thunderbird mercurial kdiff3 gnupg2 python3-setuptools realpath python3-dev python3 apt-file golang"
eval ${INSTALL_COMMAND}
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
DIR="$DIR/../"
DONT_CHANGE_SHELL=TRUE DIR="$DIR" $DIR/common/configure_fresh_system.sh