ed507c8c061f21aaa5dfc77f0330967089c9e889
[nepi.git] / src / nepi / resources / linux / debfuncs.py
1 #
2 #    NEPI, a framework to manage network experiments
3 #    Copyright (C) 2013 INRIA
4 #
5 #    This program is free software: you can redistribute it and/or modify
6 #    it under the terms of the GNU General Public License version 2 as
7 #    published by the Free Software Foundation;
8 #
9 #    This program is distributed in the hope that it will be useful,
10 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
11 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 #    GNU General Public License for more details.
13 #
14 #    You should have received a copy of the GNU General Public License
15 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 #
17 # Author: Alina Quereilhac <alina.quereilhac@inria.fr>
18
19 # TODO: Investigate using http://nixos.org/nix/
20
21 def install_packages_command(os, packages):
22     if not isinstance(packages, list):
23         packages = [packages]
24
25     cmd = " && ".join(map(lambda p: 
26             " { dpkg -s %(package)s || sudo -S apt-get -y install %(package)s ; } " % {
27                     'package': p}, packages))
28         
29     #cmd = { dpkg -s vim || sudo -S apt-get -y install vim ; } && ..
30     return cmd 
31
32 def remove_packages_command(os, packages):
33     if not isinstance(packages, list):
34         packages = [packages]
35
36     cmd = " && ".join(map(lambda p: 
37             " { dpkg -s %(package)s && sudo -S apt-get -y purge %(package)s ; } " % {
38                     'package': p}, packages))
39         
40     #cmd = { dpkg -s vim && sudo -S apt-get -y purge vim ; } && ..
41     return cmd 
42