Skip to content

Commit

Permalink
Renamed UNIX to Unix to avoid trademark issues.
Browse files Browse the repository at this point in the history
  • Loading branch information
igal committed Sep 7, 2007
1 parent 68573c2 commit e92bae8
Show file tree
Hide file tree
Showing 13 changed files with 35 additions and 35 deletions.
2 changes: 1 addition & 1 deletion README.txt
@@ -1,6 +1,6 @@
== AutomateIt

<em>AutomateIt is an open-source tool for automating the setup and maintenance of UNIX systems.</em>
<em>AutomateIt is an open-source tool for automating the setup and maintenance of Unix systems.</em>

Information about AutomateIt is best read in the following order:
1. http://AutomateIt.org -- website explaining what it is and why it's useful
Expand Down
6 changes: 3 additions & 3 deletions TESTING.txt
Expand Up @@ -26,17 +26,17 @@ You will also get warnings about drivers that are not available on your platform

=== Running an individual test

Run an individual test, like <tt>spec/unit/template_manager_erb_spec.rb</tt>, by executing the UNIX shell command:
Run an individual test, like <tt>spec/unit/template_manager_erb_spec.rb</tt>, by executing the Unix shell command:

spec spec/unit/template_manager_erb_spec.rb

=== Running test suites

To run the +unit+ test suite, execute the following command from the UNIX shell:
To run the +unit+ test suite, execute the following command from the Unix shell:

rake spec

To run all the test suites, including +unit+ and +integration+, execute the following command from the UNIX shell:
To run all the test suites, including +unit+ and +integration+, execute the following command from the Unix shell:

rake spec:all

Expand Down
24 changes: 12 additions & 12 deletions TUTORIAL.txt
@@ -1,6 +1,6 @@
== Get Started! A hands-on tutorial for learning AutomateIt

<em>AutomateIt is an open-source tool for automating the setup and maintenance of UNIX systems.</em>
<em>AutomateIt is an open-source tool for automating the setup and maintenance of Unix systems.</em>

This hands-on guide will teach you to use AutomateIt and explain where to find more detailed instructions.

Expand Down Expand Up @@ -32,8 +32,8 @@ AutomateIt's technical documentation uses the following typographical convention
* AutomateIt::ShellManager#sh -- A method, with a link to its documentation. You can also find a link to this method's documentation in the "Methods" pane on the left.
* Ruby code:
puts "Ruby code"
* UNIX shell command, although the prompt may be left off when obvious:
you@host:myproject> echo "UNIX command run from the 'myproject' directory"
* Unix shell command, although the prompt may be left off when obvious:
you@host:myproject> echo "Unix command run from the 'myproject' directory"
* AutomateIt interactive shell command, although the prompt may be left off when obvious:
ai> puts "I'm in the Interpreter"

Expand Down Expand Up @@ -61,7 +61,7 @@ Here's what an interactive shell session looks like (text following the <tt>#</t
ai> self.class # Prompt and another user command
=> AutomateIt::Interpreter # Return value of "self.class"
ai> <CTRL-D> # Press <CTRL-D> to exit the shell
you@host:tmp> # We're back to the UNIX shell
you@host:tmp> # We're back to the Unix shell

=== Recipe files

Expand Down Expand Up @@ -97,7 +97,7 @@ For example, one of the commands listed is +pwd+, which can be used like this:
ai> pwd
=> "/tmp"

AutomateIt provides many commands that work just like the UNIX shell commands you already know, so you'll be productive quickly.
AutomateIt provides many commands that work just like the Unix shell commands you already know, so you'll be productive quickly.

=== Conditional execution

Expand Down Expand Up @@ -132,8 +132,8 @@ AutomateIt uses an extensible plugin architecture to group together related comm
* AutomateIt::FieldManager -- Queries configuration variables.
* AutomateIt::PackageManager -- Manipulates software packages.
* AutomateIt::PlatformManager -- Queries platform, such as its OS version.
* AutomateIt::ServiceManager -- Manipulates services, such as UNIX daemons.
* AutomateIt::ShellManager -- Manipulates files and executes UNIX commands.
* AutomateIt::ServiceManager -- Manipulates services, such as Unix daemons.
* AutomateIt::ShellManager -- Manipulates files and executes Unix commands.
* AutomateIt::TagManager -- Groups hosts by role and queries membership.
* AutomateIt::TemplateManager -- Renders templates to files.

Expand All @@ -152,7 +152,7 @@ For example:

* AutomateIt::ShellManager -- A plugin for running shell commands.
* AutomateIt::ShellManager::Portable -- A portable but limited-functionality driver that implements the ShellManager's methods.
* AutomateIt::ShellManager::UNIX -- A full-featured driver implementing ShellManager's methods that only runs on UNIX-like systems.
* AutomateIt::ShellManager::Unix -- A full-featured driver implementing ShellManager's methods that only runs on Unix-like systems.

=== Plugins provide APIs, drivers provide implementations

Expand All @@ -164,16 +164,16 @@ For example, AutomateIt provides a common API for all packaging tools: AutomateI

AutomateIt will check if +foo+ is installed, install it if needed, or do nothing if the package is present. This API is the same for all packaging tools, making it easy to get work done by using high-level AutomateIt commands instead of cryptic tool-specific commands. Although AutomateIt uses the low-level tools, it uses them with best-practices approaches and hides the senseless complexity from the user.

What's the big deal? Consider how one would install packages from the UNIX shell. Most packaging tools are pathologically dysfunctional and make it bafflingly difficult to programmatically install or uninstall packages, or tell if a package is installed. Many don't use exit values and require complex output parsing. Others require user-input even when it's obvious that none is needed. Almost all make it necessary to write conditional code because they'll either fail with errors if told to install an existing package, destroy an existing setup, or install duplicate packages. Writing UNIX shell code to handle all these quirks is frustrating and risky.
What's the big deal? Consider how one would install packages from the Unix shell. Most packaging tools are pathologically dysfunctional and make it bafflingly difficult to programmatically install or uninstall packages, or tell if a package is installed. Many don't use exit values and require complex output parsing. Others require user-input even when it's obvious that none is needed. Almost all make it necessary to write conditional code because they'll either fail with errors if told to install an existing package, destroy an existing setup, or install duplicate packages. Writing Unix shell code to handle all these quirks is frustrating and risky.

Here's a sample UNIX shell command for installing a package using one of the simplest, most reasonable tools available -- although note that unlike AutomateIt, this shell command can't handle multiple packages, is slower, can't be previewed, and has no consistent error handling:
Here's a sample Unix shell command for installing a package using one of the simplest, most reasonable tools available -- although note that unlike AutomateIt, this shell command can't handle multiple packages, is slower, can't be previewed, and has no consistent error handling:

if dpkg-query -W --showformat '${Status}\n' foo 2>&1 | \
egrep -q '(^| )installed'; then
apt-get install -y -q some_package_name < /dev/null
done

Now compare that hideous command to the simple, clear and consistent AutomateIt command before it. AutomateIt's plugins and drivers are easy to install and write. As more are written, more people will hopefully be freed from needlessly convoluted low-level commands, and able to get simple things done simply. AutomateIt's consistent API, multiple drivers, sane defaults and conditional-checking make it easier to write clear and maintainable recipes than using the low-level directly commands from the UNIX shell.
Now compare that hideous command to the simple, clear and consistent AutomateIt command before it. AutomateIt's plugins and drivers are easy to install and write. As more are written, more people will hopefully be freed from needlessly convoluted low-level commands, and able to get simple things done simply. AutomateIt's consistent API, multiple drivers, sane defaults and conditional-checking make it easier to write clear and maintainable recipes than using the low-level directly commands from the Unix shell.

=== Driver auto-detection

Expand Down Expand Up @@ -254,7 +254,7 @@ The Interpreter automatically loads the project. The +project+ method contains t

=== Fields

