Coder Social home page Coder Social logo

what-terminal-is-felix-using's Introduction

What terminal is Felix using

Since I get asked this every time I tweet a picture of one of my tools, here's some information about how I set up my terminal:

  • I use iTerm2 instead of the Stock terminal Mac app
  • I use oh-my-zshell
  • I use rbenv and rvm (on different computers - please only install one of them)
  • I use Solarized Dark for the terminal colors
  • I use powerline-shell to get those cool path bars. I usually hide the host name and the user, before running python ./setup.py install, edit the config file and comment out username, hostname.
    • cd ~/.oh-my-zsh/
    • mkdir felix
    • cd felix
    • git clone https://github.com/b-ryan/powerline-shell
    • cd powerline-shell
    • sudo python setup.py install
  • I use the Meslo Powerline Font as you need a font that supports the directory characters for powerline
  • I use z an amazing tool to quickly jump between projects. Like Alfred but for your Terminal reduced to folder search only
  • Install Powerlevel10
  • I use the subl . command a lot to quickly open a specific folder in Sublime Text. This is what I use to edit my fastlane configuration
  • echo "gem: --no-document" >> ~/.gemrc to stop installing docs every time you install a gem
  • I use o . or o filename.js to open files (see KrauseFx/dotfiles)
  • Settings -> Profiles -> Keys -> Load Preset -> Natural Text Editing
  • Enable the Show proxy icon in window title bar option to show the folder on the window title bar for right click and drag & drop gestures
  • Profiles -> Advanced -> Semantic History -> Open with editor... -> Sublime Text 3
  • Keys -> Replace Cycle Tabs ... with Next Tab and Previous Tab

Also, check out KrauseFx/dotfiles for the dot files I'm using ๐Ÿš€


what-terminal-is-felix-using's People

Contributors

krausefx avatar readmecritic avatar

Stargazers

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

Watchers

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

what-terminal-is-felix-using's Issues

Test

Issue description will be here

โœ… fastlane environment โœ…

Stack

Key Value
OS 10.12.2
Ruby 2.3.1
Bundler? true
Git git version 2.10.1 (Apple Git-78)
Installation Source ~/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bin/fastlane
Host Mac OS X 10.12.2 (16C67)
Ruby Lib Dir ~/.rbenv/versions/2.3.1/lib
OpenSSL Version OpenSSL 1.0.2j 26 Sep 2016
Is contained false
Xcode Path /Applications/Xcode-8.2.app/Contents/Developer/
Xcode Version 8.2

System Locale

Variable Value
LANG en_US.UTF-8 โœ…
LC_ALL
LANGUAGE

fastlane files:

`./fastlane/Fastfile`
skip_docs

desc "Increment the version number of this gem"
lane :bump do |options|
  ensure_git_branch(branch: "master")
  ensure_git_status_clean

  github_api_token = ENV["FL_GITHUB_RELEASE_API_TOKEN"]
  UI.user_error!("Please provide a GitHub API token using `FL_GITHUB_RELEASE_API_TOKEN`") if github_api_token.to_s.length == 0

  path = "./fastlane/lib/fastlane/version.rb"

  # Verify everything is in a consistent state
  latest_version = current_version
  local_version = version_get_podspec(path: path)
  UI.user_error!("Version on RubyGems doesn't match local repo: #{latest_version} != #{local_version}") if latest_version != local_version

  changelog_text = show_changelog

  bump_type ||= 'minor' if prompt(text: "New feature, method or API?", boolean: true)
  bump_type ||= 'patch'

  slug = "fastlane/fastlane"
  new_version = version_bump_podspec(path: path, bump_type: bump_type)
  sh "git checkout -b 'version-bump-#{new_version}'"
  commit_message = "Version bump to #{new_version}"
  git_commit(path: path,
             message: commit_message)
  push_to_git_remote

  pr_body = ["Auto-generated by fastlane ๐Ÿค–"]
  pr_body << "**Changes since release '#{latest_version}':**"
  pr_body << changelog_text
  pr_url = create_pull_request(
    api_token: github_api_token,
    repo: slug,
    title: commit_message,
    body: pr_body.join("\n\n")
  )

  if ENV['SLACK_URL']
    slack(
      channel: "action",
      default_payloads: [],
      message: "Version bump: #{pr_url} โœจ",
      payload: {}
    )
  end

  # Revert to master branch
  sh "git checkout master"
