Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dotfiles script to automate xCode CLI tools #39

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Update dotfiles script to automate xCode CLI tools #39

wants to merge 1 commit into from

Conversation

iamnewton
Copy link

  • Create a script to check if xCode is installed; if so inform the user,
    if not run automated install script of xCode CLI tools
  • Create a recursive script to automate xCode CLI tools; checks version
    of kernel to ensure user is on 13 or up (Mavericks) as thats when
    xcode-select --install was introduced.

Issue: #33

- Create a script to check if xCode is installed; if so inform the user,
  if not run automated install script of xCode CLI tools
- Create a recursive script to automate xCode CLI tools; checks version
  of kernel to ensure user is on 13 or up (Mavericks) as thats when
  `xcode-select --install` was introduced.

Issue: #33
@necolas
Copy link
Owner

necolas commented Apr 1, 2014

Thanks! This looks great. I'm pretty swamped at the moment but will get to this when I next work on my dotfiles.

@iamnewton
Copy link
Author

No problem, you probably don't need this anymore, if you're on OSX 10.9+ & you use the newest version of Homebrew install. They are doing an xCode command line tools install for you now. Although one thing to note about that; it will break your Homebrew installation of macvim as that requires the full xCode installation.

If you're interested I've forked your repo and "improved" (depends on your perspective) upon it with more features, such as...

  • Using a Brewfile to install all homebrew packages
  • Script to change login shells to new homebrew installed version
  • Change out Pathogen for Vim (uses submodules) for Vundle (automates everything for you)
  • Logs to the console.app as well as stdout and allows you to run in silent mode


# Check if xCode is present
check_xcode() {
if type_exists 'gcc'; then
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I remember correctly, type_exists 'gcc' will be true on OS X 10.9, even if XCode is not installed.

For OS X 10.9, I personally use:

if [ $(xcode-select -p &> /dev/null; printf $?) -ne 0 ]; then
     xcode-select --install 
     # ...
fi

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, I get that xcode-select -p prints out the location of the xCode developer directory if available, (and the redirect to the null device), but what does the printf $? do? Isn't that supposed to print out the previous command?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what does the printf $? do?

@chrisopedia printf $? prints the exit code of the last executed command (in this case xcode-select -p &> /dev/null).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So the assumption here then is that xcode select -p will print out an exit code that is not equal to 0? What happens or is it possible that they could change their exit code? What about if there is no status number with their exit as in just plain exit? Does that still pass?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens or is it possible that they could change their exit code? What about if there is no status number with their exit as in just plain exit? Does that still pass?

@chrisopedia in any UNIX based system every command returns an exit code (from 0-255). 0 means true/successful completion, while != 0 means false/something went wrong.

For more in-depth information, please read: http://tldp.org/LDP/abs/html/exit-status.html.

xcode select -p will print out an exit code that is not equal to 0?

@chrisopedia xcode-select -p &> /dev/null; printf $? will print out the exit code for xcode-select -p no matter what value it is. Then, -ne 0 will check if that exit code is different then 0, and if it is, then XCode will need to be installed.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool @alrra I'll update my pull request with this new check.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chrisopedia again, please note that this is only for OS X 10.9+. :)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

K. Will do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants