1
# Copyright 2008 Amazon.com, Inc. or its affiliates. All Rights
2
# Reserved. Licensed under the Amazon Software License (the
3
# "License"). You may not use this file except in compliance with the
4
# License. A copy of the License is located at
5
# http://aws.amazon.com/asl or in the "license" file accompanying this
6
# file. This file is distributed on an "AS IS" BASIS, WITHOUT
7
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
8
# the License for the specific language governing permissions and
9
# limitations under the License.
11
#------------------------------------------------------------------------------
12
require 'ec2/platform/base'
13
require 'ec2/platform/linux/identity'
14
require 'ec2/platform/linux/architecture'
15
require 'ec2/platform/linux/fstab'
16
require 'ec2/platform/linux/mtab'
17
require 'ec2/platform/linux/image'
18
require 'ec2/platform/linux/rsync'
19
require 'ec2/platform/linux/tar'
20
require 'ec2/platform/linux/uname'
21
require 'ec2/platform/linux/pipeline'
22
require 'ec2/platform/linux/constants'
28
include EC2::Platform::Base::Distribution
29
REDHAT = 'Red Hat Linux'
34
SLACKWARE = 'Slackware'
41
['/etc/caos-release', Distribution::CAOS, nil],
42
['/etc/debian-release', Distribution::DEBIAN, nil],
43
['/etc/debian_version', Distribution::DEBIAN, nil],
44
['/etc/fedora-release', Distribution::FEDORA, nil],
45
['/etc/gentoo-release', Distribution::GENTOO, nil],
46
['/etc/redhat-release', Distribution::REDHAT, nil],
47
['/etc/slackware-version',Distribution::SLACKWARE, nil],
48
['/etc/slackware-release',Distribution::SLACKWARE, nil],
49
['/etc/SuSE-release', Distribution::SUSE, nil],
50
['/etc/ubuntu-release', Distribution::UBUNTU, nil],
51
['/etc/ubuntu-version', Distribution::UBUNTU, nil],
52
['/etc/mandrake-release', Distribution::MANDRAKE, nil],
56
class System < EC2::Platform::Base::System
58
BUNDLING_ARCHITECTURE = EC2::Platform::Linux::Architecture.bundling
60
#---------------------------------------------------------------------#
62
Distribution::IDENTITIES.each do |file, distro, regex|
65
return distro if regex.match((IO.read file rescue nil))
71
return Distribution::UNKNOWN
74
#---------------------------------------------------------------------#
76
return `id -u`.strip == '0'