A project's <tt>config/fields.yml</tt> file is meant to store configuration constants, like custom paths for applications. Fields abstract configuration variables for recipes, improving maintainability by separating data and logic. Fields can also be easily queried from UNIX using the +aifield+ command. More information about fields and +aifield+ can be found in AutomateIt::FieldManager.
A project's <tt>config/fields.yml</tt> file is meant to store configuration constants, like custom paths for applications. Fields abstract configuration variables for recipes, improving maintainability by separating data and logic. Fields can also be easily queried from Unix using the +aifield+ command. More information about fields and +aifield+ can be found in AutomateIt::FieldManager.

For example, consider a fields file with the following contents:

Expand Down
2 changes: 1 addition & 1 deletion bin/automateit
Expand Up @@ -15,7 +15,7 @@ OptionParser.new do |parser|
PROG = File.basename($0)
opts = {}
parser.banner = <<EOB
#{PROG} - tool for automating the setup and maintenance of UNIX-like systems
#{PROG} - tool for automating the setup and maintenance of Unix-like systems
Usage: #{PROG} [options] [recipe]
Expand Down
2 changes: 1 addition & 1 deletion lib/automateit/account_manager.rb
@@ -1,7 +1,7 @@
module AutomateIt
# == AccountManager
#
# The AccountManager provides a way of managing system accounts, such as UNIX
# The AccountManager provides a way of managing system accounts, such as Unix
# users and groups.
class AccountManager < Plugin::Manager
require 'automateit/account_manager/portable'
Expand Down
2 changes: 1 addition & 1 deletion lib/automateit/field_manager.rb
Expand Up @@ -19,7 +19,7 @@ module AutomateIt
# You can get a reference to the entire hash:
# lookup("*")
#
# Fields can be queried from the UNIX shell using +aifield+, run <tt>aifield
# Fields can be queried from the Unix shell using +aifield+, run <tt>aifield
# --help</tt> for details.
class FieldManager < Plugin::Manager
alias_methods :lookup
Expand Down
2 changes: 1 addition & 1 deletion lib/automateit/platform_manager/uname.rb
Expand Up @@ -2,7 +2,7 @@ module AutomateIt
class PlatformManager
# == PlatformManager::Uname
#
# A PlatformManager driver that uses the UNIX +uname+ command to provide
# A PlatformManager driver that uses the Unix +uname+ command to provide
# basic information about the platform.
class Uname < Struct
depends_on :programs => %w(uname)
Expand Down
12 changes: 6 additions & 6 deletions lib/automateit/project.rb
Expand Up @@ -6,7 +6,7 @@ module AutomateIt
#
# === Create a project
#
# You can create a project by running the following from the UNIX shell:
# You can create a project by running the following from the Unix shell:
#
# automateit --create myproject
#
Expand Down Expand Up @@ -75,7 +75,7 @@ module AutomateIt
#
# MEOW!
#
# === Specifying project paths on the UNIX shell
# === Specifying project paths on the Unix shell
#
# AutomateIt will load the project automatically if you're executing a recipe
# that's inside a project's +recipes+ directory.
Expand Down Expand Up @@ -124,11 +124,11 @@ module AutomateIt
#
# === Tag and field command-line helpers
#
# You can access a project's tags and fields from the UNIX shell. This
# You can access a project's tags and fields from the Unix shell. This
# helps other programs access configuration data and make use of your roles.
#
# For example, with the <tt>hello_project</tt> we've created, we can lookup
# fields from the UNIX shell like this:
# fields from the Unix shell like this:
#
# aifield -p /tmp/hello_project greeting
#
Expand Down Expand Up @@ -165,7 +165,7 @@ module AutomateIt
# automateit recipe/default.rb
# * Run this wrapper once an hour using cron so that your systems are always up to date. AutomateIt only prints output when it makes a change, so cron will only email you when you commit new code to the repository and the hosts make changes.
# * If you need to run a recipe on the machine right now, SSH into it and run the wrapper.
# * If you need to run the script early on a bunch of machines and don't want to manually SSH into each one, you can leverage the +aitag+ (see <tt>aitag --help</tt>) to execute a UNIX command across multiple systems. For example, you could use a UNIX shell command like this to execute the wrapper on all hosts tagged with +apache_servers+:
# * If you need to run the script early on a bunch of machines and don't want to manually SSH into each one, you can leverage the +aitag+ (see <tt>aitag --help</tt>) to execute a Unix command across multiple systems. For example, you could use a Unix shell command like this to execute the wrapper on all hosts tagged with +apache_servers+:
#
# for host in `aitag -p /var/local/myautomateit -w apache_server`; do
# echo "# $host"
Expand Down Expand Up @@ -255,7 +255,7 @@ def self.create(opts)
#
# Use this file to create a multi-level hash of key value pairs with YAML. This
# is useful for extracting configuration-specific arguments out of your recipes
# and make it easier to share them between recipes and command-line UNIX
# and make it easier to share them between recipes and command-line Unix
# programs.
#
# You can write lines like the following to declare these the hash with YAML:
Expand Down
2 changes: 1 addition & 1 deletion lib/automateit/service_manager.rb
Expand Up @@ -2,7 +2,7 @@ module AutomateIt
# == ServiceManager
#
# ServiceManager provides a way of managing services, such starting and
# stopping UNIX daemons.
# stopping Unix daemons.
class ServiceManager < Plugin::Manager
require 'automateit/service_manager/sysv'
require 'automateit/service_manager/update_rcd'
Expand Down
2 changes: 1 addition & 1 deletion lib/automateit/service_manager/sysv.rb
Expand Up @@ -3,7 +3,7 @@ class ServiceManager
# == ServiceManager::SYSV
#
# The SYSV driver implements the ServiceManager methods for #running?,
# #start and #stop on UNIX-like platforms that use the System V init
# #start and #stop on Unix-like platforms that use the System V init
# process using a <tt>/etc/init.d</tt> directory.
#
# It also implements a basic #enabled? method that's very fast but may not
Expand Down
6 changes: 3 additions & 3 deletions lib/automateit/shell_manager.rb
@@ -1,7 +1,7 @@
module AutomateIt
# == ShellManager
#
# The ShellManager provides UNIX-like shell commands for manipulating files
# The ShellManager provides Unix-like shell commands for manipulating files
# and executing commands.
#
# ==== Basic previews
Expand Down Expand Up @@ -73,8 +73,8 @@ module AutomateIt
#
# => Deleting all files in directory /tmp/foo/bar
class ShellManager < Plugin::Manager
require 'automateit/shell_manager/portable.rb'
require 'automateit/shell_manager/unix.rb'
require 'automateit/shell_manager/portable'
require 'automateit/shell_manager/unix'