end

desc "Does everything that's needed for a release"
desc "This includes running tests and verifying the GitHub release"
lane :release do
  update_fastlane

  # Git verification
  #
  ensure_git_status_clean
  ensure_git_branch(branch: 'master')
  git_pull

  # Verifying RubyGems version
  #
  validate_repo

  require "../fastlane/lib/fastlane/version.rb"
  version = Fastlane::VERSION
  old_version = current_version
  puts "Deploying #{version}"
  if Gem::Version.new(version) <= Gem::Version.new(old_version)
    UI.user_error!("Version number #{version} was already deployed")
  end

  # Then push to git remote
  #
  push_to_git_remote

  # Preparing GitHub Release
  #
  github_release = get_github_release(url: "fastlane/fastlane", version: version)
  if (github_release || {}).fetch('body', '').length == 0
    show_changelog(old_version: old_version)

    title = prompt(text: 'Title: ')
    description = prompt(text: "Please enter a changelog: ",
                         multi_line_end_keyword: "END")

    github_release = set_github_release(
      repository_name: "fastlane/fastlane",
      name: [version, title].join(" "),
      tag_name: version,
      description: description,
      is_draft: false
    )

    # Actual release of the gem
    #
    sh "gem push ../pkg/fastlane-#{version}.gem"

    release_url = github_release['html_url']

    message = [title, description, release_url].join("\n\n")
    add_fastlane_git_tag(tag: "fastlane/#{version}", message: message)
  end

  # After publishing
  #
  if ENV['SLACK_URL']
    slack(
      channel: "releases",
      default_payloads: [],
      message: "Successfully released [fastlane #{version}](#{release_url}) :rocket:",
      payload: {
        "New" => github_release['body']
      }
    )
  end

  clubmate
  donate_food

  puts "You can now tweet:".green
  tag_url = "https://github.com/fastlane/fastlane/releases/tag/fastlane/#{version}"
  puts "[fastlane] #{github_release['name']} #{tag_url}"

  update_docs
end

desc "Makes sure the tests on https://docs.fastlane.tools still work with the latest version"
lane :verify_docs do
  clone_docs do
    Bundler.with_clean_env do
      puts `sed -i -e "s/activate_bin_path/bin_path/g" $(which bundle)` # workaround for bundler https://github.com/bundler/bundler/issues/4602#issuecomment-233619696
      sh "bundle install"
      sh "bundle exec fastlane test skip_building:true" # skip_building since we don't have a proper python environment set up
    end
  end
end

desc "Update the actions.md on https://docs.fastlane.tools"
desc "This will also automatically submit a pull request to fastlane/docs"
lane :update_docs do
  if ENV["ENHANCER_USER"].to_s.length == 0 || ENV["ENHANCER_PASSWORD"].to_s.length == 0
    UI.error("No ENHANCER_USER or ENHANCER_PASSWORD environment variables found, which are required to generate a new Actions.md")
    next
  end

  clone_docs do
    require 'fastlane/documentation/markdown_docs_generator'
    actions_md_path = File.expand_path("docs/actions.md")
    Fastlane::MarkdownDocsGenerator.new.generate!(target_path: actions_md_path)

    Bundler.with_clean_env do
      sh "bundle update"
    end

    if `git status --porcelain`.length == 0
      UI.success("No changes in the actions.md โœ…")
    else
      # Create a new branch
      sh "git checkout -b 'update-actions-md-#{Time.now.to_i}'"

      Dir.chdir("fastlane") do # this is an assumption of fastlane, that we have to .. when shelling out
        # Commit the changes
        git_commit(path: [actions_md_path, "Gemfile.lock"], message: "Update actions.md for latest fastlane release ๐Ÿš€")
        # Push them to the git remote
        push_to_git_remote

        # Submit the pull request
        pr_url = create_pull_request(
          api_token: ENV["FL_GITHUB_RELEASE_API_TOKEN"],
          repo: "fastlane/docs",
          title: "[Bot] Update actions.md for latest fastlane release ๐Ÿš€",
          body: "Auto-generated by _fastlane_ bot ๐Ÿค–"
        )
        UI.success("Successfully submitted a pull request to fastlane/docs: #{pr_url} ๐Ÿš€")
      end
    end
  end
end

def clone_docs
  require 'tmpdir'
  git_url = "https://github.com/fastlane/docs"

  Dir.mktmpdir("fl_clone") do |tmp_dir|
    Dir.chdir(tmp_dir) do
      sh "git clone #{git_url} --depth=1"
      Dir.chdir("docs") do
        yield
      end
    end
  end
end

error do |lane, exception|
  if ENV['SLACK_URL']
    slack(channel: "testing", message: exception.to_s, success: false)
  end
end

desc "Verifies all tests pass and the current state of the repo is valid"
private_lane :validate_repo do
  # Verifying that no debug code is in the code base
  #
  ensure_no_debug_code(text: "binding.pry", extension: ".rb", exclude: "**/*/playground.rb") # debugging code
  ensure_no_debug_code(text: "# TODO", extension: ".rb") # TODOs
  ensure_no_debug_code(text: "now: ", extension: ".rb") # rspec focus
  ensure_no_debug_code(text: "<<<<<<<", extension: ".rb") # Merge conflict

  rubocop

  # Verifying the --help command
  #
  # tools_to_test = Fastlane::TOOLS
  tools_to_test = [:fastlane] # until we have the binaries for all tools included here
  tools_to_test.each do |tool_name|
    next if no_binary.include?(tool_name)
    Dir.chdir("..") do
      binary_path = File.join("bin", tool_name.to_s)
      content = sh("PAGER=cat #{binary_path} --help")
      ["--version", "https://fastlane.tools", tool_name.to_s].each do |current|
        UI.user_error!("--help missing information: '#{current}'") unless content.include?(current)
      end
    end
  end

  Dir.chdir("..") do
    # Install the bundle and the actual gem
    sh "bundle install"
    sh "rake install"

    # Run the tests
    #
    sh "bundle exec rake test_all"
  end

  # Verify docs are still working
  verify_docs
end

desc "Get the version number of the last release"
private_lane :current_version do
  puts "Checking the latest version on RubyGems"
  download(url: "https://rubygems.org/api/v1/gems/fastlane.json")["version"]
end

desc "All repos that don't have a binary to test"
private_lane :no_binary do
  ['fastlane_core', 'spaceship', 'credentials_manager']
end

desc "Print out the changelog since the last tagged release and open the GitHub page with the changes"
lane :show_changelog do |options|
  old_version = options[:old_version] || current_version

  changes = sh("git log --pretty='* %s' #{old_version}...HEAD --no-merges ..", log: $verbose).gsub("\n\n", "\n")
  changes.gsub!("[WIP]", "") # sometimes a [WIP] is merged

  github_diff_url = "https://github.com/fastlane/fastlane/compare/#{old_version}...master"
  sh "open #{github_diff_url}"

  puts "Changes since release #{old_version}:\n\n#{changes.cyan}"
  changes # return the text without the modified colors
end

desc "Add a git tag in the fastlane repo for this release"
private_lane :add_fastlane_git_tag do |options|
  `git tag -am #{options[:message].shellescape} #{options[:tag].shellescape}`
  push_git_tags
end

lane :donate_food do
  if ENV["SHARETHEMEAL_USERHASH"].to_s.length > 0
    sharethemeal(
      amount: "0.5",
      currency: "USD",
      team_id: "fastlane"
    )
  end
end

No Appfile found

fastlane gems

Gem Version Update-Status
fastlane 2.7.0 โœ… Up-To-Date

Loaded fastlane plugins:

