Compare commits
No commits in common. "master" and "sandboxes" have entirely different histories.
28
.gitignore
vendored
28
.gitignore
vendored
@ -1,23 +1,5 @@
|
|||||||
# Ignore everything
|
.DS_Store
|
||||||
*
|
mono/httplistener/*
|
||||||
# But not these files...
|
jesseduffield/lazygit/state.yml
|
||||||
!README.md
|
gcloud
|
||||||
!.gitignore
|
configstore/update-notifier-npm.json
|
||||||
!bash/**
|
|
||||||
!tmux/tmux.conf
|
|
||||||
!tmux/setup.sh
|
|
||||||
!tmux/plugins/tpm
|
|
||||||
!scripts/*
|
|
||||||
!nano/*
|
|
||||||
!x11/**
|
|
||||||
!git/*
|
|
||||||
!vscode/*
|
|
||||||
!Terminal/*
|
|
||||||
!starship.toml
|
|
||||||
!Brewfile
|
|
||||||
#directory catchall
|
|
||||||
!*/
|
|
||||||
|
|
||||||
.gitmodules
|
|
||||||
tmux/plugins/tmux-sensible/
|
|
||||||
tmux/plugins/tmux/
|
|
||||||
|
6
.gitmodules
vendored
6
.gitmodules
vendored
@ -1,6 +0,0 @@
|
|||||||
[submodule "/Users/jchenry/.config/tmux/plugins/tpm"]
|
|
||||||
path = /Users/jchenry/.config/tmux/plugins/tpm
|
|
||||||
url = https://github.com/tmux-plugins/tpm
|
|
||||||
[submodule "/Users/colin.henry/.config/tmux/plugins/tpm"]
|
|
||||||
path = /Users/colin.henry/.config/tmux/plugins/tpm
|
|
||||||
url = https://github.com/tmux-plugins/tpm
|
|
55
Brewfile
55
Brewfile
@ -1,18 +1,49 @@
|
|||||||
tap "homebrew/bundle"
|
#tap "homebrew/bundle"
|
||||||
tap "homebrew/cask"
|
#tap "homebrew/cask"
|
||||||
tap "homebrew/cask-fonts"
|
#tap "homebrew/core"
|
||||||
tap "homebrew/core"
|
brew "docker"
|
||||||
|
brew "drone-cli"
|
||||||
brew "git"
|
brew "git"
|
||||||
brew "btop"
|
brew "git-flow"
|
||||||
|
brew "graphviz"
|
||||||
brew "jq"
|
brew "jq"
|
||||||
brew "make"
|
brew "mas"
|
||||||
brew "starship"
|
brew "mosh"
|
||||||
|
brew "ncurses"
|
||||||
|
brew "plantuml"
|
||||||
|
brew "pv"
|
||||||
|
brew "rclone"
|
||||||
|
brew "reattach-to-user-namespace"
|
||||||
|
brew "terraform"
|
||||||
brew "tmux"
|
brew "tmux"
|
||||||
cask "1password"
|
brew "watch"
|
||||||
|
brew "wget"
|
||||||
|
brew "youtube-dl"
|
||||||
cask "aerial"
|
cask "aerial"
|
||||||
cask "font-meslo-for-powerline"
|
cask "discord"
|
||||||
cask "font-meslo-lg-dz"
|
cask "disk-inventory-x"
|
||||||
cask "obsidian"
|
cask "geekbench"
|
||||||
cask "omnifocus"
|
cask "hazel"
|
||||||
|
cask "minecraft"
|
||||||
|
cask "paragon-ntfs"
|
||||||
cask "spotify"
|
cask "spotify"
|
||||||
cask "visual-studio-code"
|
cask "visual-studio-code"
|
||||||
|
cask "zoomus"
|
||||||
|
mas "1Password 7", id: 1333542190
|
||||||
|
mas "AdBlock", id: 1402042596
|
||||||
|
mas "Base", id: 402383384
|
||||||
|
mas "Cyberduck", id: 409222199
|
||||||
|
mas "Day One", id: 1055511498
|
||||||
|
mas "Evernote", id: 406056744
|
||||||
|
mas "Evernote Web Clipper", id: 1481669779
|
||||||
|
mas "GarageBand", id: 682658836
|
||||||
|
mas "iMovie", id: 408981434
|
||||||
|
mas "Keynote", id: 409183694
|
||||||
|
mas "My Net", id: 931314293
|
||||||
|
mas "Numbers", id: 409203825
|
||||||
|
mas "Pages", id: 409201541
|
||||||
|
mas "Parcel", id: 639968404
|
||||||
|
mas "PDFpen", id: 403624960
|
||||||
|
mas "ScreenFlow", id: 917790450
|
||||||
|
mas "Skitch", id: 425955336
|
||||||
|
mas "Slack", id: 803453959
|
||||||
|
29
README.md
29
README.md
@ -1,29 +0,0 @@
|
|||||||
|
|
||||||
## Steps to bootstrap a new Mac
|
|
||||||
|
|
||||||
1. Install Apple's Command Line Tools, which are prerequisites for Git and Homebrew.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
xcode-select --install
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Clone repo into new hidden directory.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Use SSH (if set up)...
|
|
||||||
git clone git@github.com:jchenry/dotfiles.git ~/.config
|
|
||||||
|
|
||||||
# ...or use HTTPS and switch remotes later.
|
|
||||||
git clone https://github.com/jchenry/dotfiles.git ~/.config
|
|
||||||
```
|
|
||||||
|
|
||||||
3. run setup scripts
|
|
||||||
|
|
||||||
```bash
|
|
||||||
~/.config/scripts/acct.sh
|
|
||||||
~/.config/scripts/brew-setup.sh
|
|
||||||
~/.config/macos-defaults.sh
|
|
||||||
~/.config/bash/setup.sh
|
|
||||||
~/.config/tmux/setup.sh
|
|
||||||
~/.config/vscode/setup.sh
|
|
||||||
```
|
|
@ -1,6 +0,0 @@
|
|||||||
#!/usr/bin/env bash -eo pipefail
|
|
||||||
# Taken from: https://apple.stackexchange.com/questions/344401/how-to-programatically-set-terminal-theme-profile
|
|
||||||
theme=$(<theme.xml)
|
|
||||||
plutil -replace Window\ Settings.Dracula -xml "$theme" ~/Library/Preferences/com.apple.Terminal.plist
|
|
||||||
defaults write com.apple.Terminal "Default Window Settings" -string "DraculaTest"
|
|
||||||
defaults write com.apple.Terminal "Startup Window Settings" -string "DraculaTest"
|
|
@ -1,195 +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>ANSIBlackColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAnMC4xNTY4NjI3NDUxIDAuMTY0NzA1ODgy
|
|
||||||
NCAwLjIxMTc2NDcwNTkAEAKAAtIUFRYXWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xv
|
|
||||||
cqIWGFhOU09iamVjdAgRGiQpMjdJTFFTV11kand+qKqssbzFzdAAAAAAAAABAQAAAAAA
|
|
||||||
AAAZAAAAAAAAAAAAAAAAAAAA2Q==
|
|
||||||
</data>
|
|
||||||
<key>ANSIBlueColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAmMC43NDExNzY0ODYgMC41NzY0NzA2MTM1
|
|
||||||
IDAuOTc2NDcwNTg5NgAQAYAC0hQVFhdaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9y
|
|
||||||
ohYYWE5TT2JqZWN0CBEaJCkyN0lMUVNXXWRqd36nqauwu8TMzwAAAAAAAAEBAAAAAAAA
|
|
||||||
ABkAAAAAAAAAAAAAAAAAAADY
|
|
||||||
</data>
|
|
||||||
<key>ANSIBrightBlackColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAnMC4yNjY2NjY2NjY3IDAuMjc4NDMxMzcy
|
|
||||||
NSAwLjM1Mjk0MTE3NjUAEAKAAtIUFRYXWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xv
|
|
||||||
cqIWGFhOU09iamVjdAgRGiQpMjdJTFFTV11kand+qKqssbzFzdAAAAAAAAABAQAAAAAA
|
|
||||||
AAAZAAAAAAAAAAAAAAAAAAAA2Q==
|
|
||||||
</data>
|
|
||||||
<key>ANSIBrightBlueColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAmMC43OTIxNTY4NjI3IDAuNjYyNzQ1MDk4
|
|
||||||
IDAuOTgwMzkyMTU2OQAQAYAC0hQVFhdaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9y
|
|
||||||
ohYYWE5TT2JqZWN0CBEaJCkyN0lMUVNXXWRqd36nqauwu8TMzwAAAAAAAAEBAAAAAAAA
|
|
||||||
ABkAAAAAAAAAAAAAAAAAAADY
|
|
||||||
</data>
|
|
||||||
<key>ANSIBrightCyanColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAnMC42MDM5MjE1Njg2IDAuOTI5NDExNzY0
|
|
||||||
NyAwLjk5NjA3ODQzMTQAEAGAAtIUFRYXWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xv
|
|
||||||
cqIWGFhOU09iamVjdAgRGiQpMjdJTFFTV11kand+qKqssbzFzdAAAAAAAAABAQAAAAAA
|
|
||||||
AAAZAAAAAAAAAAAAAAAAAAAA2Q==
|
|
||||||
</data>
|
|
||||||
<key>ANSIBrightGreenColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAmMC4zNTI5NDExNzY1IDAuOTY4NjI3NDUx
|
|
||||||
IDAuNTU2ODYyNzQ1MQAQAYAC0hQVFhdaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9y
|
|
||||||
ohYYWE5TT2JqZWN0CBEaJCkyN0lMUVNXXWRqd36nqauwu8TMzwAAAAAAAAEBAAAAAAAA
|
|
||||||
ABkAAAAAAAAAAAAAAAAAAADY
|
|
||||||
</data>
|
|
||||||
<key>ANSIBrightMagentaColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAcMSAwLjU3MjU0OTAxOTYgMC44MTU2ODYy
|
|
||||||
NzQ1ABABgALSFBUWF1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiFhhYTlNPYmpl
|
|
||||||
Y3QIERokKTI3SUxRU1ddZGp3fp2foaaxusLFAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAA
|
|
||||||
AAAAAAAAAM4=
|
|
||||||
</data>
|
|
||||||
<key>ANSIBrightRedColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAbMSAwLjQzMTM3MjU0OSAwLjQwMzkyMTU2
|
|
||||||
ODYAEAGAAtIUFRYXWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqIWGFhOU09iamVj
|
|
||||||
dAgRGiQpMjdJTFFTV11kand+nJ6gpbC5wcQAAAAAAAABAQAAAAAAAAAZAAAAAAAAAAAA
|
|
||||||
AAAAAAAAzQ==
|
|
||||||
</data>
|
|
||||||
<key>ANSIBrightWhiteColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAnMC45NzI1NDkwMTk2IDAuOTcyNTQ5MDE5
|
|
||||||
NiAwLjk0OTAxOTYwNzgAEAKAAtIUFRYXWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xv
|
|
||||||
cqIWGFhOU09iamVjdAgRGiQpMjdJTFFTV11kand+qKqssbzFzdAAAAAAAAABAQAAAAAA
|
|
||||||
AAAZAAAAAAAAAAAAAAAAAAAA2Q==
|
|
||||||
</data>
|
|
||||||
<key>ANSIBrightYellowColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAmMC45NDUwOTgwNDI1IDAuOTgwMzkyMTU4
|
|
||||||
IDAuNTQ5MDE5NjM0NwAQAYAC0hQVFhdaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9y
|
|
||||||
ohYYWE5TT2JqZWN0CBEaJCkyN0lMUVNXXWRqd36nqauwu8TMzwAAAAAAAAEBAAAAAAAA
|
|
||||||
ABkAAAAAAAAAAAAAAAAAAADY
|
|
||||||
</data>
|
|
||||||
<key>ANSICyanColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAnMC41NDUwOTgwNjYzIDAuOTEzNzI1NDk1
|
|
||||||
MyAwLjk5MjE1Njg2MzIAEAGAAtIUFRYXWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xv
|
|
||||||
cqIWGFhOU09iamVjdAgRGiQpMjdJTFFTV11kand+qKqssbzFzdAAAAAAAAABAQAAAAAA
|
|
||||||
AAAZAAAAAAAAAAAAAAAAAAAA2Q==
|
|
||||||
</data>
|
|
||||||
<key>ANSIGreenColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAmMC4zMTM3MjU1MDEzIDAuOTgwMzkyMTU4
|
|
||||||
IDAuNDgyMzUyOTQyMgAQAYAC0hQVFhdaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9y
|
|
||||||
ohYYWE5TT2JqZWN0CBEaJCkyN0lMUVNXXWRqd36nqauwu8TMzwAAAAAAAAEBAAAAAAAA
|
|
||||||
ABkAAAAAAAAAAAAAAAAAAADY
|
|
||||||
</data>
|
|
||||||
<key>ANSIMagentaColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAcMSAwLjQ3NDUwOTgwNTQgMC43NzY0NzA2
|
|
||||||
MDE2ABABgALSFBUWF1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiFhhYTlNPYmpl
|
|
||||||
Y3QIERokKTI3SUxRU1ddZGp3fp2foaaxusLFAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAA
|
|
||||||
AAAAAAAAAM4=
|
|
||||||
</data>
|
|
||||||
<key>ANSIRedColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAcMSAwLjMzMzMzMzM0MzMgMC4zMzMzMzMz
|
|
||||||
NDMzABABgALSFBUWF1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiFhhYTlNPYmpl
|
|
||||||
Y3QIERokKTI3SUxRU1ddZGp3fp2foaaxusLFAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAA
|
|
||||||
AAAAAAAAAM4=
|
|
||||||
</data>
|
|
||||||
<key>ANSIYellowColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAmMC45NDUwOTgwNDI1IDAuOTgwMzkyMTU4
|
|
||||||
IDAuNTQ5MDE5NjM0NwAQAYAC0hQVFhdaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9y
|
|
||||||
ohYYWE5TT2JqZWN0CBEaJCkyN0lMUVNXXWRqd36nqauwu8TMzwAAAAAAAAEBAAAAAAAA
|
|
||||||
ABkAAAAAAAAAAAAAAAAAAADY
|
|
||||||
</data>
|
|
||||||
<key>BackgroundColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAnMC4xMTc2NTgxMTU5IDAuMTIyMTUyNzIz
|
|
||||||
NCAwLjE1OTc3ODM3MTUAEAGAAtIUFRYXWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xv
|
|
||||||
cqIWGFhOU09iamVjdAgRGiQpMjdJTFFTV11kand+qKqssbzFzdAAAAAAAAABAQAAAAAA
|
|
||||||
AAAZAAAAAAAAAAAAAAAAAAAA2Q==
|
|
||||||
</data>
|
|
||||||
<key>Bell</key>
|
|
||||||
<false/>
|
|
||||||
<key>Font</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGkCwwVFlUkbnVsbNQNDg8QERIT
|
|
||||||
FFZOU1NpemVYTlNmRmxhZ3NWTlNOYW1lViRjbGFzcyNAKAAAAAAAABAQgAKAA18QE01l
|
|
||||||
c2xvTEdTRFpOLVJlZ3VsYXLSFxgZGlokY2xhc3NuYW1lWCRjbGFzc2VzVk5TRm9udKIZ
|
|
||||||
G1hOU09iamVjdAgRGiQpMjdJTFFTWF5nbnd+hY6QkpSqr7rDys0AAAAAAAABAQAAAAAA
|
|
||||||
AAAcAAAAAAAAAAAAAAAAAAAA1g==
|
|
||||||
</data>
|
|
||||||
<key>FontAntialias</key>
|
|
||||||
<true/>
|
|
||||||
<key>ProfileCurrentVersion</key>
|
|
||||||
<real>2.0699999999999998</real>
|
|
||||||
<key>SelectionColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAnMC4yNjY2NjY2ODA2IDAuMjc4NDMxMzg1
|
|
||||||
OCAwLjM1Mjk0MTE4NTIAEAGAAtIUFRYXWiRjbGFzc25hbWVYJGNsYXNzZXNXTlNDb2xv
|
|
||||||
cqIWGFhOU09iamVjdAgRGiQpMjdJTFFTV11kand+qKqssbzFzdAAAAAAAAABAQAAAAAA
|
|
||||||
AAAZAAAAAAAAAAAAAAAAAAAA2Q==
|
|
||||||
</data>
|
|
||||||
<key>TextBoldColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAcMC40MTk2MDc4NDMxIDAuNDU4ODIzNTI5
|
|
||||||
NCAxABABgALSFBUWF1okY2xhc3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiFhhYTlNPYmpl
|
|
||||||
Y3QIERokKTI3SUxRU1ddZGp3fp2foaaxusLFAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAA
|
|
||||||
AAAAAAAAAM4=
|
|
||||||
</data>
|
|
||||||
<key>TextColor</key>
|
|
||||||
<data>
|
|
||||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
|
|
||||||
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
|
|
||||||
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzRjEgMSAxABABgALSFBUWF1okY2xhc3NuYW1l
|
|
||||||
WCRjbGFzc2VzV05TQ29sb3KiFhhYTlNPYmplY3QIERokKTI3SUxRU1ddZGp3foWHiY6Z
|
|
||||||
oqqtAAAAAAAAAQEAAAAAAAAAGQAAAAAAAAAAAAAAAAAAALY=
|
|
||||||
</data>
|
|
||||||
<key>name</key>
|
|
||||||
<string>Dracula</string>
|
|
||||||
<key>type</key>
|
|
||||||
<string>Window Settings</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
@ -1,9 +1,9 @@
|
|||||||
#!/usr/bin/env bash -eo pipefail
|
#!/usr/bin/env bash -eo pipefail
|
||||||
|
|
||||||
ACCT=`whoami`
|
ACCT=`whoami`
|
||||||
read -p "email: " EMAIL
|
|
||||||
|
|
||||||
# change default shell back to bash
|
# change default shell back to bash
|
||||||
chsh -s /bin/bash $ACCT
|
chsh -s /bin/bash $ACCT
|
||||||
|
|
||||||
# Generate keypair for use with github
|
# Generate keypair for use with github
|
||||||
ssh-keygen -o -a 100 -t ed25519 -f $HOME/.ssh/id_ed25519 -C "$EMAIL"
|
ssh-keygen -o -a 100 -t ed25519 -f $HOME/.ssh/id_ed25519 -C "colin@jchenry.me"
|
@ -1,5 +1,6 @@
|
|||||||
export BASH_SILENCE_DEPRECATION_WARNING=1
|
export BASH_SILENCE_DEPRECATION_WARNING=1
|
||||||
|
|
||||||
BASHRC_D=~/.config/bash/rc.d
|
BASHRC_D=~/.config/bashrc.d
|
||||||
[[ -r ${BASHRC_D}/bootstrap ]] && . ${BASHRC_D}/bootstrap
|
[[ -r ${BASHRC_D}/bootstrap ]] && . ${BASHRC_D}/bootstrap
|
||||||
|
|
||||||
|
. $XDG_CONFIG_HOME/bash/sandboxes/sandbox.sh
|
@ -1,2 +0,0 @@
|
|||||||
export PATH=$PATH:/opt/homebrew/bin
|
|
||||||
export PATH=/usr/local/sbin:$PATH
|
|
@ -1,3 +0,0 @@
|
|||||||
export SPACESHIP_HOST_SHOW=always
|
|
||||||
export SPACESHIP_USER_SHOW=always
|
|
||||||
eval "$(starship init bash)"
|
|
@ -1,2 +0,0 @@
|
|||||||
export JAVA_HOME=$HOME/Library/Java/JavaVirtualMachines/openjdk-18.0.2.1/Contents/Home
|
|
||||||
export PATH=$PATH:$JAVA_HOME/bin
|
|
@ -1,2 +0,0 @@
|
|||||||
export PATH=$PATH:/usr/local/terraform
|
|
||||||
|
|
BIN
bash/sandboxes/.DS_Store
vendored
Executable file
BIN
bash/sandboxes/.DS_Store
vendored
Executable file
Binary file not shown.
16
bash/sandboxes/Makefile.core
Executable file
16
bash/sandboxes/Makefile.core
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#
|
||||||
|
# All the common tasks
|
||||||
|
#
|
||||||
|
|
||||||
|
build:
|
||||||
|
docker build --tag=$(TAG) .
|
||||||
|
echo "Build $(TAG) Complete"
|
||||||
|
|
||||||
|
clean:
|
||||||
|
docker rmi $(TAG)
|
||||||
|
|
||||||
|
bash:
|
||||||
|
docker run --rm -it $(TAG) bash
|
||||||
|
|
||||||
|
push:
|
||||||
|
docker push $(TAG)
|
BIN
bash/sandboxes/goshell/.DS_Store
vendored
Executable file
BIN
bash/sandboxes/goshell/.DS_Store
vendored
Executable file
Binary file not shown.
72
bash/sandboxes/goshell/Dockerfile
Executable file
72
bash/sandboxes/goshell/Dockerfile
Executable file
@ -0,0 +1,72 @@
|
|||||||
|
FROM docker:18.09.7-dind
|
||||||
|
|
||||||
|
# # set up nsswitch.conf for Go's "netgo" implementation
|
||||||
|
# # - https://github.com/golang/go/blob/go1.9.1/src/net/conf.go#L194-L275
|
||||||
|
# # - docker run --rm debian:stretch grep '^hosts:' /etc/nsswitch.conf
|
||||||
|
# RUN [ ! -e /etc/nsswitch.conf ] && echo 'hosts: files dns' > /etc/nsswitch.conf
|
||||||
|
|
||||||
|
ENV GOLANG_VERSION 1.13.5
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
apk add --no-cache --virtual .build-deps \
|
||||||
|
bash \
|
||||||
|
gcc \
|
||||||
|
musl-dev \
|
||||||
|
openssl \
|
||||||
|
go \
|
||||||
|
; \
|
||||||
|
export \
|
||||||
|
# set GOROOT_BOOTSTRAP such that we can actually build Go
|
||||||
|
GOROOT_BOOTSTRAP="$(go env GOROOT)" \
|
||||||
|
# ... and set "cross-building" related vars to the installed system's values so that we create a build targeting the proper arch
|
||||||
|
# (for example, if our build host is GOARCH=amd64, but our build env/image is GOARCH=386, our build needs GOARCH=386)
|
||||||
|
GOOS="$(go env GOOS)" \
|
||||||
|
GOARCH="$(go env GOARCH)" \
|
||||||
|
GOHOSTOS="$(go env GOHOSTOS)" \
|
||||||
|
GOHOSTARCH="$(go env GOHOSTARCH)" \
|
||||||
|
; \
|
||||||
|
# also explicitly set GO386 and GOARM if appropriate
|
||||||
|
# https://github.com/docker-library/golang/issues/184
|
||||||
|
apkArch="$(apk --print-arch)"; \
|
||||||
|
case "$apkArch" in \
|
||||||
|
armhf) export GOARM='6' ;; \
|
||||||
|
x86) export GO386='387' ;; \
|
||||||
|
esac; \
|
||||||
|
\
|
||||||
|
wget -O go.tgz "https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz"; \
|
||||||
|
echo '27d356e2a0b30d9983b60a788cf225da5f914066b37a6b4f69d457ba55a626ff *go.tgz' | sha256sum -c -; \
|
||||||
|
tar -C /usr/local -xzf go.tgz; \
|
||||||
|
rm go.tgz; \
|
||||||
|
\
|
||||||
|
cd /usr/local/go/src; \
|
||||||
|
./make.bash; \
|
||||||
|
\
|
||||||
|
rm -rf \
|
||||||
|
# https://github.com/golang/go/blob/0b30cf534a03618162d3015c8705dd2231e34703/src/cmd/dist/buildtool.go#L121-L125
|
||||||
|
/usr/local/go/pkg/bootstrap \
|
||||||
|
# https://golang.org/cl/82095
|
||||||
|
# https://github.com/golang/build/blob/e3fe1605c30f6a3fd136b561569933312ede8782/cmd/release/releaselet.go#L56
|
||||||
|
/usr/local/go/pkg/obj \
|
||||||
|
; \
|
||||||
|
apk del .build-deps; \
|
||||||
|
\
|
||||||
|
export PATH="/usr/local/go/bin:$PATH"; \
|
||||||
|
go version
|
||||||
|
|
||||||
|
ENV GOPATH /go
|
||||||
|
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
|
||||||
|
|
||||||
|
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
|
||||||
|
WORKDIR $GOPATH
|
||||||
|
|
||||||
|
|
||||||
|
RUN apk add --no-cache shadow bash docker-cli
|
||||||
|
RUN sed -i 's/^CREATE_MAIL_SPOOL=yes/CREATE_MAIL_SPOOL=no/' /etc/default/useradd
|
||||||
|
ADD scripts/startup.sh /startup.sh
|
||||||
|
RUN chmod +x /startup.sh
|
||||||
|
|
||||||
|
RUN mkdir /project
|
||||||
|
WORKDIR /project
|
||||||
|
|
||||||
|
|
||||||
|
ENTRYPOINT ["/startup.sh"]
|
153
bash/sandboxes/goshell/Dockerfile.old
Executable file
153
bash/sandboxes/goshell/Dockerfile.old
Executable file
@ -0,0 +1,153 @@
|
|||||||
|
# Go cross compiler (xgo): Base cross-compilation layer
|
||||||
|
# Copyright (c) 2014 Péter Szilágyi. All rights reserved.
|
||||||
|
#
|
||||||
|
# Released under the MIT license.
|
||||||
|
|
||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
MAINTAINER Péter Szilágyi <peterke@gmail.com>
|
||||||
|
|
||||||
|
# Mark the image as xgo enabled to support xgo-in-xgo
|
||||||
|
ENV XGO_IN_XGO 1
|
||||||
|
|
||||||
|
|
||||||
|
# Configure the Go environment, since it's not going to change
|
||||||
|
ENV PATH /usr/local/go/bin:$PATH
|
||||||
|
ENV GOPATH /go
|
||||||
|
|
||||||
|
|
||||||
|
# Inject the remote file fetcher and checksum verifier
|
||||||
|
ADD scripts/fetch.sh /fetch.sh
|
||||||
|
ENV FETCH /fetch.sh
|
||||||
|
RUN chmod +x $FETCH
|
||||||
|
|
||||||
|
|
||||||
|
# Make sure apt-get is up to date and dependent packages are installed
|
||||||
|
RUN \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y automake autogen build-essential ca-certificates \
|
||||||
|
gcc-5-arm-linux-gnueabi g++-5-arm-linux-gnueabi libc6-dev-armel-cross \
|
||||||
|
gcc-5-arm-linux-gnueabihf g++-5-arm-linux-gnueabihf libc6-dev-armhf-cross \
|
||||||
|
gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu libc6-dev-arm64-cross \
|
||||||
|
gcc-5-mips-linux-gnu g++-5-mips-linux-gnu libc6-dev-mips-cross \
|
||||||
|
gcc-5-mipsel-linux-gnu g++-5-mipsel-linux-gnu libc6-dev-mipsel-cross \
|
||||||
|
gcc-5-mips64-linux-gnuabi64 g++-5-mips64-linux-gnuabi64 libc6-dev-mips64-cross \
|
||||||
|
gcc-5-mips64el-linux-gnuabi64 g++-5-mips64el-linux-gnuabi64 libc6-dev-mips64el-cross \
|
||||||
|
gcc-5-multilib g++-5-multilib gcc-mingw-w64 g++-mingw-w64 clang llvm-dev \
|
||||||
|
libtool libxml2-dev uuid-dev libssl-dev swig openjdk-8-jdk pkg-config patch \
|
||||||
|
make xz-utils cpio wget zip unzip p7zip git mercurial bzr texinfo help2man \
|
||||||
|
--no-install-recommends
|
||||||
|
|
||||||
|
# Fix any stock package issues
|
||||||
|
RUN ln -s /usr/include/asm-generic /usr/include/asm
|
||||||
|
|
||||||
|
# Configure the container for OSX cross compilation
|
||||||
|
ENV OSX_SDK MacOSX10.11.sdk
|
||||||
|
ENV OSX_NDK_X86 /usr/local/osx-ndk-x86
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
OSX_SDK_PATH=https://s3.dockerproject.org/darwin/v2/$OSX_SDK.tar.xz && \
|
||||||
|
$FETCH $OSX_SDK_PATH dd228a335194e3392f1904ce49aff1b1da26ca62 && \
|
||||||
|
\
|
||||||
|
git clone https://github.com/tpoechtrager/osxcross.git && \
|
||||||
|
mv `basename $OSX_SDK_PATH` /osxcross/tarballs/ && \
|
||||||
|
\
|
||||||
|
sed -i -e 's|-march=native||g' /osxcross/build_clang.sh /osxcross/wrapper/build.sh && \
|
||||||
|
UNATTENDED=yes OSX_VERSION_MIN=10.6 /osxcross/build.sh && \
|
||||||
|
mv /osxcross/target $OSX_NDK_X86 && \
|
||||||
|
\
|
||||||
|
rm -rf /osxcross
|
||||||
|
|
||||||
|
ADD scripts/patch.tar.xz $OSX_NDK_X86/SDK/$OSX_SDK/usr/include/c++
|
||||||
|
ENV PATH $OSX_NDK_X86/bin:$PATH
|
||||||
|
|
||||||
|
# # Configure the container for iOS cross compilation
|
||||||
|
# ENV IOS_NDK_ARM_7 /usr/local/ios-ndk-arm-7
|
||||||
|
# ENV IOS_NDK_ARM64 /usr/local/ios-ndk-arm64
|
||||||
|
# ENV IOS_SIM_NDK_AMD64 /usr/local/ios-sim-ndk-amd64
|
||||||
|
|
||||||
|
# ADD scripts/update_ios.sh /update_ios.sh
|
||||||
|
# ENV UPDATE_IOS /update_ios.sh
|
||||||
|
# RUN chmod +x $UPDATE_IOS
|
||||||
|
|
||||||
|
# RUN \
|
||||||
|
# IOS_SDK_PATH=https://sdks.website/dl/iPhoneOS9.3.sdk.tbz2 && \
|
||||||
|
# $FETCH $IOS_SDK_PATH db5ecf91617abf26d3db99e769bd655b943905e5 && \
|
||||||
|
# mv `basename $IOS_SDK_PATH` iPhoneOS9.3.sdk.tar.bz2 && \
|
||||||
|
# $UPDATE_IOS /iPhoneOS9.3.sdk.tar.bz2 && \
|
||||||
|
# rm -rf /iPhoneOS9.3.sdk.tar.bz2
|
||||||
|
|
||||||
|
# # Configure the container for Android cross compilation
|
||||||
|
# ENV ANDROID_NDK android-ndk-r11c
|
||||||
|
# ENV ANDROID_NDK_PATH http://dl.google.com/android/repository/$ANDROID_NDK-linux-x86_64.zip
|
||||||
|
# ENV ANDROID_NDK_ROOT /usr/local/$ANDROID_NDK
|
||||||
|
# ENV ANDROID_NDK_LIBC $ANDROID_NDK_ROOT/sources/cxx-stl/gnu-libstdc++/4.9
|
||||||
|
# ENV ANDROID_PLATFORM 21
|
||||||
|
# ENV ANDROID_CHAIN_ARM arm-linux-androideabi-4.9
|
||||||
|
# ENV ANDROID_CHAIN_ARM64 aarch64-linux-android-4.9
|
||||||
|
# ENV ANDROID_CHAIN_386 x86-4.9
|
||||||
|
|
||||||
|
# RUN \
|
||||||
|
# $FETCH $ANDROID_NDK_PATH de5ce9bddeee16fb6af2b9117e9566352aa7e279 && \
|
||||||
|
# unzip `basename $ANDROID_NDK_PATH` \
|
||||||
|
# "$ANDROID_NDK/build/*" \
|
||||||
|
# "$ANDROID_NDK/sources/cxx-stl/gnu-libstdc++/4.9/include/*" \
|
||||||
|
# "$ANDROID_NDK/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi*/*" \
|
||||||
|
# "$ANDROID_NDK/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64*/*" \
|
||||||
|
# "$ANDROID_NDK/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/*" \
|
||||||
|
# "$ANDROID_NDK/prebuilt/linux-x86_64/*" \
|
||||||
|
# "$ANDROID_NDK/platforms/*/arch-arm/*" \
|
||||||
|
# "$ANDROID_NDK/platforms/*/arch-arm64/*" \
|
||||||
|
# "$ANDROID_NDK/platforms/*/arch-x86/*" \
|
||||||
|
# "$ANDROID_NDK/toolchains/$ANDROID_CHAIN_ARM/*" \
|
||||||
|
# "$ANDROID_NDK/toolchains/$ANDROID_CHAIN_ARM64/*" \
|
||||||
|
# "$ANDROID_NDK/toolchains/$ANDROID_CHAIN_386/*" -d /usr/local > /dev/null && \
|
||||||
|
# rm -f `basename $ANDROID_NDK_PATH`
|
||||||
|
|
||||||
|
# ENV PATH /usr/$ANDROID_CHAIN_ARM/bin:$PATH
|
||||||
|
# ENV PATH /usr/$ANDROID_CHAIN_ARM64/bin:$PATH
|
||||||
|
# ENV PATH /usr/$ANDROID_CHAIN_386/bin:$PATH
|
||||||
|
|
||||||
|
# Inject the old Go package downloader and tool-chain bootstrapper
|
||||||
|
ADD scripts/bootstrap.sh /bootstrap.sh
|
||||||
|
ENV BOOTSTRAP /bootstrap.sh
|
||||||
|
RUN chmod +x $BOOTSTRAP
|
||||||
|
|
||||||
|
# Inject the new Go root distribution downloader and bootstrapper
|
||||||
|
ADD scripts/bootstrap_pure.sh /bootstrap_pure.sh
|
||||||
|
ENV BOOTSTRAP_PURE /bootstrap_pure.sh
|
||||||
|
RUN chmod +x $BOOTSTRAP_PURE
|
||||||
|
|
||||||
|
# Inject the Go source distribution downloader and bootstrapper
|
||||||
|
ADD scripts/bootstrap_repo.sh /bootstrap_repo.sh
|
||||||
|
ENV BOOTSTRAP_REPO /bootstrap_repo.sh
|
||||||
|
RUN chmod +x $BOOTSTRAP_REPO
|
||||||
|
|
||||||
|
# Inject the C dependency cross compiler
|
||||||
|
ADD scripts/build_deps.sh /build_deps.sh
|
||||||
|
ENV BUILD_DEPS /build_deps.sh
|
||||||
|
RUN chmod +x $BUILD_DEPS
|
||||||
|
|
||||||
|
# Inject the container entry point, the build script
|
||||||
|
ADD scripts/build.sh /build.sh
|
||||||
|
ENV BUILD /build.sh
|
||||||
|
# RUN chmod +x $BUILD
|
||||||
|
|
||||||
|
# ENTRYPOINT ["/build.sh"]
|
||||||
|
|
||||||
|
ENV GO_VERSION 1111
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
export ROOT_DIST=https://storage.googleapis.com/golang/go1.11.5.linux-amd64.tar.gz && \
|
||||||
|
export ROOT_DIST_SHA=ff54aafedff961eb94792487e827515da683d61a5f9482f668008832631e5d25 && \
|
||||||
|
\
|
||||||
|
$BOOTSTRAP_PURE
|
||||||
|
|
||||||
|
ADD scripts/startup.sh /startup.sh
|
||||||
|
RUN chmod +x /startup.sh
|
||||||
|
|
||||||
|
RUN mkdir /project
|
||||||
|
WORKDIR /project
|
||||||
|
|
||||||
|
|
||||||
|
ENTRYPOINT ["/startup.sh"]
|
16
bash/sandboxes/goshell/Makefile
Executable file
16
bash/sandboxes/goshell/Makefile
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#
|
||||||
|
# Build tasks for this Dockerfile
|
||||||
|
#
|
||||||
|
|
||||||
|
TAG=jchenry/goshell
|
||||||
|
|
||||||
|
include ../Makefile.core
|
||||||
|
|
||||||
|
bash:
|
||||||
|
docker run --rm -it --privileged -v /var/run/docker.sock:/var/run/docker.sock $(TAG) bash
|
||||||
|
|
||||||
|
|
||||||
|
# clean:
|
||||||
|
|
||||||
|
# $(MAKE) -f Makefile.common $@
|
||||||
|
# rm whatever additional things
|
6
bash/sandboxes/goshell/include.sh
Executable file
6
bash/sandboxes/goshell/include.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
#includes for go zsh config
|
||||||
|
function goshell() {
|
||||||
|
__docker_bash "goshell" "/project"
|
||||||
|
}
|
71
bash/sandboxes/goshell/scripts/bootstrap.sh
Executable file
71
bash/sandboxes/goshell/scripts/bootstrap.sh
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Contains the Go tool-chain bootstrapper, that retrieves all the configured
|
||||||
|
# distribution packages, extracts the binaries and deletes anything not needed.
|
||||||
|
#
|
||||||
|
# Usage: bootstrap.sh
|
||||||
|
#
|
||||||
|
# Needed environment variables:
|
||||||
|
# FETCH - Remote file fetcher and checksum verifier (injected by image)
|
||||||
|
# DIST_LINUX_64, DIST_LINUX_64_SHA - 64 bit Linux Go binaries and checksum
|
||||||
|
# DIST_LINUX_32, DIST_LINUX_32_SHA - 32 bit Linux Go binaries and checksum
|
||||||
|
# DIST_LINUX_ARM, DIST_LINUX_ARM_SHA - ARM v5 Linux Go binaries and checksum
|
||||||
|
# DIST_OSX_64, DIST_OSX_64_SHA - 64 bit Mac OSX Go binaries and checksum
|
||||||
|
# DIST_OSX_32, DIST_OSX_32_SHA - 32 bit Mac OSX Go binaries and checksum
|
||||||
|
# DIST_WIN_64, DIST_WIN_64_SHA - 64 bit Windows Go binaries and checksum
|
||||||
|
# DIST_WIN_32, DIST_WIN_32_SHA - 32 bit Windows Go binaries and checksum
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download and verify all the binary packages
|
||||||
|
$FETCH $DIST_LINUX_64 $DIST_LINUX_64_SHA
|
||||||
|
$FETCH $DIST_LINUX_32 $DIST_LINUX_32_SHA
|
||||||
|
$FETCH $DIST_LINUX_ARM $DIST_LINUX_ARM_SHA
|
||||||
|
$FETCH $DIST_OSX_64 $DIST_OSX_64_SHA
|
||||||
|
$FETCH $DIST_OSX_32 $DIST_OSX_32_SHA
|
||||||
|
$FETCH $DIST_WIN_64 $DIST_WIN_64_SHA
|
||||||
|
$FETCH $DIST_WIN_32 $DIST_WIN_32_SHA
|
||||||
|
|
||||||
|
# Extract the 64 bit Linux package as the primary Go SDK
|
||||||
|
tar -C /usr/local -xzf `basename $DIST_LINUX_64`
|
||||||
|
rm -f `basename $DIST_LINUX_64`
|
||||||
|
|
||||||
|
export GOROOT=/usr/local/go
|
||||||
|
export GOROOT_BOOTSTRAP=$GOROOT
|
||||||
|
|
||||||
|
# Extract all other packages as secondary ones, keeping only the binaries
|
||||||
|
if [ "$DIST_LINUX_32" != "" ]; then
|
||||||
|
tar -C /usr/local --wildcards -xzf `basename $DIST_LINUX_32` go/pkg/linux_386*
|
||||||
|
GOOS=linux GOARCH=386 /usr/local/go/pkg/tool/linux_amd64/dist bootstrap
|
||||||
|
rm -f `basename $DIST_LINUX_32`
|
||||||
|
fi
|
||||||
|
if [ "$DIST_LINUX_ARM" != "" ]; then
|
||||||
|
tar -C /usr/local --wildcards -xzf `basename $DIST_LINUX_ARM` go/pkg/linux_arm*
|
||||||
|
GOOS=linux GOARCH=arm /usr/local/go/pkg/tool/linux_amd64/dist bootstrap
|
||||||
|
rm -f `basename $DIST_LINUX_ARM`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$DIST_OSX_64" != "" ]; then
|
||||||
|
tar -C /usr/local --wildcards -xzf `basename $DIST_OSX_64` go/pkg/darwin_amd64*
|
||||||
|
GOOS=darwin GOARCH=amd64 /usr/local/go/pkg/tool/linux_amd64/dist bootstrap
|
||||||
|
rm -f `basename $DIST_OSX_64`
|
||||||
|
fi
|
||||||
|
if [ "$DIST_OSX_32" != "" ]; then
|
||||||
|
tar -C /usr/local --wildcards -xzf `basename $DIST_OSX_32` go/pkg/darwin_386*
|
||||||
|
GOOS=darwin GOARCH=386 /usr/local/go/pkg/tool/linux_amd64/dist bootstrap
|
||||||
|
rm -f `basename $DIST_OSX_32`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$DIST_WIN_64" != "" ]; then
|
||||||
|
unzip -d /usr/local -q `basename $DIST_WIN_64` go/pkg/windows_amd64*
|
||||||
|
GOOS=windows GOARCH=amd64 /usr/local/go/pkg/tool/linux_amd64/dist bootstrap
|
||||||
|
rm -f `basename $DIST_WIN_64`
|
||||||
|
fi
|
||||||
|
if [ "$DIST_WIN_32" != "" ]; then
|
||||||
|
unzip -d /usr/local -q `basename $DIST_WIN_32` go/pkg/windows_386*
|
||||||
|
GOOS=windows GOARCH=386 /usr/local/go/pkg/tool/linux_amd64/dist bootstrap
|
||||||
|
rm -f `basename $DIST_WIN_32`
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install xgo within the container to enable internal cross compilation
|
||||||
|
echo "Installing xgo-in-xgo..."
|
||||||
|
go get -u github.com/karalabe/xgo
|
67
bash/sandboxes/goshell/scripts/bootstrap_pure.sh
Executable file
67
bash/sandboxes/goshell/scripts/bootstrap_pure.sh
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Contains the Go tool-chain pure-Go bootstrapper, that as of Go 1.5, initiates
|
||||||
|
# not only a few pre-built Go cross compilers, but rather bootstraps all of the
|
||||||
|
# supported platforms from the origin Linux amd64 distribution.
|
||||||
|
#
|
||||||
|
# Usage: bootstrap_pure.sh
|
||||||
|
#
|
||||||
|
# Environment variables for remote bootstrapping:
|
||||||
|
# FETCH - Remote file fetcher and checksum verifier (injected by image)
|
||||||
|
# ROOT_DIST - 64 bit Linux Go binary distribution package
|
||||||
|
# ROOT_DIST_SHA - 64 bit Linux Go distribution package checksum
|
||||||
|
#
|
||||||
|
# Environment variables for local bootstrapping:
|
||||||
|
# GOROOT - Path to the lready installed Go runtime
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download, verify and install the root distribution if pulled remotely
|
||||||
|
if [ "$GOROOT" == "" ]; then
|
||||||
|
$FETCH $ROOT_DIST $ROOT_DIST_SHA
|
||||||
|
|
||||||
|
tar -C /usr/local -xzf `basename $ROOT_DIST`
|
||||||
|
rm -f `basename $ROOT_DIST`
|
||||||
|
|
||||||
|
export GOROOT=/usr/local/go
|
||||||
|
fi
|
||||||
|
export GOROOT_BOOTSTRAP=$GOROOT
|
||||||
|
|
||||||
|
# Pre-build all guest distributions based on the root distribution
|
||||||
|
echo "Bootstrapping linux/386..."
|
||||||
|
GOOS=linux GOARCH=386 CGO_ENABLED=1 go install std
|
||||||
|
|
||||||
|
echo "Bootstrapping linux/arm64..."
|
||||||
|
GOOS=linux GOARCH=arm64 CGO_ENABLED=1 CC=aarch64-linux-gnu-gcc-5 go install std
|
||||||
|
|
||||||
|
if [ $GO_VERSION -ge 170 ]; then
|
||||||
|
echo "Bootstrapping linux/mips64..."
|
||||||
|
GOOS=linux GOARCH=mips64 CGO_ENABLED=1 CC=mips64-linux-gnuabi64-gcc-5 go install std
|
||||||
|
|
||||||
|
echo "Bootstrapping linux/mips64le..."
|
||||||
|
GOOS=linux GOARCH=mips64le CGO_ENABLED=1 CC=mips64el-linux-gnuabi64-gcc-5 go install std
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $GO_VERSION -ge 180 ]; then
|
||||||
|
echo "Bootstrapping linux/mips..."
|
||||||
|
GOOS=linux GOARCH=mips CGO_ENABLED=1 CC=mips-linux-gnu-gcc-5 go install std
|
||||||
|
|
||||||
|
echo "Bootstrapping linux/mipsle..."
|
||||||
|
GOOS=linux GOARCH=mipsle CGO_ENABLED=1 CC=mipsel-linux-gnu-gcc-5 go install std
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Bootstrapping windows/amd64..."
|
||||||
|
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc go install std
|
||||||
|
|
||||||
|
echo "Bootstrapping windows/386..."
|
||||||
|
GOOS=windows GOARCH=386 CGO_ENABLED=1 CC=i686-w64-mingw32-gcc go install std
|
||||||
|
|
||||||
|
echo "Bootstrapping darwin/amd64..."
|
||||||
|
GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 CC=o64-clang go install std
|
||||||
|
|
||||||
|
echo "Bootstrapping darwin/386..."
|
||||||
|
GOOS=darwin GOARCH=386 CGO_ENABLED=1 CC=o32-clang go install std
|
||||||
|
|
||||||
|
# Install xgo within the container to enable internal cross compilation
|
||||||
|
echo "Installing xgo-in-xgo..."
|
||||||
|
go get -u github.com/karalabe/xgo
|
||||||
|
ln -s /go/bin/xgo /usr/bin/xgo
|
35
bash/sandboxes/goshell/scripts/bootstrap_repo.sh
Executable file
35
bash/sandboxes/goshell/scripts/bootstrap_repo.sh
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Contains the Go tool-chain source repository bootstrapper, that builds and
|
||||||
|
# bootstraps a Go environment from the official GitHub repository, opposed to
|
||||||
|
# using pre-build packages.
|
||||||
|
#
|
||||||
|
# Usage: bootstrap_repo.sh <branch>
|
||||||
|
#
|
||||||
|
# Needed environment variables:
|
||||||
|
# FETCH - Remote file fetcher and checksum verifier (injected by image)
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Define the paths to deploy the bootstrapper and the final distribution
|
||||||
|
export GOROOT=/usr/local/go
|
||||||
|
export GOROOT_BOOTSTRAP=${GOROOT}-boot
|
||||||
|
|
||||||
|
# Download and install the Go bootstrap distribution
|
||||||
|
BOOT_DIST=https://storage.googleapis.com/golang/go1.4.3.linux-amd64.tar.gz
|
||||||
|
BOOT_DIST_SHA=332b64236d30a8805fc8dd8b3a269915b4c507fe
|
||||||
|
|
||||||
|
$FETCH $BOOT_DIST $BOOT_DIST_SHA
|
||||||
|
|
||||||
|
tar -C /usr/local -xzf `basename $BOOT_DIST`
|
||||||
|
rm -f `basename $BOOT_DIST`
|
||||||
|
mv $GOROOT $GOROOT_BOOTSTRAP
|
||||||
|
|
||||||
|
# Download, build and install the requesed Go sources
|
||||||
|
(cd /usr/local && git clone https://go.googlesource.com/go)
|
||||||
|
(cd $GOROOT && git checkout $1)
|
||||||
|
(cd $GOROOT/src && ./make.bash)
|
||||||
|
|
||||||
|
rm -rf $GOROOT_BOOTSTRAP
|
||||||
|
export GOROOT_BOOTSTRAP=$GOROOT
|
||||||
|
|
||||||
|
$BOOTSTRAP_PURE
|
629
bash/sandboxes/goshell/scripts/build.sh
Executable file
629
bash/sandboxes/goshell/scripts/build.sh
Executable file
@ -0,0 +1,629 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Contains the main cross compiler, that individually sets up each target build
|
||||||
|
# platform, compiles all the C dependencies, then build the requested executable
|
||||||
|
# itself.
|
||||||
|
#
|
||||||
|
# Usage: build.sh <import path>
|
||||||
|
#
|
||||||
|
# Needed environment variables:
|
||||||
|
# REPO_REMOTE - Optional VCS remote if not the primary repository is needed
|
||||||
|
# REPO_BRANCH - Optional VCS branch to use, if not the master branch
|
||||||
|
# DEPS - Optional list of C dependency packages to build
|
||||||
|
# ARGS - Optional arguments to pass to C dependency configure scripts
|
||||||
|
# PACK - Optional sub-package, if not the import path is being built
|
||||||
|
# OUT - Optional output prefix to override the package name
|
||||||
|
# FLAG_V - Optional verbosity flag to set on the Go builder
|
||||||
|
# FLAG_X - Optional flag to print the build progress commands
|
||||||
|
# FLAG_RACE - Optional race flag to set on the Go builder
|
||||||
|
# FLAG_TAGS - Optional tag flag to set on the Go builder
|
||||||
|
# FLAG_LDFLAGS - Optional ldflags flag to set on the Go builder
|
||||||
|
# FLAG_BUILDMODE - Optional buildmode flag to set on the Go builder
|
||||||
|
# TARGETS - Comma separated list of build targets to compile for
|
||||||
|
# GO_VERSION - Bootstrapped version of Go to disable uncupported targets
|
||||||
|
# EXT_GOPATH - GOPATH elements mounted from the host filesystem
|
||||||
|
|
||||||
|
# Define a function that figures out the binary extension
|
||||||
|
function extension {
|
||||||
|
if [ "$FLAG_BUILDMODE" == "archive" ] || [ "$FLAG_BUILDMODE" == "c-archive" ]; then
|
||||||
|
if [ "$1" == "windows" ]; then
|
||||||
|
echo ".lib"
|
||||||
|
else
|
||||||
|
echo ".a"
|
||||||
|
fi
|
||||||
|
elif [ "$FLAG_BUILDMODE" == "shared" ] || [ "$FLAG_BUILDMODE" == "c-shared" ]; then
|
||||||
|
if [ "$1" == "windows" ]; then
|
||||||
|
echo ".dll"
|
||||||
|
elif [ "$1" == "darwin" ] || [ "$1" == "ios" ]; then
|
||||||
|
echo ".dylib"
|
||||||
|
else
|
||||||
|
echo ".so"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ "$1" == "windows" ]; then
|
||||||
|
echo ".exe"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Either set a local build environemnt, or pull any remote imports
|
||||||
|
if [ "$EXT_GOPATH" != "" ]; then
|
||||||
|
# If local builds are requested, inject the sources
|
||||||
|
echo "Building locally $1..."
|
||||||
|
export GOPATH=$GOPATH:$EXT_GOPATH
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Find and change into the package folder
|
||||||
|
cd `go list -e -f {{.Dir}} $1`
|
||||||
|
export GOPATH=$GOPATH:`pwd`/Godeps/_workspace
|
||||||
|
else
|
||||||
|
# Inject all possible Godep paths to short circuit go gets
|
||||||
|
GOPATH_ROOT=$GOPATH/src
|
||||||
|
IMPORT_PATH=$1
|
||||||
|
while [ "$IMPORT_PATH" != "." ]; do
|
||||||
|
export GOPATH=$GOPATH:$GOPATH_ROOT/$IMPORT_PATH/Godeps/_workspace
|
||||||
|
IMPORT_PATH=`dirname $IMPORT_PATH`
|
||||||
|
done
|
||||||
|
|
||||||
|
# Otherwise download the canonical import path (may fail, don't allow failures beyond)
|
||||||
|
echo "Fetching main repository $1..."
|
||||||
|
go get -v -d $1
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cd $GOPATH_ROOT/$1
|
||||||
|
|
||||||
|
# Switch over the code-base to another checkout if requested
|
||||||
|
if [ "$REPO_REMOTE" != "" ] || [ "$REPO_BRANCH" != "" ]; then
|
||||||
|
# Detect the version control system type
|
||||||
|
IMPORT_PATH=$1
|
||||||
|
while [ "$IMPORT_PATH" != "." ] && [ "$REPO_TYPE" == "" ]; do
|
||||||
|
if [ -d "$GOPATH_ROOT/$IMPORT_PATH/.git" ]; then
|
||||||
|
REPO_TYPE="git"
|
||||||
|
elif [ -d "$GOPATH_ROOT/$IMPORT_PATH/.hg" ]; then
|
||||||
|
REPO_TYPE="hg"
|
||||||
|
fi
|
||||||
|
IMPORT_PATH=`dirname $IMPORT_PATH`
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$REPO_TYPE" == "" ]; then
|
||||||
|
echo "Unknown version control system type, cannot switch remotes and branches."
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
# If we have a valid VCS, execute the switch operations
|
||||||
|
if [ "$REPO_REMOTE" != "" ]; then
|
||||||
|
echo "Switching over to remote $REPO_REMOTE..."
|
||||||
|
if [ "$REPO_TYPE" == "git" ]; then
|
||||||
|
git remote set-url origin $REPO_REMOTE
|
||||||
|
git fetch --all
|
||||||
|
git reset --hard origin/HEAD
|
||||||
|
git clean -dxf
|
||||||
|
elif [ "$REPO_TYPE" == "hg" ]; then
|
||||||
|
echo -e "[paths]\ndefault = $REPO_REMOTE\n" >> .hg/hgrc
|
||||||
|
hg pull
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$REPO_BRANCH" != "" ]; then
|
||||||
|
echo "Switching over to branch $REPO_BRANCH..."
|
||||||
|
if [ "$REPO_TYPE" == "git" ]; then
|
||||||
|
git reset --hard origin/$REPO_BRANCH
|
||||||
|
git clean -dxf
|
||||||
|
elif [ "$REPO_TYPE" == "hg" ]; then
|
||||||
|
hg checkout $REPO_BRANCH
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Download all the C dependencies
|
||||||
|
mkdir /deps
|
||||||
|
DEPS=($DEPS) && for dep in "${DEPS[@]}"; do
|
||||||
|
if [ "${dep##*.}" == "tar" ]; then cat "/deps-cache/`basename $dep`" | tar -C /deps -x; fi
|
||||||
|
if [ "${dep##*.}" == "gz" ]; then cat "/deps-cache/`basename $dep`" | tar -C /deps -xz; fi
|
||||||
|
if [ "${dep##*.}" == "bz2" ]; then cat "/deps-cache/`basename $dep`" | tar -C /deps -xj; fi
|
||||||
|
done
|
||||||
|
|
||||||
|
DEPS_ARGS=($ARGS)
|
||||||
|
|
||||||
|
# Save the contents of the pre-build /usr/local folder for post cleanup
|
||||||
|
USR_LOCAL_CONTENTS=`ls /usr/local`
|
||||||
|
|
||||||
|
# Configure some global build parameters
|
||||||
|
NAME=`basename $1/$PACK`
|
||||||
|
if [ "$OUT" != "" ]; then
|
||||||
|
NAME=$OUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$FLAG_V" == "true" ]; then V=-v; fi
|
||||||
|
if [ "$FLAG_X" == "true" ]; then X=-x; fi
|
||||||
|
if [ "$FLAG_RACE" == "true" ]; then R=-race; fi
|
||||||
|
if [ "$FLAG_TAGS" != "" ]; then T=(--tags "$FLAG_TAGS"); fi
|
||||||
|
if [ "$FLAG_LDFLAGS" != "" ]; then LD="$FLAG_LDFLAGS"; fi
|
||||||
|
|
||||||
|
if [ "$FLAG_BUILDMODE" != "" ] && [ "$FLAG_BUILDMODE" != "default" ]; then BM="--buildmode=$FLAG_BUILDMODE"; fi
|
||||||
|
|
||||||
|
# If no build targets were specified, inject a catch all wildcard
|
||||||
|
if [ "$TARGETS" == "" ]; then
|
||||||
|
TARGETS="./."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build for each requested platform individually
|
||||||
|
for TARGET in $TARGETS; do
|
||||||
|
# Split the target into platform and architecture
|
||||||
|
XGOOS=`echo $TARGET | cut -d '/' -f 1`
|
||||||
|
XGOARCH=`echo $TARGET | cut -d '/' -f 2`
|
||||||
|
|
||||||
|
# Check and build for Android targets
|
||||||
|
if ([ $XGOOS == "." ] || [[ $XGOOS == android* ]]); then
|
||||||
|
# Split the platform version and configure the linker options
|
||||||
|
PLATFORM=`echo $XGOOS | cut -d '-' -f 2`
|
||||||
|
if [ "$PLATFORM" == "" ] || [ "$PLATFORM" == "." ] || [ "$PLATFORM" == "android" ]; then
|
||||||
|
PLATFORM=16 # Jelly Bean 4.0.0
|
||||||
|
fi
|
||||||
|
if [ "$PLATFORM" -ge 16 ]; then
|
||||||
|
CGO_CCPIE="-fPIE"
|
||||||
|
CGO_LDPIE="-fPIE"
|
||||||
|
EXT_LDPIE="-extldflags=-pie"
|
||||||
|
else
|
||||||
|
unset CGO_CCPIE CGO_LDPIE EXT_LDPIE
|
||||||
|
fi
|
||||||
|
mkdir -p /build-android-aar
|
||||||
|
|
||||||
|
# Iterate over the requested architectures, bootstrap and build
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "arm" ] || [ $XGOARCH == "aar" ]; then
|
||||||
|
if [ "$GO_VERSION" -lt 150 ]; then
|
||||||
|
echo "Go version too low, skipping android-$PLATFORM/arm..."
|
||||||
|
else
|
||||||
|
# Include a linker workaround for pre Go 1.6 releases
|
||||||
|
if [ "$GO_VERSION" -lt 160 ]; then
|
||||||
|
EXT_LDAMD="-extldflags=-Wl,--allow-multiple-definition"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Assembling toolchain for android-$PLATFORM/arm..."
|
||||||
|
$ANDROID_NDK_ROOT/build/tools/make-standalone-toolchain.sh --ndk-dir=$ANDROID_NDK_ROOT --install-dir=/usr/$ANDROID_CHAIN_ARM --toolchain=$ANDROID_CHAIN_ARM --arch=arm > /dev/null 2>&1
|
||||||
|
|
||||||
|
echo "Bootstrapping android-$PLATFORM/arm..."
|
||||||
|
CC=arm-linux-androideabi-gcc GOOS=android GOARCH=arm GOARM=7 CGO_ENABLED=1 CGO_CFLAGS="$CGO_CCPIE" CGO_LDFLAGS="$CGO_LDPIE" go install std
|
||||||
|
|
||||||
|
echo "Compiling for android-$PLATFORM/arm..."
|
||||||
|
CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ HOST=arm-linux-androideabi PREFIX=/usr/$ANDROID_CHAIN_ARM/arm-linux-androideabi $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/$ANDROID_CHAIN_ARM/arm-linux-androideabi/lib/pkgconfig
|
||||||
|
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "arm" ]; then
|
||||||
|
CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ GOOS=android GOARCH=arm GOARM=7 CGO_ENABLED=1 CGO_CFLAGS="$CGO_CCPIE" CGO_CXXFLAGS="$CGO_CCPIE" CGO_LDFLAGS="$CGO_LDPIE" go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ GOOS=android GOARCH=arm GOARM=7 CGO_ENABLED=1 CGO_CFLAGS="$CGO_CCPIE" CGO_CXXFLAGS="$CGO_CCPIE" CGO_LDFLAGS="$CGO_LDPIE" go build $V $X "${T[@]}" --ldflags="$V $EXT_LDPIE $EXT_LDAMD $LD" $BM -o "/build/$NAME-android-$PLATFORM-arm`extension android`" ./$PACK
|
||||||
|
fi
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "aar" ]; then
|
||||||
|
CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ GOOS=android GOARCH=arm GOARM=7 CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ GOOS=android GOARCH=arm GOARM=7 CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$V $EXT_LDAMD $LD" --buildmode=c-shared -o "/build-android-aar/$NAME-android-$PLATFORM-arm.so" ./$PACK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$GO_VERSION" -lt 160 ]; then
|
||||||
|
echo "Go version too low, skipping android-$PLATFORM/386,arm64..."
|
||||||
|
else
|
||||||
|
if [ "$PLATFORM" -ge 9 ] && ([ $XGOARCH == "." ] || [ $XGOARCH == "386" ] || [ $XGOARCH == "aar" ]); then
|
||||||
|
echo "Assembling toolchain for android-$PLATFORM/386..."
|
||||||
|
$ANDROID_NDK_ROOT/build/tools/make-standalone-toolchain.sh --ndk-dir=$ANDROID_NDK_ROOT --install-dir=/usr/$ANDROID_CHAIN_386 --toolchain=$ANDROID_CHAIN_386 --arch=x86 > /dev/null 2>&1
|
||||||
|
|
||||||
|
echo "Bootstrapping android-$PLATFORM/386..."
|
||||||
|
CC=i686-linux-android-gcc GOOS=android GOARCH=386 CGO_ENABLED=1 CGO_CFLAGS="$CGO_CCPIE" CGO_LDFLAGS="$CGO_LDPIE" go install std
|
||||||
|
|
||||||
|
echo "Compiling for android-$PLATFORM/386..."
|
||||||
|
CC=i686-linux-android-gcc CXX=i686-linux-android-g++ HOST=i686-linux-android PREFIX=/usr/$ANDROID_CHAIN_386/i686-linux-android $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/$ANDROID_CHAIN_386/i686-linux-android/lib/pkgconfig
|
||||||
|
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "386" ]; then
|
||||||
|
CC=i686-linux-android-gcc CXX=i686-linux-android-g++ GOOS=android GOARCH=386 CGO_ENABLED=1 CGO_CFLAGS="$CGO_CCPIE" CGO_CXXFLAGS="$CGO_CCPIE" CGO_LDFLAGS="$CGO_LDPIE" go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=i686-linux-android-gcc CXX=i686-linux-android-g++ GOOS=android GOARCH=386 CGO_ENABLED=1 CGO_CFLAGS="$CGO_CCPIE" CGO_CXXFLAGS="$CGO_CCPIE" CGO_LDFLAGS="$CGO_LDPIE" go build $V $X "${T[@]}" --ldflags="$V $EXT_LDPIE $LD" $BM -o "/build/$NAME-android-$PLATFORM-386`extension android`" ./$PACK
|
||||||
|
fi
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "aar" ]; then
|
||||||
|
CC=i686-linux-android-gcc CXX=i686-linux-android-g++ GOOS=android GOARCH=386 CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=i686-linux-android-gcc CXX=i686-linux-android-g++ GOOS=android GOARCH=386 CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$V $LD" --buildmode=c-shared -o "/build-android-aar/$NAME-android-$PLATFORM-386.so" ./$PACK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$PLATFORM" -ge 21 ] && ([ $XGOARCH == "." ] || [ $XGOARCH == "arm64" ] || [ $XGOARCH == "aar" ]); then
|
||||||
|
echo "Assembling toolchain for android-$PLATFORM/arm64..."
|
||||||
|
$ANDROID_NDK_ROOT/build/tools/make-standalone-toolchain.sh --ndk-dir=$ANDROID_NDK_ROOT --install-dir=/usr/$ANDROID_CHAIN_ARM64 --toolchain=$ANDROID_CHAIN_ARM64 --arch=arm64 > /dev/null 2>&1
|
||||||
|
|
||||||
|
echo "Bootstrapping android-$PLATFORM/arm64..."
|
||||||
|
CC=aarch64-linux-android-gcc GOOS=android GOARCH=arm64 CGO_ENABLED=1 CGO_CFLAGS="$CGO_CCPIE" CGO_LDFLAGS="$CGO_LDPIE" go install std
|
||||||
|
|
||||||
|
echo "Compiling for android-$PLATFORM/arm64..."
|
||||||
|
CC=aarch64-linux-android-gcc CXX=aarch64-linux-android-g++ HOST=aarch64-linux-android PREFIX=/usr/$ANDROID_CHAIN_ARM64/aarch64-linux-android $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/$ANDROID_CHAIN_ARM64/aarch64-linux-android/lib/pkgconfig
|
||||||
|
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "arm64" ]; then
|
||||||
|
CC=aarch64-linux-android-gcc CXX=aarch64-linux-android-g++ GOOS=android GOARCH=arm64 CGO_ENABLED=1 CGO_CFLAGS="$CGO_CCPIE" CGO_CXXFLAGS="$CGO_CCPIE" CGO_LDFLAGS="$CGO_LDPIE" go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=aarch64-linux-android-gcc CXX=aarch64-linux-android-g++ GOOS=android GOARCH=arm64 CGO_ENABLED=1 CGO_CFLAGS="$CGO_CCPIE" CGO_CXXFLAGS="$CGO_CCPIE" CGO_LDFLAGS="$CGO_LDPIE" go build $V $X "${T[@]}" --ldflags="$V $EXT_LDPIE $LD" $BM -o "/build/$NAME-android-$PLATFORM-arm64`extension android`" ./$PACK
|
||||||
|
fi
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "aar" ]; then
|
||||||
|
CC=aarch64-linux-android-gcc CXX=aarch64-linux-android-g++ GOOS=android GOARCH=arm64 CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=aarch64-linux-android-gcc CXX=aarch64-linux-android-g++ GOOS=android GOARCH=arm64 CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$V $LD" --buildmode=c-shared -o "/build-android-aar/$NAME-android-$PLATFORM-arm64.so" ./$PACK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Assemble the Android Archive from the built shared libraries
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "aar" ]; then
|
||||||
|
title=${NAME^}
|
||||||
|
archive=/build/$NAME-android-$PLATFORM-aar
|
||||||
|
bundle=/build/$NAME-android-$PLATFORM.aar
|
||||||
|
|
||||||
|
# Generate the Java import path based on the Go one
|
||||||
|
package=`go list ./$PACK | tr '-' '_'`
|
||||||
|
package=$(for p in `echo ${package//\// }`; do echo $p | awk 'BEGIN{FS="."}{for (i=NF; i>0; i--){printf "%s.", $i;}}'; done | sed 's/.$//')
|
||||||
|
package=${package%.*}
|
||||||
|
|
||||||
|
# Create a fresh empty Android archive
|
||||||
|
rm -rf $archive $bundle
|
||||||
|
mkdir -p $archive
|
||||||
|
|
||||||
|
echo -e "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"$package\">\n <uses-sdk android:minSdkVersion=\"$PLATFORM\"/>\n</manifest>" > $archive/AndroidManifest.xml
|
||||||
|
mkdir -p $archive/res
|
||||||
|
touch $archive/R.txt
|
||||||
|
|
||||||
|
# Generate the JNI wrappers automatically with SWIG
|
||||||
|
jni=`mktemp -d`
|
||||||
|
header=`find /build-android-aar | grep '\.h$' | head -n 1`
|
||||||
|
if [ "$header" == "" ]; then
|
||||||
|
echo "No API C header specified, skipping android-$PLATFORM/aar..."
|
||||||
|
else
|
||||||
|
cp $header $jni/$NAME.h
|
||||||
|
sed -i -e 's|__complex|complex|g' $jni/$NAME.h
|
||||||
|
sed -i -e 's|_Complex|complex|g' $jni/$NAME.h
|
||||||
|
echo -e "%module $title\n%{\n#include \"$NAME.h\"\n%}\n%pragma(java) jniclasscode=%{\nstatic {\nSystem.loadLibrary(\"$NAME\");\n}\n%}\n%include \"$NAME.h\"" > $jni/$NAME.i
|
||||||
|
|
||||||
|
mkdir -p $jni/${package//.//}
|
||||||
|
swig -java -package $package -outdir $jni/${package//.//} $jni/$NAME.i
|
||||||
|
|
||||||
|
# Assemble the Go static libraries and the JNI interface into shared libraries
|
||||||
|
for lib in `find /build-android-aar | grep '\.so$'`; do
|
||||||
|
if [[ "$lib" = *-arm.so ]]; then cc=arm-linux-androideabi-gcc; abi="armeabi-v7a"; fi
|
||||||
|
if [[ "$lib" = *-arm64.so ]]; then cc=aarch64-linux-android-gcc; abi="arm64-v8a"; fi
|
||||||
|
if [[ "$lib" = *-386.so ]]; then cc=i686-linux-android-gcc; abi="x86"; fi
|
||||||
|
|
||||||
|
mkdir -p $archive/jni/$abi
|
||||||
|
cp ${lib%.*}.h $jni/${NAME}.h
|
||||||
|
cp $lib $archive/jni/$abi/lib${NAME}raw.so
|
||||||
|
(cd $archive/jni/$abi && $cc -shared -fPIC -o lib${NAME}.so -I"$ANDROID_NDK_LIBC/include" -I"$ANDROID_NDK_LIBC/libs/$abi/include" -I"$jni" lib${NAME}raw.so $jni/${NAME}_wrap.c)
|
||||||
|
done
|
||||||
|
|
||||||
|
# Compile the Java wrapper and assemble into a .jar file
|
||||||
|
mkdir -p $jni/build
|
||||||
|
javac -target 1.7 -source 1.7 -cp . -d $jni/build $jni/${package//.//}/*.java
|
||||||
|
(cd $jni/build && jar cvf $archive/classes.jar *)
|
||||||
|
|
||||||
|
# Finally assemble the archive contents into an .aar and clean up
|
||||||
|
(cd $archive && zip -r $bundle *)
|
||||||
|
rm -rf $jni $archive
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Clean up the android builds, toolchains and runtimes
|
||||||
|
rm -rf /build-android-aar
|
||||||
|
rm -rf /usr/local/go/pkg/android_*
|
||||||
|
rm -rf /usr/$ANDROID_CHAIN_ARM /usr/$ANDROID_CHAIN_ARM64 /usr/$ANDROID_CHAIN_386
|
||||||
|
fi
|
||||||
|
# Check and build for Linux targets
|
||||||
|
if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "amd64" ]); then
|
||||||
|
echo "Compiling for linux/amd64..."
|
||||||
|
HOST=x86_64-linux PREFIX=/usr/local $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$V $LD" $R $BM -o "/build/$NAME-linux-amd64$R`extension linux`" ./$PACK
|
||||||
|
fi
|
||||||
|
if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "386" ]); then
|
||||||
|
echo "Compiling for linux/386..."
|
||||||
|
HOST=i686-linux PREFIX=/usr/local $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
GOOS=linux GOARCH=386 CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
GOOS=linux GOARCH=386 CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$V $LD" $BM -o "/build/$NAME-linux-386`extension linux`" ./$PACK
|
||||||
|
fi
|
||||||
|
if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "arm" ] || [ $XGOARCH == "arm-5" ]); then
|
||||||
|
if [ "$GO_VERSION" -ge 150 ]; then
|
||||||
|
echo "Bootstrapping linux/arm-5..."
|
||||||
|
CC=arm-linux-gnueabi-gcc-5 GOOS=linux GOARCH=arm GOARM=5 CGO_ENABLED=1 CGO_CFLAGS="-march=armv5" CGO_CXXFLAGS="-march=armv5" go install std
|
||||||
|
fi
|
||||||
|
echo "Compiling for linux/arm-5..."
|
||||||
|
CC=arm-linux-gnueabi-gcc-5 CXX=arm-linux-gnueabi-g++-5 HOST=arm-linux-gnueabi PREFIX=/usr/arm-linux-gnueabi CFLAGS="-march=armv5" CXXFLAGS="-march=armv5" $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/arm-linux-gnueabi/lib/pkgconfig
|
||||||
|
|
||||||
|
CC=arm-linux-gnueabi-gcc-5 CXX=arm-linux-gnueabi-g++-5 GOOS=linux GOARCH=arm GOARM=5 CGO_ENABLED=1 CGO_CFLAGS="-march=armv5" CGO_CXXFLAGS="-march=armv5" go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=arm-linux-gnueabi-gcc-5 CXX=arm-linux-gnueabi-g++-5 GOOS=linux GOARCH=arm GOARM=5 CGO_ENABLED=1 CGO_CFLAGS="-march=armv5" CGO_CXXFLAGS="-march=armv5" go build $V $X "${T[@]}" --ldflags="$V $LD" $BM -o "/build/$NAME-linux-arm-5`extension linux`" ./$PACK
|
||||||
|
if [ "$GO_VERSION" -ge 150 ]; then
|
||||||
|
echo "Cleaning up Go runtime for linux/arm-5..."
|
||||||
|
rm -rf /usr/local/go/pkg/linux_arm
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "arm-6" ]); then
|
||||||
|
if [ "$GO_VERSION" -lt 150 ]; then
|
||||||
|
echo "Go version too low, skipping linux/arm-6..."
|
||||||
|
else
|
||||||
|
echo "Bootstrapping linux/arm-6..."
|
||||||
|
CC=arm-linux-gnueabi-gcc-5 GOOS=linux GOARCH=arm GOARM=6 CGO_ENABLED=1 CGO_CFLAGS="-march=armv6" CGO_CXXFLAGS="-march=armv6" go install std
|
||||||
|
|
||||||
|
echo "Compiling for linux/arm-6..."
|
||||||
|
CC=arm-linux-gnueabi-gcc-5 CXX=arm-linux-gnueabi-g++-5 HOST=arm-linux-gnueabi PREFIX=/usr/arm-linux-gnueabi CFLAGS="-march=armv6" CXXFLAGS="-march=armv6" $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/arm-linux-gnueabi/lib/pkgconfig
|
||||||
|
|
||||||
|
CC=arm-linux-gnueabi-gcc-5 CXX=arm-linux-gnueabi-g++-5 GOOS=linux GOARCH=arm GOARM=6 CGO_ENABLED=1 CGO_CFLAGS="-march=armv6" CGO_CXXFLAGS="-march=armv6" go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=arm-linux-gnueabi-gcc-5 CXX=arm-linux-gnueabi-g++-5 GOOS=linux GOARCH=arm GOARM=6 CGO_ENABLED=1 CGO_CFLAGS="-march=armv6" CGO_CXXFLAGS="-march=armv6" go build $V $X "${T[@]}" --ldflags="$V $LD" $BM -o "/build/$NAME-linux-arm-6`extension linux`" ./$PACK
|
||||||
|
|
||||||
|
echo "Cleaning up Go runtime for linux/arm-6..."
|
||||||
|
rm -rf /usr/local/go/pkg/linux_arm
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "arm-7" ]); then
|
||||||
|
if [ "$GO_VERSION" -lt 150 ]; then
|
||||||
|
echo "Go version too low, skipping linux/arm-7..."
|
||||||
|
else
|
||||||
|
echo "Bootstrapping linux/arm-7..."
|
||||||
|
CC=arm-linux-gnueabihf-gcc-5 GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=1 CGO_CFLAGS="-march=armv7-a" CGO_CXXFLAGS="-march=armv7-a" go install std
|
||||||
|
|
||||||
|
echo "Compiling for linux/arm-7..."
|
||||||
|
CC=arm-linux-gnueabihf-gcc-5 CXX=arm-linux-gnueabihf-g++-5 HOST=arm-linux-gnueabihf PREFIX=/usr/arm-linux-gnueabihf CFLAGS="-march=armv7-a -fPIC" CXXFLAGS="-march=armv7-a -fPIC" $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig
|
||||||
|
|
||||||
|
CC=arm-linux-gnueabihf-gcc-5 CXX=arm-linux-gnueabihf-g++-5 GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=1 CGO_CFLAGS="-march=armv7-a -fPIC" CGO_CXXFLAGS="-march=armv7-a -fPIC" go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=arm-linux-gnueabihf-gcc-5 CXX=arm-linux-gnueabihf-g++-5 GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=1 CGO_CFLAGS="-march=armv7-a -fPIC" CGO_CXXFLAGS="-march=armv7-a -fPIC" go build $V $X "${T[@]}" --ldflags="$V $LD" $BM -o "/build/$NAME-linux-arm-7`extension linux`" ./$PACK
|
||||||
|
|
||||||
|
echo "Cleaning up Go runtime for linux/arm-7..."
|
||||||
|
rm -rf /usr/local/go/pkg/linux_arm
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "arm64" ]); then
|
||||||
|
if [ "$GO_VERSION" -lt 150 ]; then
|
||||||
|
echo "Go version too low, skipping linux/arm64..."
|
||||||
|
else
|
||||||
|
echo "Compiling for linux/arm64..."
|
||||||
|
CC=aarch64-linux-gnu-gcc-5 CXX=aarch64-linux-gnu-g++-5 HOST=aarch64-linux-gnu PREFIX=/usr/aarch64-linux-gnu $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/aarch64-linux-gnu/lib/pkgconfig
|
||||||
|
|
||||||
|
CC=aarch64-linux-gnu-gcc-5 CXX=aarch64-linux-gnu-g++-5 GOOS=linux GOARCH=arm64 CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=aarch64-linux-gnu-gcc-5 CXX=aarch64-linux-gnu-g++-5 GOOS=linux GOARCH=arm64 CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$V $LD" $BM -o "/build/$NAME-linux-arm64`extension linux`" ./$PACK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "mips64" ]); then
|
||||||
|
if [ "$GO_VERSION" -lt 170 ]; then
|
||||||
|
echo "Go version too low, skipping linux/mips64..."
|
||||||
|
else
|
||||||
|
echo "Compiling for linux/mips64..."
|
||||||
|
CC=mips64-linux-gnuabi64-gcc-5 CXX=mips64-linux-gnuabi64-g++-5 HOST=mips64-linux-gnuabi64 PREFIX=/usr/mips64-linux-gnuabi64 $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/mips64-linux-gnuabi64/lib/pkgconfig
|
||||||
|
|
||||||
|
CC=mips64-linux-gnuabi64-gcc-5 CXX=mips64-linux-gnuabi64-g++-5 GOOS=linux GOARCH=mips64 CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=mips64-linux-gnuabi64-gcc-5 CXX=mips64-linux-gnuabi64-g++-5 GOOS=linux GOARCH=mips64 CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$V $LD" $BM -o "/build/$NAME-linux-mips64`extension linux`" ./$PACK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "mips64le" ]); then
|
||||||
|
if [ "$GO_VERSION" -lt 170 ]; then
|
||||||
|
echo "Go version too low, skipping linux/mips64le..."
|
||||||
|
else
|
||||||
|
echo "Compiling for linux/mips64le..."
|
||||||
|
CC=mips64el-linux-gnuabi64-gcc-5 CXX=mips64el-linux-gnuabi64-g++-5 HOST=mips64el-linux-gnuabi64 PREFIX=/usr/mips64el-linux-gnuabi64 $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/mips64le-linux-gnuabi64/lib/pkgconfig
|
||||||
|
|
||||||
|
CC=mips64el-linux-gnuabi64-gcc-5 CXX=mips64el-linux-gnuabi64-g++-5 GOOS=linux GOARCH=mips64le CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=mips64el-linux-gnuabi64-gcc-5 CXX=mips64el-linux-gnuabi64-g++-5 GOOS=linux GOARCH=mips64le CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$V $LD" $BM -o "/build/$NAME-linux-mips64le`extension linux`" ./$PACK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "mips" ]); then
|
||||||
|
if [ "$GO_VERSION" -lt 180 ]; then
|
||||||
|
echo "Go version too low, skipping linux/mips..."
|
||||||
|
else
|
||||||
|
echo "Compiling for linux/mips..."
|
||||||
|
CC=mips-linux-gnu-gcc-5 CXX=mips-linux-gnu-g++-5 HOST=mips-linux-gnu PREFIX=/usr/mips-linux-gnu $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/mips-linux-gnu/lib/pkgconfig
|
||||||
|
|
||||||
|
CC=mips-linux-gnu-gcc-5 CXX=mips-linux-gnu-g++-5 GOOS=linux GOARCH=mips CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=mips-linux-gnu-gcc-5 CXX=mips-linux-gnu-g++-5 GOOS=linux GOARCH=mips CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$V $LD" $BM -o "/build/$NAME-linux-mips`extension linux`" ./$PACK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "mipsle" ]); then
|
||||||
|
if [ "$GO_VERSION" -lt 180 ]; then
|
||||||
|
echo "Go version too low, skipping linux/mipsle..."
|
||||||
|
else
|
||||||
|
echo "Compiling for linux/mipsle..."
|
||||||
|
CC=mipsel-linux-gnu-gcc-5 CXX=mipsel-linux-gnu-g++-5 HOST=mipsel-linux-gnu PREFIX=/usr/mipsel-linux-gnu $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/mipsle-linux-gnu/lib/pkgconfig
|
||||||
|
|
||||||
|
CC=mipsel-linux-gnu-gcc-5 CXX=mipsel-linux-gnu-g++-5 GOOS=linux GOARCH=mipsle CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=mipsel-linux-gnu-gcc-5 CXX=mipsel-linux-gnu-g++-5 GOOS=linux GOARCH=mipsle CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$V $LD" $BM -o "/build/$NAME-linux-mipsle`extension linux`" ./$PACK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Check and build for Windows targets
|
||||||
|
if [ $XGOOS == "." ] || [[ $XGOOS == windows* ]]; then
|
||||||
|
# Split the platform version and configure the Windows NT version
|
||||||
|
PLATFORM=`echo $XGOOS | cut -d '-' -f 2`
|
||||||
|
if [ "$PLATFORM" == "" ] || [ "$PLATFORM" == "." ] || [ "$PLATFORM" == "windows" ]; then
|
||||||
|
PLATFORM=4.0 # Windows NT
|
||||||
|
fi
|
||||||
|
|
||||||
|
MAJOR=`echo $PLATFORM | cut -d '.' -f 1`
|
||||||
|
if [ "${PLATFORM/.}" != "$PLATFORM" ] ; then
|
||||||
|
MINOR=`echo $PLATFORM | cut -d '.' -f 2`
|
||||||
|
fi
|
||||||
|
CGO_NTDEF="-D_WIN32_WINNT=0x`printf "%02d" $MAJOR``printf "%02d" $MINOR`"
|
||||||
|
|
||||||
|
# Build the requested windows binaries
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "amd64" ]; then
|
||||||
|
echo "Compiling for windows-$PLATFORM/amd64..."
|
||||||
|
CC=x86_64-w64-mingw32-gcc-posix CXX=x86_64-w64-mingw32-g++-posix HOST=x86_64-w64-mingw32 PREFIX=/usr/x86_64-w64-mingw32 $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/lib/pkgconfig
|
||||||
|
|
||||||
|
CC=x86_64-w64-mingw32-gcc-posix CXX=x86_64-w64-mingw32-g++-posix GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CGO_CFLAGS="$CGO_NTDEF" CGO_CXXFLAGS="$CGO_NTDEF" go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=x86_64-w64-mingw32-gcc-posix CXX=x86_64-w64-mingw32-g++-posix GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CGO_CFLAGS="$CGO_NTDEF" CGO_CXXFLAGS="$CGO_NTDEF" go build $V $X "${T[@]}" --ldflags="$V $LD" $R $BM -o "/build/$NAME-windows-$PLATFORM-amd64$R`extension windows`" ./$PACK
|
||||||
|
fi
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "386" ]; then
|
||||||
|
echo "Compiling for windows-$PLATFORM/386..."
|
||||||
|
CC=i686-w64-mingw32-gcc-posix CXX=i686-w64-mingw32-g++-posix HOST=i686-w64-mingw32 PREFIX=/usr/i686-w64-mingw32 $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
export PKG_CONFIG_PATH=/usr/i686-w64-mingw32/lib/pkgconfig
|
||||||
|
|
||||||
|
CC=i686-w64-mingw32-gcc-posix CXX=i686-w64-mingw32-g++-posix GOOS=windows GOARCH=386 CGO_ENABLED=1 CGO_CFLAGS="$CGO_NTDEF" CGO_CXXFLAGS="$CGO_NTDEF" go get $V $X "${T[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
CC=i686-w64-mingw32-gcc-posix CXX=i686-w64-mingw32-g++-posix GOOS=windows GOARCH=386 CGO_ENABLED=1 CGO_CFLAGS="$CGO_NTDEF" CGO_CXXFLAGS="$CGO_NTDEF" go build $V $X "${T[@]}" --ldflags="$V $LD" $BM -o "/build/$NAME-windows-$PLATFORM-386`extension windows`" ./$PACK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Check and build for OSX targets
|
||||||
|
if [ $XGOOS == "." ] || [[ $XGOOS == darwin* ]]; then
|
||||||
|
# Split the platform version and configure the deployment target
|
||||||
|
PLATFORM=`echo $XGOOS | cut -d '-' -f 2`
|
||||||
|
if [ "$PLATFORM" == "" ] || [ "$PLATFORM" == "." ] || [ "$PLATFORM" == "darwin" ]; then
|
||||||
|
PLATFORM=10.6 # OS X Snow Leopard
|
||||||
|
fi
|
||||||
|
export MACOSX_DEPLOYMENT_TARGET=$PLATFORM
|
||||||
|
|
||||||
|
# Strip symbol table below Go 1.6 to prevent DWARF issues
|
||||||
|
LDSTRIP=""
|
||||||
|
if [ "$GO_VERSION" -lt 160 ]; then
|
||||||
|
LDSTRIP="-s"
|
||||||
|
fi
|
||||||
|
# Build the requested darwin binaries
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "amd64" ]; then
|
||||||
|
echo "Compiling for darwin-$PLATFORM/amd64..."
|
||||||
|
CC=o64-clang CXX=o64-clang++ HOST=x86_64-apple-darwin15 PREFIX=/usr/local $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
CC=o64-clang CXX=o64-clang++ GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$LDSTRIP $V $LD" -d ./$PACK
|
||||||
|
CC=o64-clang CXX=o64-clang++ GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$LDSTRIP $V $LD" $R $BM -o "/build/$NAME-darwin-$PLATFORM-amd64$R`extension darwin`" ./$PACK
|
||||||
|
fi
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "386" ]; then
|
||||||
|
echo "Compiling for darwin-$PLATFORM/386..."
|
||||||
|
CC=o32-clang CXX=o32-clang++ HOST=i386-apple-darwin15 PREFIX=/usr/local $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
CC=o32-clang CXX=o32-clang++ GOOS=darwin GOARCH=386 CGO_ENABLED=1 go get $V $X "${T[@]}" --ldflags="$LDSTRIP $V $LD" -d ./$PACK
|
||||||
|
CC=o32-clang CXX=o32-clang++ GOOS=darwin GOARCH=386 CGO_ENABLED=1 go build $V $X "${T[@]}" --ldflags="$LDSTRIP $V $LD" $BM -o "/build/$NAME-darwin-$PLATFORM-386`extension darwin`" ./$PACK
|
||||||
|
fi
|
||||||
|
# Remove any automatically injected deployment target vars
|
||||||
|
unset MACOSX_DEPLOYMENT_TARGET
|
||||||
|
fi
|
||||||
|
# Check and build for iOS targets
|
||||||
|
if [ $XGOOS == "." ] || [[ $XGOOS == ios* ]]; then
|
||||||
|
# Split the platform version and configure the deployment target
|
||||||
|
PLATFORM=`echo $XGOOS | cut -d '-' -f 2`
|
||||||
|
if [ "$PLATFORM" == "" ] || [ "$PLATFORM" == "." ] || [ "$PLATFORM" == "ios" ]; then
|
||||||
|
PLATFORM=5.0 # first iPad and upwards
|
||||||
|
fi
|
||||||
|
export IPHONEOS_DEPLOYMENT_TARGET=$PLATFORM
|
||||||
|
|
||||||
|
# Build the requested iOS binaries
|
||||||
|
if [ "$GO_VERSION" -lt 150 ]; then
|
||||||
|
echo "Go version too low, skipping ios..."
|
||||||
|
else
|
||||||
|
# Add the 'ios' tag to all builds, otherwise the std libs will fail
|
||||||
|
if [ "$FLAG_TAGS" != "" ]; then
|
||||||
|
IOSTAGS=(--tags "ios $FLAG_TAGS")
|
||||||
|
else
|
||||||
|
IOSTAGS=(--tags ios)
|
||||||
|
fi
|
||||||
|
mkdir -p /build-ios-fw
|
||||||
|
|
||||||
|
# Strip symbol table below Go 1.6 to prevent DWARF issues
|
||||||
|
LDSTRIP=""
|
||||||
|
if [ "$GO_VERSION" -lt 160 ]; then
|
||||||
|
LDSTRIP="-s"
|
||||||
|
fi
|
||||||
|
# Cross compile to all available iOS and simulator platforms
|
||||||
|
if [ -d "$IOS_NDK_ARM_7" ] && ([ $XGOARCH == "." ] || [ $XGOARCH == "arm-7" ] || [ $XGOARCH == "framework" ]); then
|
||||||
|
echo "Bootstrapping ios-$PLATFORM/arm-7..."
|
||||||
|
export PATH=$IOS_NDK_ARM_7/bin:$PATH
|
||||||
|
GOOS=darwin GOARCH=arm GOARM=7 CGO_ENABLED=1 CC=arm-apple-darwin11-clang go install --tags ios std
|
||||||
|
|
||||||
|
echo "Compiling for ios-$PLATFORM/arm-7..."
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ HOST=arm-apple-darwin11 PREFIX=/usr/local $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ GOOS=darwin GOARCH=arm GOARM=7 CGO_ENABLED=1 go get $V $X "${IOSTAGS[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "arm-7" ]; then
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ GOOS=darwin GOARCH=arm GOARM=7 CGO_ENABLED=1 go build $V $X "${IOSTAGS[@]}" --ldflags="$LDSTRIP $V $LD" $BM -o "/build/$NAME-ios-$PLATFORM-armv7`extension darwin`" ./$PACK
|
||||||
|
fi
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "framework" ]; then
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ GOOS=darwin GOARCH=arm GOARM=7 CGO_ENABLED=1 go build $V $X "${IOSTAGS[@]}" --ldflags="$V $LD" --buildmode=c-archive -o "/build-ios-fw/$NAME-ios-$PLATFORM-armv7.a" ./$PACK
|
||||||
|
fi
|
||||||
|
echo "Cleaning up Go runtime for ios-$PLATFORM/arm-7..."
|
||||||
|
rm -rf /usr/local/go/pkg/darwin_arm
|
||||||
|
fi
|
||||||
|
if [ -d "$IOS_NDK_ARM64" ] && ([ $XGOARCH == "." ] || [ $XGOARCH == "arm64" ] || [ $XGOARCH == "framework" ]); then
|
||||||
|
echo "Bootstrapping ios-$PLATFORM/arm64..."
|
||||||
|
export PATH=$IOS_NDK_ARM64/bin:$PATH
|
||||||
|
GOOS=darwin GOARCH=arm64 CGO_ENABLED=1 CC=arm-apple-darwin11-clang go install --tags ios std
|
||||||
|
|
||||||
|
echo "Compiling for ios-$PLATFORM/arm64..."
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ HOST=arm-apple-darwin11 PREFIX=/usr/local $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ GOOS=darwin GOARCH=arm64 CGO_ENABLED=1 go get $V $X "${IOSTAGS[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "arm64" ]; then
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ GOOS=darwin GOARCH=arm64 CGO_ENABLED=1 go build $V $X "${IOSTAGS[@]}" --ldflags="$LDSTRIP $V $LD" $BM -o "/build/$NAME-ios-$PLATFORM-arm64`extension darwin`" ./$PACK
|
||||||
|
fi
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "framework" ]; then
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ GOOS=darwin GOARCH=arm64 CGO_ENABLED=1 go build $V $X "${IOSTAGS[@]}" --ldflags="$V $LD" --buildmode=c-archive -o "/build-ios-fw/$NAME-ios-$PLATFORM-arm64.a" ./$PACK
|
||||||
|
fi
|
||||||
|
echo "Cleaning up Go runtime for ios-$PLATFORM/arm64..."
|
||||||
|
rm -rf /usr/local/go/pkg/darwin_arm64
|
||||||
|
fi
|
||||||
|
if [ -d "$IOS_SIM_NDK_AMD64" ] && ([ $XGOARCH == "." ] || [ $XGOARCH == "amd64" ] || [ $XGOARCH == "framework" ]); then
|
||||||
|
echo "Bootstrapping ios-$PLATFORM/amd64..."
|
||||||
|
export PATH=$IOS_SIM_NDK_AMD64/bin:$PATH
|
||||||
|
mv /usr/local/go/pkg/darwin_amd64 /usr/local/go/pkg/darwin_amd64_bak
|
||||||
|
GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 CC=arm-apple-darwin11-clang go install --tags ios std
|
||||||
|
|
||||||
|
echo "Compiling for ios-$PLATFORM/amd64..."
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ HOST=arm-apple-darwin11 PREFIX=/usr/local $BUILD_DEPS /deps ${DEPS_ARGS[@]}
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 go get $V $X "${IOSTAGS[@]}" --ldflags="$V $LD" -d ./$PACK
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "amd64" ]; then
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 go build $V $X "${IOSTAGS[@]}" --ldflags="$LDSTRIP $V $LD" $BM -o "/build/$NAME-ios-$PLATFORM-x86_64`extension darwin`" ./$PACK
|
||||||
|
fi
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "framework" ]; then
|
||||||
|
CC=arm-apple-darwin11-clang CXX=arm-apple-darwin11-clang++ GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 go build $V $X "${IOSTAGS[@]}" --ldflags="$V $LD" --buildmode=c-archive -o "/build-ios-fw/$NAME-ios-$PLATFORM-x86_64.a" ./$PACK
|
||||||
|
fi
|
||||||
|
echo "Cleaning up Go runtime for ios-$PLATFORM/amd64..."
|
||||||
|
rm -rf /usr/local/go/pkg/darwin_amd64
|
||||||
|
mv /usr/local/go/pkg/darwin_amd64_bak /usr/local/go/pkg/darwin_amd64
|
||||||
|
fi
|
||||||
|
# Assemble the iOS framework from the built binaries
|
||||||
|
if [ $XGOARCH == "." ] || [ $XGOARCH == "framework" ]; then
|
||||||
|
title=${NAME^}
|
||||||
|
framework=/build/$NAME-ios-$PLATFORM-framework/$title.framework
|
||||||
|
|
||||||
|
rm -rf $framework
|
||||||
|
mkdir -p $framework/Versions/A
|
||||||
|
(cd $framework/Versions && ln -nsf A Current)
|
||||||
|
|
||||||
|
arches=()
|
||||||
|
for lib in `ls /build-ios-fw | grep -e '\.a$'`; do
|
||||||
|
arches+=("-arch" "`echo ${lib##*-} | cut -d '.' -f 1`" "/build-ios-fw/$lib")
|
||||||
|
done
|
||||||
|
arm-apple-darwin11-lipo -create "${arches[@]}" -o $framework/Versions/A/$title
|
||||||
|
arm-apple-darwin11-ranlib $framework/Versions/A/$title
|
||||||
|
(cd $framework && ln -nsf Versions/A/$title $title)
|
||||||
|
|
||||||
|
mkdir -p $framework/Versions/A/Headers
|
||||||
|
for header in `ls /build-ios-fw | grep -e '\.h$'`; do
|
||||||
|
cp -f /build-ios-fw/$header $framework/Versions/A/Headers/$title.h
|
||||||
|
done
|
||||||
|
(cd $framework && ln -nsf Versions/A/Headers Headers)
|
||||||
|
|
||||||
|
mkdir -p $framework/Versions/A/Resources
|
||||||
|
echo -e "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n</dict>\n</plist>" > $framework/Versions/A/Resources/Info.plist
|
||||||
|
(cd $framework && ln -nsf Versions/A/Resources Resources)
|
||||||
|
|
||||||
|
mkdir -p $framework/Versions/A/Modules
|
||||||
|
echo -e "framework module \"$title\" {\n header \"$title.h\"\n export *\n}" > $framework/Versions/A/Modules/module.modulemap
|
||||||
|
(cd $framework && ln -nsf Versions/A/Modules Modules)
|
||||||
|
|
||||||
|
chmod 777 -R /build/$NAME-ios-$PLATFORM-framework
|
||||||
|
fi
|
||||||
|
rm -rf /build-ios-fw
|
||||||
|
fi
|
||||||
|
# Remove any automatically injected deployment target vars
|
||||||
|
unset IPHONEOS_DEPLOYMENT_TARGET
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Clean up any leftovers for subsequent build invocations
|
||||||
|
echo "Cleaning up build environment..."
|
||||||
|
rm -rf /deps
|
||||||
|
|
||||||
|
for dir in `ls /usr/local`; do
|
||||||
|
keep=0
|
||||||
|
|
||||||
|
# Check against original folder contents
|
||||||
|
for old in $USR_LOCAL_CONTENTS; do
|
||||||
|
if [ "$old" == "$dir" ]; then
|
||||||
|
keep=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Delete anything freshly generated
|
||||||
|
if [ "$keep" == "0" ]; then
|
||||||
|
rm -rf "/usr/local/$dir"
|
||||||
|
fi
|
||||||
|
done
|
27
bash/sandboxes/goshell/scripts/build_deps.sh
Executable file
27
bash/sandboxes/goshell/scripts/build_deps.sh
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Contains the a dependency builder to iterate over all installed dependencies
|
||||||
|
# and cross compile them to the requested target platform.
|
||||||
|
#
|
||||||
|
# Usage: build_deps.sh <dependency folder> <configure arguments>
|
||||||
|
#
|
||||||
|
# Needed environment variables:
|
||||||
|
# CC - C cross compiler to use for the build
|
||||||
|
# HOST - Target platform to build (used to find the needed tool-chains)
|
||||||
|
# PREFIX - File-system path where to install the built binaries
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Remove any previous build leftovers, and copy a fresh working set (clean doesn't work for cross compiling)
|
||||||
|
rm -rf /deps-build && cp -r $1 /deps-build
|
||||||
|
|
||||||
|
# Build all the dependencies (no order for now)
|
||||||
|
for dep in `ls /deps-build`; do
|
||||||
|
echo "Configuring dependency $dep for $HOST..."
|
||||||
|
(cd /deps-build/$dep && ./configure --disable-shared --host=$HOST --prefix=$PREFIX --silent ${@:2})
|
||||||
|
|
||||||
|
echo "Building dependency $dep for $HOST..."
|
||||||
|
(cd /deps-build/$dep && make --silent -j install)
|
||||||
|
done
|
||||||
|
|
||||||
|
# Remove any build artifacts
|
||||||
|
rm -rf /deps-build
|
27
bash/sandboxes/goshell/scripts/fetch.sh
Executable file
27
bash/sandboxes/goshell/scripts/fetch.sh
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Contains a simple fetcher to download a file from a remote URL and verify its
|
||||||
|
# SHA1 or SHA256 checksum (selected based on provided length).
|
||||||
|
#
|
||||||
|
# Usage: fetch.sh <remote URL> <SHA1/SHA256 checksum>
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Skip the download if no operands specified
|
||||||
|
if [ "$1" == "" -o "$2" == "" ]; then
|
||||||
|
echo "Fetch operands missing, skipping..."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Pull the file from the remote URL
|
||||||
|
file=`basename $1`
|
||||||
|
echo "Downloading $1..."
|
||||||
|
wget -q $1
|
||||||
|
|
||||||
|
# Generate a desired checksum report and check against it
|
||||||
|
echo "$2 $file" > $file.sum
|
||||||
|
if [ "${#2}" == "40" ]; then
|
||||||
|
sha1sum -c $file.sum
|
||||||
|
else
|
||||||
|
sha256sum -c $file.sum
|
||||||
|
fi
|
||||||
|
rm $file.sum
|
BIN
bash/sandboxes/goshell/scripts/patch.tar.xz
Executable file
BIN
bash/sandboxes/goshell/scripts/patch.tar.xz
Executable file
Binary file not shown.
7
bash/sandboxes/goshell/scripts/startup.sh
Executable file
7
bash/sandboxes/goshell/scripts/startup.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
useradd $HOST_USER --home /home/$HOST_USER --gid $HOST_GID --uid $HOST_UID --shell /bin/bash
|
||||||
|
echo "$HOST_USER:pw" | chpasswd
|
||||||
|
chown $HOST_USER:$HOST_GID /home/$HOST_USER
|
||||||
|
|
||||||
|
su $HOST_USER
|
||||||
|
cd /project
|
61
bash/sandboxes/goshell/scripts/update_ios.sh
Executable file
61
bash/sandboxes/goshell/scripts/update_ios.sh
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Contains a simple tool that updates some of the iOS toolchains with the SDKs
|
||||||
|
# explicitly provided. The goal is to allow using your own up to date SDKs or
|
||||||
|
# the simulator one not supported out of the box.
|
||||||
|
#
|
||||||
|
# Usage: update_ios.sh <path to>/<iSomething><Version>.sdk.tar.<type>
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Figure out the base name of the SDK
|
||||||
|
sdk=`basename $1`
|
||||||
|
sdk=${sdk%.*}
|
||||||
|
sdk=${sdk%.*}
|
||||||
|
|
||||||
|
# Define a small extraction utility to
|
||||||
|
function extract {
|
||||||
|
case $1 in
|
||||||
|
*.tar.xz)
|
||||||
|
xz -dc $1 | tar xf -
|
||||||
|
;;
|
||||||
|
*.tar.gz)
|
||||||
|
gunzip -dc $1 | tar xf -
|
||||||
|
;;
|
||||||
|
*.tar.bz2)
|
||||||
|
bzip2 -dc $1 | tar xf -
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Extract the SDK, patch it, clean it up and prep for bootstrapping
|
||||||
|
extract $1
|
||||||
|
|
||||||
|
if [[ "`basename $1`" =~ ^iPhoneSimulator ]]; then
|
||||||
|
echo "Patching iOS simulator SDK with missing libraries..."
|
||||||
|
ln -s $OSX_NDK_X86/SDK/$OSX_SDK/usr/lib/system/libsystem_kernel.dylib $sdk/usr/lib/system/libsystem_kernel.dylib
|
||||||
|
ln -s $OSX_NDK_X86/SDK/$OSX_SDK/usr/lib/system/libsystem_platform.dylib $sdk/usr/lib/system/libsystem_platform.dylib
|
||||||
|
ln -s $OSX_NDK_X86/SDK/$OSX_SDK/usr/lib/system/libsystem_pthread.dylib $sdk/usr/lib/system/libsystem_pthread.dylib
|
||||||
|
ln -s $OSX_NDK_X86/SDK/$OSX_SDK/usr/lib/system/libsystem_kernel.tbd $sdk/usr/lib/system/libsystem_kernel.tbd
|
||||||
|
ln -s $OSX_NDK_X86/SDK/$OSX_SDK/usr/lib/system/libsystem_platform.tbd $sdk/usr/lib/system/libsystem_platform.tbd
|
||||||
|
ln -s $OSX_NDK_X86/SDK/$OSX_SDK/usr/lib/system/libsystem_pthread.tbd $sdk/usr/lib/system/libsystem_pthread.tbd
|
||||||
|
fi
|
||||||
|
|
||||||
|
tar -czf /tmp/$sdk.tar.gz $sdk
|
||||||
|
rm -rf $sdk
|
||||||
|
|
||||||
|
# Pull the iOS cross compiler tool and build the toolchain
|
||||||
|
git clone https://github.com/tpoechtrager/cctools-port.git
|
||||||
|
|
||||||
|
if [[ "`basename $1`" =~ ^iPhoneSimulator ]]; then
|
||||||
|
rm -rf $IOS_SIM_NDK_AMD64
|
||||||
|
/cctools-port/usage_examples/ios_toolchain/build.sh /tmp/$sdk.tar.gz x86_64
|
||||||
|
mv /cctools-port/usage_examples/ios_toolchain/target $IOS_SIM_NDK_AMD64
|
||||||
|
else
|
||||||
|
rm -rf $IOS_NDK_ARM_7 $IOS_NDK_ARM64
|
||||||
|
/cctools-port/usage_examples/ios_toolchain/build.sh /tmp/$sdk.tar.gz armv7
|
||||||
|
mv /cctools-port/usage_examples/ios_toolchain/target $IOS_NDK_ARM_7
|
||||||
|
/cctools-port/usage_examples/ios_toolchain/build.sh /tmp/$sdk.tar.gz arm64
|
||||||
|
mv /cctools-port/usage_examples/ios_toolchain/target $IOS_NDK_ARM64
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf /cctools-port
|
21
bash/sandboxes/herokushell/Dockerfile
Executable file
21
bash/sandboxes/herokushell/Dockerfile
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
FROM ubuntu:18.04
|
||||||
|
MAINTAINER Colin Henry <colin@jchenry.me>
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y openssh-server curl wget gnupg
|
||||||
|
|
||||||
|
RUN curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
|
||||||
|
|
||||||
|
#sshd setup - https://docs.docker.com/examples/running_ssh_service/
|
||||||
|
RUN mkdir /var/run/sshd
|
||||||
|
RUN echo 'root:pw' | chpasswd
|
||||||
|
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
|
||||||
|
# SSH login fix. Otherwise user is kicked off after login
|
||||||
|
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
|
||||||
|
ENV NOTVISIBLE "in users profile"
|
||||||
|
RUN echo "export VISIBLE=now" >> /etc/profile
|
||||||
|
EXPOSE 22
|
||||||
|
|
||||||
|
|
||||||
|
ADD startup.sh /root/startup.sh
|
||||||
|
RUN chmod +x /root/startup.sh
|
7
bash/sandboxes/herokushell/Makefile
Executable file
7
bash/sandboxes/herokushell/Makefile
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#
|
||||||
|
# Build tasks for this Dockerfile
|
||||||
|
#
|
||||||
|
|
||||||
|
TAG=jchenry/herokushell
|
||||||
|
|
||||||
|
include ../Makefile.core
|
5
bash/sandboxes/herokushell/include.sh
Executable file
5
bash/sandboxes/herokushell/include.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
function herokushell() {
|
||||||
|
__docker_bash "herokushell" "/project"
|
||||||
|
}
|
7
bash/sandboxes/herokushell/startup.sh
Executable file
7
bash/sandboxes/herokushell/startup.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
useradd $HOST_USER --home /home/$HOST_USER --gid $HOST_GID --uid $HOST_UID --shell /bin/bash
|
||||||
|
echo "$HOST_USER:pw" | chpasswd
|
||||||
|
chown $HOST_USER:$HOST_GID /home/$HOST_USER
|
||||||
|
|
||||||
|
su $HOST_USER
|
||||||
|
cd /project
|
23
bash/sandboxes/jdk8shell/Dockerfile
Executable file
23
bash/sandboxes/jdk8shell/Dockerfile
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#jchenry/jdk8shell
|
||||||
|
#
|
||||||
|
# Shell for Go development
|
||||||
|
|
||||||
|
FROM maven:3.5.2-jdk-8-slim
|
||||||
|
MAINTAINER Colin Henry <colin@jchenry.me>
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y openssh-server
|
||||||
|
|
||||||
|
#sshd setup - https://docs.docker.com/examples/running_ssh_service/
|
||||||
|
RUN mkdir /var/run/sshd
|
||||||
|
RUN echo 'root:pw' | chpasswd
|
||||||
|
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
|
||||||
|
# SSH login fix. Otherwise user is kicked off after login
|
||||||
|
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
|
||||||
|
ENV NOTVISIBLE "in users profile"
|
||||||
|
RUN echo "export VISIBLE=now" >> /etc/profile
|
||||||
|
EXPOSE 22
|
||||||
|
|
||||||
|
|
||||||
|
ADD startup.sh /root/startup.sh
|
||||||
|
RUN chmod +x /root/startup.sh
|
7
bash/sandboxes/jdk8shell/Makefile
Executable file
7
bash/sandboxes/jdk8shell/Makefile
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#
|
||||||
|
# Build tasks for this Dockerfile
|
||||||
|
#
|
||||||
|
|
||||||
|
TAG=jchenry/jdk8shell
|
||||||
|
|
||||||
|
include ../Makefile.core
|
6
bash/sandboxes/jdk8shell/include.sh
Executable file
6
bash/sandboxes/jdk8shell/include.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
#includes for go zsh config
|
||||||
|
function jdk8shell() {
|
||||||
|
__docker_bash "jdk8shell" "/project"
|
||||||
|
}
|
10
bash/sandboxes/jdk8shell/startup.sh
Executable file
10
bash/sandboxes/jdk8shell/startup.sh
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
# groupadd --gid $HOST_GID $HOST_USER
|
||||||
|
useradd $HOST_USER --home /home/$HOST_USER --gid $HOST_GID --uid $HOST_UID --shell /bin/bash
|
||||||
|
echo "$HOST_USER:pw" | chpasswd
|
||||||
|
# chown $HOST_USER:$HOST_USER /home/$HOST_USER
|
||||||
|
|
||||||
|
# /usr/sbin/sshd
|
||||||
|
su $HOST_USER
|
||||||
|
|
||||||
|
cd /project
|
34
bash/sandboxes/leinshell/Dockerfile
Executable file
34
bash/sandboxes/leinshell/Dockerfile
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#markmandel/leinshell
|
||||||
|
#
|
||||||
|
# Shell for Clojure development, with Leiningen
|
||||||
|
|
||||||
|
FROM java:jdk
|
||||||
|
MAINTAINER Mark Mandel <mark.mandel@gmail.com>
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y zsh openssh-server
|
||||||
|
|
||||||
|
#sshd setup - https://docs.docker.com/examples/running_ssh_service/
|
||||||
|
RUN mkdir /var/run/sshd
|
||||||
|
RUN echo 'root:pw' | chpasswd
|
||||||
|
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
|
||||||
|
# SSH login fix. Otherwise user is kicked off after login
|
||||||
|
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
|
||||||
|
ENV NOTVISIBLE "in users profile"
|
||||||
|
RUN echo "export VISIBLE=now" >> /etc/profile
|
||||||
|
EXPOSE 22
|
||||||
|
|
||||||
|
#lein installation
|
||||||
|
ENV LEIN_ROOT=1
|
||||||
|
RUN cd /usr/local/bin/ && wget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein && chmod +x ./lein
|
||||||
|
|
||||||
|
RUN lein
|
||||||
|
|
||||||
|
ADD startup.sh /root/startup.sh
|
||||||
|
RUN chmod +x /root/startup.sh
|
||||||
|
|
||||||
|
RUN mkdir /project
|
||||||
|
WORKDIR /project
|
||||||
|
|
||||||
|
#port for web apps
|
||||||
|
EXPOSE 8080
|
7
bash/sandboxes/leinshell/Makefile
Executable file
7
bash/sandboxes/leinshell/Makefile
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#
|
||||||
|
# Build tasks for this Dockerfile
|
||||||
|
#
|
||||||
|
|
||||||
|
TAG=jchenry/leinshell
|
||||||
|
|
||||||
|
include ../Makefile.core
|
10
bash/sandboxes/leinshell/include.sh
Executable file
10
bash/sandboxes/leinshell/include.sh
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
#includes for go zsh config
|
||||||
|
function leinshell() {
|
||||||
|
mkdir -p ~/.m2
|
||||||
|
__docker_bash "leinshell" "/project" \
|
||||||
|
"-v $SANDBOXES/leinshell/profiles.clj:/home/$USER/.lein/profiles.clj" \
|
||||||
|
"-v ~/.m2:/home/$USER/.m2" \
|
||||||
|
"-P=true"
|
||||||
|
}
|
1
bash/sandboxes/leinshell/profiles.clj
Executable file
1
bash/sandboxes/leinshell/profiles.clj
Executable file
@ -0,0 +1 @@
|
|||||||
|
{:user {:plugins [[lein-ancient "0.6.7"]]}}
|
13
bash/sandboxes/leinshell/startup.sh
Executable file
13
bash/sandboxes/leinshell/startup.sh
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
# groupadd --gid $HOST_GID $HOST_USER
|
||||||
|
useradd $HOST_USER --home /home/$HOST_USER --gid $HOST_GID --uid $HOST_UID --shell /bin/bash
|
||||||
|
echo "$HOST_USER:pw" | chpasswd
|
||||||
|
# chown $HOST_USER:$HOST_USER /home/$HOST_USER
|
||||||
|
|
||||||
|
#setup lein for this user
|
||||||
|
cp -r /root/.lein/* /home/$HOST_USER/.lein/
|
||||||
|
chown -R $HOST_USER:$HOST_USER /home/$HOST_USER/.lein
|
||||||
|
# /usr/sbin/sshd
|
||||||
|
su $HOST_USER
|
||||||
|
|
||||||
|
cd /project
|
24
bash/sandboxes/nodeshell/Dockerfile
Executable file
24
bash/sandboxes/nodeshell/Dockerfile
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#jchenry/nodeshell
|
||||||
|
#
|
||||||
|
# Shell for Node development
|
||||||
|
|
||||||
|
FROM node:17.0.1
|
||||||
|
MAINTAINER Colin Henry <colin@jchenry.me>
|
||||||
|
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y openssh-server
|
||||||
|
|
||||||
|
#sshd setup - https://docs.docker.com/examples/running_ssh_service/
|
||||||
|
RUN mkdir /var/run/sshd
|
||||||
|
RUN echo 'root:pw' | chpasswd
|
||||||
|
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
|
||||||
|
# SSH login fix. Otherwise user is kicked off after login
|
||||||
|
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
|
||||||
|
ENV NOTVISIBLE "in users profile"
|
||||||
|
RUN echo "export VISIBLE=now" >> /etc/profile
|
||||||
|
EXPOSE 22
|
||||||
|
|
||||||
|
|
||||||
|
ADD startup.sh /root/startup.sh
|
||||||
|
RUN chmod +x /root/startup.sh
|
7
bash/sandboxes/nodeshell/Makefile
Executable file
7
bash/sandboxes/nodeshell/Makefile
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#
|
||||||
|
# Build tasks for this Dockerfile
|
||||||
|
#
|
||||||
|
|
||||||
|
TAG=jchenry/nodeshell
|
||||||
|
|
||||||
|
include ../Makefile.core
|
6
bash/sandboxes/nodeshell/include.sh
Executable file
6
bash/sandboxes/nodeshell/include.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
#includes for go zsh config
|
||||||
|
function nodeshell() {
|
||||||
|
__docker_bash "nodeshell" "/project"
|
||||||
|
}
|
136
bash/sandboxes/sandbox.sh
Executable file
136
bash/sandboxes/sandbox.sh
Executable file
@ -0,0 +1,136 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
|
||||||
|
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||||
|
|
||||||
|
# a bash take on docker based dev sandboxes with apologies to Mark Mandel
|
||||||
|
|
||||||
|
__docker_bash () {
|
||||||
|
local shell=$1
|
||||||
|
local src=$2
|
||||||
|
local name=$shell${PWD//\//.}
|
||||||
|
|
||||||
|
printf "Starting Container: $shell \n"
|
||||||
|
|
||||||
|
_docker_run "--rm" \
|
||||||
|
"--name $name" \
|
||||||
|
"--hostname docker" \
|
||||||
|
"-P=true" \
|
||||||
|
"-e TERM" \
|
||||||
|
"-e HOST_GID=`id -g`" \
|
||||||
|
"-e HOST_UID=`id -u`" \
|
||||||
|
"-e HOST_USER=${USER}" \
|
||||||
|
"--privileged" \
|
||||||
|
"-v ~/.bash_history:/home/${USER}/.bash_history" \
|
||||||
|
"-v ~/.bash_profile:/home/${USER}/.bash_profile" \
|
||||||
|
"-v ~/.config:/home/${USER}/.config" \
|
||||||
|
"-v /var/run/docker.sock:/var/run/docker.sock" \
|
||||||
|
"-v `pwd`:${src}" \
|
||||||
|
${argv:3} \
|
||||||
|
"-it jchenry/$shell /root/startup.sh"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SANDBOXES=$SCRIPT_DIR
|
||||||
|
# Source all the shells
|
||||||
|
for p in $SANDBOXES/*; do
|
||||||
|
if [[ -d $p ]]; then
|
||||||
|
source $p/include.sh
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
#Takes each argument and applies it to a docker run command
|
||||||
|
function _docker_run() {
|
||||||
|
# echo "docker run $@"
|
||||||
|
eval "docker run $@"
|
||||||
|
}
|
||||||
|
|
||||||
|
# #standard default docker zsh function
|
||||||
|
# function _docker_zsh() {
|
||||||
|
# local shell=$1
|
||||||
|
# local src=$2
|
||||||
|
# local name=$shell${${PWD//\//.}:-200} #make sure we stay under 255 chars
|
||||||
|
|
||||||
|
# echo "Starting Container: $name (${#name})"
|
||||||
|
|
||||||
|
# _docker_run "--rm" \
|
||||||
|
# "--name $name" \
|
||||||
|
# "-P=true" \
|
||||||
|
# "-e TERM" \
|
||||||
|
# "-e HOST_GID=`id -g`" \
|
||||||
|
# "-e HOST_UID=`id -u`" \
|
||||||
|
# "-e HOST_USER=$USER" \
|
||||||
|
# "-v ~/.oh-my-zsh:/home/$USER/.oh-my-zsh" \
|
||||||
|
# "-v ~/.dircolors:/home/$USER/.dircolors " \
|
||||||
|
# "-v ~/.zsh_history:/home/$USER/.zsh_history" \
|
||||||
|
# "-v $SANDBOXES/$shell/zshrc:/home/$USER/.zshrc" \
|
||||||
|
# "-v $SANDBOXES/core.zsh:/home/$USER/.core.zsh" \
|
||||||
|
# "-v `pwd`:$src" \
|
||||||
|
# ${argv:3} \
|
||||||
|
# "-it markmandel/$shell /root/startup.sh"
|
||||||
|
# }
|
||||||
|
|
||||||
|
function _get_docker_ssh_port() {
|
||||||
|
local name=$1
|
||||||
|
|
||||||
|
typeset -a port
|
||||||
|
|
||||||
|
port=(${(@s/:/)$(docker port $name 22)})
|
||||||
|
|
||||||
|
echo $port[2]
|
||||||
|
}
|
||||||
|
|
||||||
|
#ssh mount a docker container
|
||||||
|
function docker-ssh-mount() {
|
||||||
|
local name=$1
|
||||||
|
local mountpoint=/tmp/$name
|
||||||
|
local port=$(_get_docker_ssh_port $name)
|
||||||
|
|
||||||
|
mkdir -p $mountpoint
|
||||||
|
echo "Mounting on $port"
|
||||||
|
sshfs $USER@0.0.0.0:/ $mountpoint -p $port -o follow_symlinks
|
||||||
|
}
|
||||||
|
|
||||||
|
# # compdef __list_docker_containers docker-ssh-mount
|
||||||
|
|
||||||
|
# #attach a new zsh termainl to an already running shell
|
||||||
|
# function shell-attach() {
|
||||||
|
# docker exec -it -u=$USER $1 /usr/bin/zsh
|
||||||
|
# }
|
||||||
|
|
||||||
|
# # compdef __list_docker_containers shell-attach
|
||||||
|
|
||||||
|
# #Credit: _docker .oh-my-zsh plugin
|
||||||
|
# function __list_docker_containers() {
|
||||||
|
# declare -a cont_cmd
|
||||||
|
# cont_cmd=($(docker ps | awk 'NR>1{print $NF":[CON("$1")"$2"("$3")]"}'))
|
||||||
|
# if [[ 'X$cont_cmd' != 'X' ]]
|
||||||
|
# _describe 'containers' cont_cmd
|
||||||
|
# }
|
||||||
|
|
||||||
|
# alias dsm=docker-ssh-mount
|
||||||
|
|
||||||
|
# #Credit: https://github.com/jbbarth/dotfiles/blob/master/.zsh/docker.zsh
|
||||||
|
# function docker-cleanup() {
|
||||||
|
# echo "* Removing old containers"
|
||||||
|
# docker ps -qa | xargs --no-run-if-empty -n 1 docker rm
|
||||||
|
# echo "* Removing <none> images"
|
||||||
|
# docker images --filter dangling=true -q | xargs --no-run-if-empty -n 1 docker rmi
|
||||||
|
# }
|
||||||
|
|
||||||
|
# alias dc=docker-cleanup
|
||||||
|
|
||||||
|
# function docker-known-host-clear() {
|
||||||
|
# if [[ $1 == "" ]]; then
|
||||||
|
# echo "Container name not passed in" >&2
|
||||||
|
# return 1
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# local name=$1
|
||||||
|
# local port=$(_get_docker_ssh_port $name)
|
||||||
|
|
||||||
|
# ssh-keygen -R 0.0.0.0:$port
|
||||||
|
# }
|
||||||
|
|
||||||
|
# # compdef __list_docker_containers docker-known-host-clear
|
7
bash/sandboxes/startup.sh
Executable file
7
bash/sandboxes/startup.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
useradd $HOST_USER --home /home/$HOST_USER --gid $HOST_GID --uid $HOST_UID --shell /bin/bash
|
||||||
|
echo "$HOST_USER:pw" | chpasswd
|
||||||
|
chown $HOST_USER:$HOST_GID /home/$HOST_USER
|
||||||
|
|
||||||
|
su $HOST_USER
|
||||||
|
cd /project
|
65
bash/sandboxes/swiftshell/Dockerfile
Executable file
65
bash/sandboxes/swiftshell/Dockerfile
Executable file
@ -0,0 +1,65 @@
|
|||||||
|
#jchenry/swiftshell
|
||||||
|
#
|
||||||
|
# Shell for Swift development
|
||||||
|
# learning the hard way
|
||||||
|
|
||||||
|
FROM swift:4.2
|
||||||
|
MAINTAINER Colin Henry <colin@jchenry.me>
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y openssh-server wget
|
||||||
|
|
||||||
|
|
||||||
|
#sshd setup - https://docs.docker.com/examples/running_ssh_service/
|
||||||
|
RUN mkdir /var/run/sshd
|
||||||
|
RUN echo 'root:pw' | chpasswd
|
||||||
|
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
|
||||||
|
# SSH login fix. Otherwise user is kicked off after login
|
||||||
|
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
|
||||||
|
ENV NOTVISIBLE "in users profile"
|
||||||
|
RUN echo "export VISIBLE=now" >> /etc/profile
|
||||||
|
EXPOSE 22
|
||||||
|
|
||||||
|
|
||||||
|
ADD startup.sh /root/startup.sh
|
||||||
|
RUN chmod +x /root/startup.sh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# FROM golang:1.9.2
|
||||||
|
# MAINTAINER Colin Henry <colin@jchenry.me>
|
||||||
|
|
||||||
|
# RUN apt-get update && \
|
||||||
|
# apt-get install -y openssh-server
|
||||||
|
|
||||||
|
# #sshd setup - https://docs.docker.com/examples/running_ssh_service/
|
||||||
|
# RUN mkdir /var/run/sshd
|
||||||
|
# RUN echo 'root:pw' | chpasswd
|
||||||
|
# RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
|
||||||
|
# # SSH login fix. Otherwise user is kicked off after login
|
||||||
|
# RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
|
||||||
|
# ENV NOTVISIBLE "in users profile"
|
||||||
|
# RUN echo "export VISIBLE=now" >> /etc/profile
|
||||||
|
# EXPOSE 22
|
||||||
|
|
||||||
|
# # RUN go get github.com/constabulary/gb/...
|
||||||
|
# # RUN go get github.com/golang/lint/golint
|
||||||
|
# # RUN go get golang.org/x/tools/cmd/goimports
|
||||||
|
|
||||||
|
# # RUN mv ./bin/* /usr/local/bin
|
||||||
|
|
||||||
|
# # RUN rm -rf /go
|
||||||
|
|
||||||
|
# ADD startup.sh /root/startup.sh
|
||||||
|
# RUN chmod +x /root/startup.sh
|
7
bash/sandboxes/swiftshell/Makefile
Executable file
7
bash/sandboxes/swiftshell/Makefile
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#
|
||||||
|
# Build tasks for this Dockerfile
|
||||||
|
#
|
||||||
|
|
||||||
|
TAG=jchenry/swiftshell
|
||||||
|
|
||||||
|
include ../Makefile.core
|
6
bash/sandboxes/swiftshell/include.sh
Executable file
6
bash/sandboxes/swiftshell/include.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
#includes for go zsh config
|
||||||
|
function swift-shell() {
|
||||||
|
__docker_bash "swiftshell" "/workspace"
|
||||||
|
}
|
9
bash/sandboxes/swiftshell/startup.sh
Executable file
9
bash/sandboxes/swiftshell/startup.sh
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
# groupadd --gid $HOST_GID $HOST_USER
|
||||||
|
useradd $HOST_USER --home /home/$HOST_USER --gid $HOST_GID --uid $HOST_UID --shell /bin/bash
|
||||||
|
echo "$HOST_USER:pw" | chpasswd
|
||||||
|
# chown $HOST_USER:$HOST_USER /home/$HOST_USER
|
||||||
|
|
||||||
|
# /usr/sbin/sshd
|
||||||
|
su $HOST_USER
|
||||||
|
cd /project
|
@ -1,2 +0,0 @@
|
|||||||
echo "source .config/bash/bash_profile" >> ~/.bashrc
|
|
||||||
echo "source .config/bash/bash_profile" >> ~/.bash_profile
|
|
5
bashrc.d/000-ps1.sh
Normal file
5
bashrc.d/000-ps1.sh
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
if [ -z "$PS1" ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
export PS1='${c_user}\u${c_reset}@${c_user}\h${c_reset}:${c_path}\w${c_reset}$(git_prompt)\n\$ '
|
33
bashrc.d/002-git-prompt.sh
Executable file
33
bashrc.d/002-git-prompt.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
# Configure colors, if available.
|
||||||
|
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||||
|
c_reset=`tput sgr0`
|
||||||
|
c_user=`tput setaf 8`
|
||||||
|
c_path=`tput setaf 8`
|
||||||
|
c_git_clean=`tput setaf 2`
|
||||||
|
c_git_dirty=`tput setaf 1`
|
||||||
|
else
|
||||||
|
c_reset=
|
||||||
|
c_user=
|
||||||
|
c_git_cleancleann_path=
|
||||||
|
c_git_clean=
|
||||||
|
c_git_dirty=
|
||||||
|
fi
|
||||||
|
# Function to assemble the Git parsingart of our prompt.
|
||||||
|
git_prompt ()
|
||||||
|
{
|
||||||
|
if ! git rev-parse --git-dir > /dev/null 2>&1; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
git_branch=$(git branch 2>/dev/null | sed -n '/^\*/s/^\* //p')
|
||||||
|
if git diff --quiet 2>/dev/null >&2; then
|
||||||
|
git_color="$c_git_clean"
|
||||||
|
else
|
||||||
|
git_color="$c_git_dirty"
|
||||||
|
fi
|
||||||
|
echo "[$git_color$git_branch${c_reset}]"
|
||||||
|
}
|
||||||
|
|
||||||
|
function tabc() {
|
||||||
|
NAME=$1; if [ -z "$NAME" ]; then NAME="Default"; fi
|
||||||
|
osascript -e "tell application \"Terminal\" to set current settings of front window to settings set \"$NAME\""
|
||||||
|
}
|
19
bashrc.d/004-open_github.sh
Executable file
19
bashrc.d/004-open_github.sh
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
# Opens the github page for the current git repository in your browser
|
||||||
|
# git@github.com:jasonneylon/dotfiles.git
|
||||||
|
# https://github.com/jasonneylon/dotfiles/
|
||||||
|
function gh() {
|
||||||
|
giturl=$(git config --get remote.origin.url)
|
||||||
|
if [ "$giturl" == "" ]
|
||||||
|
then
|
||||||
|
echo "Not a git repository or no remote.origin.url set"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
giturl=${giturl/git\@github\.com\:/https://github.com/}
|
||||||
|
giturl=${giturl/\.git/\/tree/}
|
||||||
|
branch="$(git symbolic-ref HEAD 2>/dev/null)" ||
|
||||||
|
branch="(unnamed branch)" # detached HEAD
|
||||||
|
branch=${branch##refs/heads/}
|
||||||
|
giturl=$giturl/$branch
|
||||||
|
open $giturl
|
||||||
|
}
|
@ -3,5 +3,5 @@ export GOPATH=$XDG_DATA
|
|||||||
export GOROOT=/usr/local/go
|
export GOROOT=/usr/local/go
|
||||||
export GOBIN=$XDG_DATA/bin
|
export GOBIN=$XDG_DATA/bin
|
||||||
export GO111MODULE=on
|
export GO111MODULE=on
|
||||||
export GOPRIVATE=github.com/jchenry/*
|
export GOPRIVATE=github.com/jchenry
|
||||||
export PATH=$PATH:$GOROOT/bin:$GOBIN
|
export PATH=$PATH:$GOROOT/bin:$GOBIN
|
@ -1,5 +1,3 @@
|
|||||||
alias build-targets="make -rpn | sed -n -e '/^$/ { n ; /^[^ .#][^ ]*:/p ; }' | egrep --color '^[^ ]*:'"
|
alias build-targets="make -rpn | sed -n -e '/^$/ { n ; /^[^ .#][^ ]*:/p ; }' | egrep --color '^[^ ]*:'"
|
||||||
alias ebg="tr 'A-Za-z' 'N-ZA-Mn-za-m'"
|
alias ebg="tr 'A-Za-z' 'N-ZA-Mn-za-m'"
|
||||||
alias tmux="tmux -f "$XDG_CONFIG_HOME"/tmux/tmux.conf"
|
alias tmux="tmux -f "$XDG_CONFIG_HOME"/tmux/tmux.conf"
|
||||||
|
|
||||||
alias drone-local="drone exec --branch $(git branch 2>/dev/null | sed -n '/^\*/s/^\* //p') --trusted"
|
|
11
bashrc.d/009-cdbookmark.sh
Normal file
11
bashrc.d/009-cdbookmark.sh
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# boosted from https://threkk.medium.com/how-to-use-bookmarks-in-bash-zsh-6b8074e40774 and adapted using mattn_jp's bash changes: https://twitter.com/mattn_jp/status/1434192554036137995?s=20
|
||||||
|
if [ -d "$HOME/.local/cdbookmarks" ]; then
|
||||||
|
export CDPATH=".:$HOME/.local/cdbookmarks:/"
|
||||||
|
alias goto="cd -P"
|
||||||
|
_goto()
|
||||||
|
{
|
||||||
|
local IFS=$'\n'
|
||||||
|
COMPREPLY=( $( compgen -W "$(/bin/ls $HOME/.local/cdbookmarks)" -- ${COMP_WORDS[COMP_CWORD]}))
|
||||||
|
} && complete -F _goto goto
|
||||||
|
|
||||||
|
fi
|
3
code-server/config.yaml
Normal file
3
code-server/config.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
bind-addr: 192.168.1.6:8080
|
||||||
|
auth: password
|
||||||
|
cert: false
|
36
dlv/config.yml
Normal file
36
dlv/config.yml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# Configuration file for the delve debugger.
|
||||||
|
|
||||||
|
# This is the default configuration file. Available options are provided, but disabled.
|
||||||
|
# Delete the leading hash mark to enable an item.
|
||||||
|
|
||||||
|
# Uncomment the following line and set your preferred ANSI foreground color
|
||||||
|
# for source line numbers in the (list) command (if unset, default is 34,
|
||||||
|
# dark blue) See https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit
|
||||||
|
# source-list-line-color: 34
|
||||||
|
|
||||||
|
# Provided aliases will be added to the default aliases for a given command.
|
||||||
|
aliases:
|
||||||
|
# command: ["alias1", "alias2"]
|
||||||
|
|
||||||
|
# Define sources path substitution rules. Can be used to rewrite a source path stored
|
||||||
|
# in program's debug information, if the sources were moved to a different place
|
||||||
|
# between compilation and debugging.
|
||||||
|
# Note that substitution rules will not be used for paths passed to "break" and "trace"
|
||||||
|
# commands.
|
||||||
|
substitute-path:
|
||||||
|
# - {from: path, to: path}
|
||||||
|
|
||||||
|
# Maximum number of elements loaded from an array.
|
||||||
|
# max-array-values: 64
|
||||||
|
|
||||||
|
# Maximum loaded string length.
|
||||||
|
# max-string-len: 64
|
||||||
|
|
||||||
|
# Output evaluation.
|
||||||
|
# max-variable-recurse: 1
|
||||||
|
|
||||||
|
# Uncomment the following line to make the whatis command also print the DWARF location expression of its argument.
|
||||||
|
# show-location-expr: true
|
||||||
|
|
||||||
|
# List of directories to use when searching for separate debug info files.
|
||||||
|
debug-info-directories: ["/usr/lib/debug/.build-id"]
|
9
gatsby/config.json
Normal file
9
gatsby/config.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"telemetry": {
|
||||||
|
"machineId": "0ea97bef-c42f-466e-89a1-cec6ec7c773c",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"cli": {
|
||||||
|
"packageManager": "npm"
|
||||||
|
}
|
||||||
|
}
|
2663
git/git-completion.sh
Executable file
2663
git/git-completion.sh
Executable file
File diff suppressed because it is too large
Load Diff
30
git/git-precommit
Executable file
30
git/git-precommit
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo "Would you like to play a game?"
|
||||||
|
|
||||||
|
# Read user input, assign stdin to keyboard
|
||||||
|
exec < /dev/tty
|
||||||
|
|
||||||
|
while read -p "Have you double checked that only relevant files were added? (Y/n) " yn; do
|
||||||
|
case $yn in
|
||||||
|
[Yy] ) break;;
|
||||||
|
[Nn] ) echo "Please ensure the right files were added!"; exit 1;;
|
||||||
|
* ) echo "Please answer y (yes) or n (no):" && continue;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
while read -p "Has the documentation been updated? (Y/n) " yn; do
|
||||||
|
case $yn in
|
||||||
|
[Yy] ) break;;
|
||||||
|
[Nn] ) echo "Please add or update the docs!"; exit 1;;
|
||||||
|
* ) echo "Please answer y (yes) or n (no):" && continue;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
while read -p "Do you know which issue or PR numbers to reference? (Y/n) " yn; do
|
||||||
|
case $yn in
|
||||||
|
[Yy] ) break;;
|
||||||
|
[Nn] ) echo "Better go check those tracking numbers!"; exit 1;;
|
||||||
|
* ) echo "Please answer y (yes) or n (no):" && continue;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
exec <&-
|
33
git/git-prompt.sh
Executable file
33
git/git-prompt.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
# Configure colors, if available.
|
||||||
|
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||||
|
c_reset=`tput sgr0`
|
||||||
|
c_user=`tput setaf 8`
|
||||||
|
c_path=`tput setaf 8`
|
||||||
|
c_git_clean=`tput setaf 2`
|
||||||
|
c_git_dirty=`tput setaf 1`
|
||||||
|
else
|
||||||
|
c_reset=
|
||||||
|
c_user=
|
||||||
|
c_git_cleancleann_path=
|
||||||
|
c_git_clean=
|
||||||
|
c_git_dirty=
|
||||||
|
fi
|
||||||
|
# Function to assemble the Git parsingart of our prompt.
|
||||||
|
git_prompt ()
|
||||||
|
{
|
||||||
|
if ! git rev-parse --git-dir > /dev/null 2>&1; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
git_branch=$(git branch 2>/dev/null | sed -n '/^\*/s/^\* //p')
|
||||||
|
if git diff --quiet 2>/dev/null >&2; then
|
||||||
|
git_color="$c_git_clean"
|
||||||
|
else
|
||||||
|
git_color="$c_git_dirty"
|
||||||
|
fi
|
||||||
|
echo "[$git_color$git_branch${c_reset}]"
|
||||||
|
}
|
||||||
|
|
||||||
|
function tabc() {
|
||||||
|
NAME=$1; if [ -z "$NAME" ]; then NAME="Default"; fi
|
||||||
|
osascript -e "tell application \"Terminal\" to set current settings of front window to settings set \"$NAME\""
|
||||||
|
}
|
@ -1,22 +1,18 @@
|
|||||||
|
|
||||||
[hub]
|
[hub]
|
||||||
protocol = https
|
protocol = https
|
||||||
[core]
|
[core]
|
||||||
editor = code --wait
|
excludesfile = /opt/boxen/config/git/gitignore
|
||||||
[user]
|
[user]
|
||||||
name = Colin Henry
|
name = Colin Henry
|
||||||
email = jchenry@users.noreply.github.com
|
email = jchenry@users.noreply.github.com
|
||||||
[push]
|
[push]
|
||||||
default = simple
|
default = simple
|
||||||
[diff]
|
|
||||||
tool = vscode
|
|
||||||
[difftool "vscode"]
|
|
||||||
cmd = code --wait --diff $LOCAL $REMOTE
|
|
||||||
[merge]
|
[merge]
|
||||||
tool = vscode
|
tool = kdiff3
|
||||||
[mergetool "vscode"]
|
|
||||||
cmd = code --wait $MERGED
|
|
||||||
[alias]
|
[alias]
|
||||||
lgb = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' --abbrev-commit --date=relative --branches
|
lgb = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' --abbrev-commit --date=relative --branches
|
||||||
|
[mergetool "kdiff3"]
|
||||||
|
path = /Applications/kdiff3.app/Contents/MacOS/kdiff3
|
||||||
[http]
|
[http]
|
||||||
sslverify = true
|
sslverify = true
|
27
git/githubzen.fortunes
Executable file
27
git/githubzen.fortunes
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
It's not fully shipped until it's fast.
|
||||||
|
%
|
||||||
|
Practicality beats purity.
|
||||||
|
%
|
||||||
|
Avoid administrative distraction.
|
||||||
|
%
|
||||||
|
Mind your words, they are important.
|
||||||
|
%
|
||||||
|
Non-blocking is better than blocking.
|
||||||
|
%
|
||||||
|
Design for failure.
|
||||||
|
%
|
||||||
|
Half measures are as bad as nothing at all.
|
||||||
|
%
|
||||||
|
Favor focus over features.
|
||||||
|
%
|
||||||
|
Approachable is better than simple.
|
||||||
|
%
|
||||||
|
Encourage flow.
|
||||||
|
%
|
||||||
|
Anything added dilutes everything else.
|
||||||
|
%
|
||||||
|
Speak like a human.
|
||||||
|
%
|
||||||
|
Responsive is better than fast.
|
||||||
|
%
|
||||||
|
Keep it logically awesome.
|
10
git/gitmessage
Executable file
10
git/gitmessage
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
# If applied, this commit will...
|
||||||
|
# [Add/Fix/Remove/Update/Refactor/Document] [issue #id] [summary]
|
||||||
|
|
||||||
|
|
||||||
|
# Why is it necessary? (Bug fix, feature, improvements?)
|
||||||
|
-
|
||||||
|
# How does the change address the issue?
|
||||||
|
-
|
||||||
|
# What side effects does this change have?
|
||||||
|
-
|
25
git/update_git_repos.sh
Executable file
25
git/update_git_repos.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# store the current dir
|
||||||
|
CUR_DIR=$(pwd)
|
||||||
|
|
||||||
|
# Let the person running the script know what's going on.
|
||||||
|
echo "Pulling in latest changes for all repositories..."
|
||||||
|
|
||||||
|
# Find all git repositories and update it to the master latest revision
|
||||||
|
for i in $(find . -name ".git" | cut -c 3-); do
|
||||||
|
echo "";
|
||||||
|
echo "** "$i+" **";
|
||||||
|
|
||||||
|
# We have to go to the .git parent directory to call the pull command
|
||||||
|
cd "$i";
|
||||||
|
cd ..;
|
||||||
|
|
||||||
|
# finally pull
|
||||||
|
git pull origin;
|
||||||
|
|
||||||
|
# lets get back to the CUR_DIR
|
||||||
|
cd $CUR_DIR
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Complete!"
|
1
jesseduffield/lazydocker/config.yml
Normal file
1
jesseduffield/lazydocker/config.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
reporting: "off"
|
2
jesseduffield/lazygit/config.yml
Normal file
2
jesseduffield/lazygit/config.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
reporting: "off"
|
||||||
|
startuppopupversion: 1
|
@ -1,5 +1,3 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs)
|
# Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs)
|
||||||
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
|
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
|
||||||
|
|
||||||
@ -110,8 +108,6 @@ defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true
|
|||||||
|
|
||||||
# Terminal.app: Only use UTF-8 in Terminal
|
# Terminal.app: Only use UTF-8 in Terminal
|
||||||
defaults write com.apple.terminal StringEncodings -array 4
|
defaults write com.apple.terminal StringEncodings -array 4
|
||||||
# Terminal.app: set default prodile to Pro
|
|
||||||
defaults write com.apple.terminal "Default Window Settings" -string "Pro";
|
|
||||||
|
|
||||||
# Activity Monitor: Visualize CPU usage in the Activity Monitor Dock icon
|
# Activity Monitor: Visualize CPU usage in the Activity Monitor Dock icon
|
||||||
defaults write com.apple.ActivityMonitor IconType -int 5
|
defaults write com.apple.ActivityMonitor IconType -int 5
|
@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env bash -eo pipefail
|
|
||||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
||||||
brew bundle --file ~/.config/Brewfile
|
|
@ -1,2 +0,0 @@
|
|||||||
xcode-select --install
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
|||||||
add_newline = false
|
|
||||||
|
|
||||||
[username]
|
|
||||||
style_user="white bold"
|
|
||||||
format="$user($style)"
|
|
||||||
show_always=true
|
|
||||||
|
|
||||||
[hostname]
|
|
||||||
ssh_only=false
|
|
||||||
format="@$hostname:"
|
|
||||||
disabled=false
|
|
||||||
|
|
||||||
[character]
|
|
||||||
success_symbol = "[\\$](green)"
|
|
||||||
error_symbol = "[\\$](red)"
|
|
2
tmux/battery.sh
Executable file
2
tmux/battery.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
ioreg -l | grep -i capacity | tr '\n' ' | ' | awk '{printf("%.2f%%", $10/$5 * 100)}'
|
@ -1 +0,0 @@
|
|||||||
Subproject commit 420656d265a92365d1a3828dd632f3be114092ad
|
|
@ -1 +0,0 @@
|
|||||||
git submodule add https://github.com/tmux-plugins/tpm $XDG_CONFIG_HOME/tmux/plugins/tpm
|
|
35
tmux/tmux.conf
Normal file → Executable file
35
tmux/tmux.conf
Normal file → Executable file
@ -1,24 +1,25 @@
|
|||||||
# based on config described here: https://www.youtube.com/watch?v=B-1wGwvUwm8
|
set-option -g prefix C-a
|
||||||
unbind C-b
|
|
||||||
set -g prefix C-a
|
|
||||||
|
|
||||||
unbind r
|
# Set status bar
|
||||||
bind r source-file ~/.config/tmux/tmux.conf
|
set -g status-bg black
|
||||||
|
set -g status-fg white
|
||||||
|
set -g status-left ''
|
||||||
|
set -g status-right '#[fg=green] #( uname -n ) | #( date "+%d %b %H:%M.%S")'
|
||||||
|
|
||||||
unbind h
|
# Highlight active window
|
||||||
bind h split-window -v
|
set-window-option -g window-status-current-style bg=red
|
||||||
|
|
||||||
unbind v
|
|
||||||
bind v split-window -h
|
|
||||||
|
|
||||||
# set -g mouse on
|
# Set window notifications
|
||||||
|
setw -g monitor-activity on
|
||||||
|
set -g visual-activity on
|
||||||
|
|
||||||
set -g @plugin 'tmux-plugins/tpm'
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
||||||
|
|
||||||
set -g @plugin 'dracula/tmux'
|
set-option -g status on
|
||||||
set -g @dracula-show-powerline true
|
set-option -g status-interval 2
|
||||||
set -g @dracula-show-left-icon session
|
set-option -g status-justify "centre"
|
||||||
set -g @dracula-plugins "cpu-usage ram-usage"
|
|
||||||
|
|
||||||
run '~/.config/tmux/plugins/tpm/tpm'
|
|
||||||
|
# Fix LSOpenURLsWithRole() error on OS X. Requires reattach-to-user-namespace
|
||||||
|
# to be installed.
|
||||||
|
#set-option -g default-command "which reattach-to-user-namespace > /dev/null && reattach-to-user-namespace -l $SHELL || $SHELL"
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
dracula-theme.theme-dracula
|
|
||||||
golang.go
|
|
||||||
hashicorp.terraform
|
|
@ -1,115 +0,0 @@
|
|||||||
{
|
|
||||||
"go.formatTool": "goimports",
|
|
||||||
"go.useLanguageServer": true,
|
|
||||||
"go.lintTool": "golangci-lint",
|
|
||||||
"window.zoomLevel": 0,
|
|
||||||
"editor.tokenColorCustomizations": {
|
|
||||||
"textMateRules": [
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.task.open.bullet",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#FFFF00"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.task.open.marker",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#FFFF00"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.task.open.keyword",
|
|
||||||
"settings": {
|
|
||||||
"fontStyle": "italic"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.task.open.text",
|
|
||||||
"settings": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.task.completed.keyword",
|
|
||||||
"settings": {
|
|
||||||
"fontStyle": "italic"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.task.completed.marker",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#AAAAAA"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.task.completed.text",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#AAAAAA"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.task.completed.bullet",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#FFFF00"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.memo.keyword",
|
|
||||||
"settings": {
|
|
||||||
"fontStyle": "italic"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.memo.bullet",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#FFFF00"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.scope",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#FFFF00"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.link.keyword",
|
|
||||||
"settings": {
|
|
||||||
"fontStyle": "italic"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"scope": "text.html.markdown.journal.link.bullet",
|
|
||||||
"settings": {
|
|
||||||
"foreground": "#FFFF00"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"go.toolsManagement.autoUpdate": true,
|
|
||||||
"editor.suggestSelection": "first",
|
|
||||||
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
|
|
||||||
"files.exclude": {
|
|
||||||
"**/.classpath": true,
|
|
||||||
"**/.project": true,
|
|
||||||
"**/.settings": true,
|
|
||||||
"**/.factorypath": true
|
|
||||||
},
|
|
||||||
"go.coverOnSave": true,
|
|
||||||
"go.coverageDecorator": {
|
|
||||||
"coveredHighlightColor": "rgba(64,128,128,0.5)",
|
|
||||||
"uncoveredHighlightColor": "rgba(128,64,64,0.25)",
|
|
||||||
"coveredGutterStyle": "blockgreen",
|
|
||||||
"uncoveredGutterStyle": "blockred"
|
|
||||||
},
|
|
||||||
"go.coverOnSingleTest": true,
|
|
||||||
"go.alternateTools": {
|
|
||||||
|
|
||||||
},
|
|
||||||
"javascript.format.enable": false,
|
|
||||||
"[html]": {
|
|
||||||
"editor.defaultFormatter": "vscode.html-language-features"
|
|
||||||
},
|
|
||||||
"[css]": {
|
|
||||||
"editor.defaultFormatter": "vscode.css-language-features"
|
|
||||||
},
|
|
||||||
"editor.fontFamily": "MesloLGSDZNerdFontCompleteM-Regular, Menlo, Monaco, 'Courier New', monospace",
|
|
||||||
"workbench.colorTheme": "Dracula"
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/usr/bin/env bash -eo pipefail
|
|
||||||
|
|
||||||
ln -s ~/.vscode/settings.json ~/Library/Application Support/Code/User/settings.json
|
|
||||||
|
|
||||||
while read p; do
|
|
||||||
code --install-extension $p
|
|
||||||
done <extensions.txt
|
|
9
zim/notebooks.list
Normal file
9
zim/notebooks.list
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[NotebookList]
|
||||||
|
Default=
|
||||||
|
1=~/Notebooks/Notes
|
||||||
|
|
||||||
|
[Notebook 1]
|
||||||
|
uri=~/Notebooks/Notes
|
||||||
|
name=Notes
|
||||||
|
interwiki=None
|
||||||
|
icon=None
|
20
zim/preferences.conf
Normal file
20
zim/preferences.conf
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[General]
|
||||||
|
plugins=["pageindex","pathbar","insertsymbol","printtobrowser","versioncontrol"]
|
||||||
|
plugins_list_version=0.70
|
||||||
|
|
||||||
|
[PageIndexPlugin]
|
||||||
|
pane=left_pane
|
||||||
|
autoexpand=True
|
||||||
|
autocollapse=True
|
||||||
|
|
||||||
|
[PathBarPlugin]
|
||||||
|
|
||||||
|
[InsertSymbolPlugin]
|
||||||
|
|
||||||
|
[PrintToBrowserPlugin]
|
||||||
|
|
||||||
|
[VersionControlPlugin]
|
||||||
|
autosave=False
|
||||||
|
autosave_at_interval=False
|
||||||
|
autosave_interval=10
|
||||||
|
|
Loading…
Reference in New Issue
Block a user