Skip to content

Commit 57266bc

Browse files
authored
Merge pull request #642 from bastelfreak/arch
Implement Arch Linux support
2 parents e5d11e9 + b78b4c9 commit 57266bc

File tree

6 files changed

+39
-14
lines changed

6 files changed

+39
-14
lines changed

manifests/init.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
#
3939
class python (
4040
Python::Package::Ensure $ensure = $python::params::ensure,
41-
Python::Version $version = '3',
41+
Python::Version $version = $facts['os']['family'] ? { 'Archlinux' => 'system', default => '3' },
4242
Python::Package::Ensure $pip = $python::params::pip,
4343
Python::Package::Ensure $dev = $python::params::dev,
4444
Python::Package::Ensure $venv = $python::params::venv,

manifests/install.pp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@
1515
}
1616

1717
$pythondev = $facts['os']['family'] ? {
18-
'AIX' => "${python}-devel",
19-
'Debian' => "${python}-dev",
20-
'FreeBSD' => undef,
21-
'Gentoo' => undef,
22-
'RedHat' => "${python}-devel",
23-
'Suse' => "${python}-devel",
18+
'AIX' => "${python}-devel",
19+
'Debian' => "${python}-dev",
20+
'FreeBSD' => undef,
21+
'Gentoo' => undef,
22+
'Archlinux' => undef,
23+
'RedHat' => "${python}-devel",
24+
'Suse' => "${python}-devel",
2425
}
2526

2627
if $python::manage_python_package {

manifests/params.pp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#
66
class python::params {
77
# Module compatibility check
8-
unless $facts['os']['family'] in ['AIX', 'Debian', 'FreeBSD', 'Gentoo', 'RedHat', 'Suse'] {
8+
unless $facts['os']['family'] in ['AIX', 'Debian', 'FreeBSD', 'Gentoo', 'RedHat', 'Suse', 'Archlinux'] {
99
fail("Module is not compatible with ${facts['os']['name']}")
1010
}
1111

@@ -16,8 +16,6 @@
1616
$gunicorn = 'absent'
1717
$manage_gunicorn = true
1818
$manage_python_package = true
19-
$manage_venv_package = true
20-
$manage_pip_package = true
2119
$provider = undef
2220
$valid_versions = undef
2321
$manage_scl = true
@@ -48,4 +46,13 @@
4846
},
4947
default => 'gunicorn',
5048
}
49+
50+
$manage_pip_package = $facts['os']['family'] ? {
51+
'Archlinux' => false,
52+
default => true,
53+
}
54+
$manage_venv_package = $facts['os']['family'] ? {
55+
'Archlinux' => false,
56+
default => true,
57+
}
5158
}

metadata.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@
5959
"operatingsystemrelease": [
6060
"11.3"
6161
]
62+
},
63+
{
64+
"operatingsystem": "Archlinux"
6265
}
6366
],
6467
"requirements": [

spec/classes/python_spec.rb

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,18 @@
1616
it { is_expected.to contain_class('python::params') }
1717
it { is_expected.to contain_class('python::config') }
1818
it { is_expected.to contain_package('python') }
19-
it { is_expected.to contain_package('pip') }
2019

21-
it { is_expected.to contain_package('python-venv') } unless facts[:os]['name'] == 'CentOS'
20+
if facts[:os]['family'] == 'Archlinux'
21+
it { is_expected.not_to contain_package('pip') }
22+
else
23+
it { is_expected.to contain_package('pip') }
24+
end
25+
26+
if %w[Archlinux CentOS].include?(facts[:os]['name'])
27+
it { is_expected.not_to contain_package('python-venv') }
28+
else
29+
it { is_expected.to contain_package('python-venv') }
30+
end
2231
end
2332

2433
context 'without managing things' do

spec/defines/requirements_spec.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,17 @@
5050
it { is_expected.to contain_class('python::params') }
5151
it { is_expected.to contain_class('python') }
5252
it { is_expected.to contain_exec('python_requirements/requirements.txt') }
53-
it { is_expected.to contain_package('pip') }
53+
54+
if facts[:os]['family'] == 'Archlinux'
55+
it { is_expected.not_to contain_package('pip') }
56+
else
57+
it { is_expected.to contain_package('pip') }
58+
end
5459
it { is_expected.to contain_package('python') }
5560
it { is_expected.to contain_package('gunicorn') }
5661
it { is_expected.to contain_file('/requirements.txt').with_owner('root').with_group('root') }
5762

58-
if %w[FreeBSD Gentoo].include?(facts[:os]['name'])
63+
if %w[Archlinux FreeBSD Gentoo].include?(facts[:os]['name'])
5964
it { is_expected.not_to contain_package('python-dev') }
6065
else
6166
it { is_expected.to contain_package('python-dev') }

0 commit comments

Comments
 (0)