Plugin Version Update-Status
fastlane-plugin-ruby 0.1.3 โœ… Up-To-Date
fastlane-plugin-clubmate 0.1.0 โœ… Up-To-Date
fastlane-plugin-sharethemeal 0.1.9 โœ… Up-To-Date
Loaded gems
Gem Version
did_you_mean 1.0.0
bundler 1.13.6
io-console 0.4.5
rake 11.3.0
CFPropertyList 2.3.4
i18n 0.7.0
json 1.8.3
minitest 5.10.1
thread_safe 0.3.5
tzinfo 1.2.2
activesupport 4.2.7.1
public_suffix 2.0.5
addressable 2.5.0
ast 2.3.0
babosa 1.0.2
builder 3.2.2
byebug 9.0.6
claide 1.0.1
coderay 1.1.1
colored 1.2
highline 1.7.8
commander 4.4.3
docile 1.1.5
simplecov-html 0.10.0
simplecov 0.12.0
tins 1.13.0
term-ansicolor 1.4.0
thor 0.19.4
coveralls 0.8.17
safe_yaml 1.0.4
crack 0.4.3
diff-lcs 1.2.5
unf_ext 0.0.7.2
unf 0.1.4
domain_name 0.5.20161129
dotenv 2.1.1
excon 0.54.0
fakefs 0.8.1
multipart-post 2.0.0
faraday 0.10.1
http-cookie 1.0.3
faraday-cookie_jar 0.0.6
faraday_middleware 0.10.1
fastimage 2.0.1
gh_inspector 1.0.2
jwt 1.5.6
little-plugger 1.1.4
multi_json 1.12.1
logging 2.1.0
memoist 0.15.0
os 0.9.6
signet 0.7.3
googleauth 0.5.1
httpclient 2.8.3
hurley 0.2
mime-types 1.25.1
uber 0.0.15
representable 2.3.0
retriable 2.1.0
google-api-client 0.9.20
mini_magick 4.5.1
multi_xml 0.6.0
plist 3.2.0
rubyzip 1.2.0
security 0.1.3
slack-notifier 1.5.1
terminal-notifier 1.7.1
unicode-display_width 1.1.2
terminal-table 1.7.3
word_wrap 1.0.0
nanaimo 0.2.3
xcodeproj 1.4.2
rouge 1.11.1
xcpretty 0.2.4
xcpretty-travis-formatter 0.0.4
fastlane-plugin-clubmate 0.1.0
fastlane-plugin-ruby 0.1.3
rest-client 1.6.9
stm_api 0.1.6
fastlane-plugin-sharethemeal 0.1.9
method_source 0.8.2
parser 2.3.3.1
powerpack 0.1.1
slop 3.6.0
pry 0.10.4
pry-byebug 3.4.2
rainbow 2.2.1
rb-readline 0.5.3
rspec-support 3.5.0
rspec-core 3.5.4
rspec-expectations 3.5.0
rspec-mocks 3.5.0
rspec 3.5.0
rspec_junit_formatter 0.2.3
ruby-progressbar 1.8.1
rubocop 0.46.0
webmock 1.19.0
xcode-install 2.1.0
yard 0.8.7.6

generated on: 2017-01-10

Add install script

Here is the terminal part from my personal mac install script:

REAL_PATH="$(readlink "${BASH_SOURCE}")"
cd -P "$(dirname "${REAL_PATH}")"

link_to() {
  if [ ! -e "$2" ]; then
		if [ ! -e "$1" ]; then
			printf "\nWARNING: cannot link $1 because it does not exist\n"
		else
			sudo ln -s "$1" "$2"
			printf "\nLinked $2"
		fi
  fi
}
link_dotfile() {
  link_to $(pwd)/$1 ~/.$1
}

link_to $(pwd)/com.googlecode.iterm2.plist ~/Library/Preferences/com.googlecode.iterm2.plist

if ! command -v brew > /dev/null 2>&1; then
  printf "\n### Installing Brew\n"
  ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  brew analytics off
fi

brew install zsh
if ! [ $(ls /Applications/iTerm.app 2>/dev/null) ]; then
  brew cask reinstall iterm2

  sh -c "env() {
    echo 'Dont want to stop installing by changing the environment to zsh'
  }
  $(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  rm ~/.zshrc
  link_dotfile zshrc


  git clone https://github.com/powerline/fonts.git --depth=1
  cd fonts
  ./install.sh
  cd ..
  rm -rf fonts
fi

If I remember correctly, the only change in the iterm plist is the color and font.

Theme

Hey KrauseFx, I wonder if you could update the readme with the theme used on your setup!

Thanks a lot!

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.