alias_methods :sh, :which, :which!, :mktemp, :mktempdir, :mktempdircd, :chperm, :umask
alias_methods :cd, :pwd, :mkdir, :mkdir_p, :rmdir, :ln, :ln_s, :ln_sf, :cp, :cp_r, :mv, :rm, :rm_r, :rm_rf, :install, :chmod, :chmod_R, :chown, :chown_R, :touch
Expand Down
2 changes: 1 addition & 1 deletion lib/automateit/shell_manager/portable.rb
Expand Up @@ -2,7 +2,7 @@ module AutomateIt
class ShellManager
# == ShellManager::Portable
#
# Pure-Ruby, portable driver for ShellManager provides UNIX-like shell
# Pure-Ruby, portable driver for ShellManager provides Unix-like shell
# commands for manipulating files and executing commands.
#
# It does not provide commands for:
Expand Down
6 changes: 3 additions & 3 deletions lib/automateit/shell_manager/unix.rb
@@ -1,13 +1,13 @@
module AutomateIt
class ShellManager
# == ShellManager::UNIX
# == ShellManager::Unix
#
# A ShellManager driver for providing shell commands for manipulating files
# and executing commands on UNIX-like systems.
# and executing commands on Unix-like systems.
#
# It includes all the functionality of the ShellManager::Portable driver
# plus additional commands.
class UNIX < Portable
class Unix < Portable
depends_on :programs => %w(which)

def suitability(method, *args) # :nodoc:
Expand Down

0 comments on commit e92bae8

Please sign in to comment.