Merge remote-tracking branch 'sans/master'

This commit is contained in:
Nico Schottelius 2011-03-24 14:35:58 +01:00
commit 4b01791e69
6 changed files with 92 additions and 49 deletions

View file

@ -23,6 +23,11 @@
name="$__object_id"
# FIXME: on first run check-apt-repository may not be installed
check-apt-repository "$name" && echo enabled || echo disabled
. /etc/lsb-release
repo_name="${name#ppa:}"
repo_file_name="$(echo "$repo_name" | sed "s:\/:\-:")-${DISTRIB_CODENAME}.list"
[ -s "/etc/apt/sources.list.d/${repo_file_name}" ] \
&& echo enabled || echo disabled

View file

@ -1,42 +0,0 @@
#!/usr/bin/env python
#
# Check if the given apt repository is installed or not.
# Exit with:
# 0: if it is installed
# 1: if not
# 2: on error
#
import sys
from aptsources import distro, sourceslist
from softwareproperties import ppa
def is_repository_installed(repository):
#print 'repository:', repository
codename = distro.get_distro().codename
#print 'codename:', codename
(line, file) = ppa.expand_ppa_line(repository.strip(), codename)
#print 'line:', line
#print 'file:', file
sources_list = sourceslist.SourcesList()
source_entry = sourceslist.SourceEntry(line, file)
if source_entry in sources_list:
#print 'yes'
return True
else:
#print 'no'
return False
if __name__ == '__main__':
if (len(sys.argv) != 2):
print 'Error: need a repository as argument'
sys.exit(2)
#repository = 'ppa:freenx-team'
repository = sys.argv[1]
if is_repository_installed(repository):
sys.exit(0)
else:
sys.exit(1)

View file

@ -18,16 +18,17 @@
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
name="$__object_id"
__package python-software-properties --state installed
require="__package/python-software-properties" \
__file /usr/local/bin/check-apt-repository \
--source "$__type/files/check-apt-repository" \
--mode 0755
require="__package/python-software-properties" \
__file /usr/local/bin/remove-apt-repository \
--source "$__type/files/remove-apt-repository" \
--mode 0755
# FIXME: rewrite to use $__self once that exists
# FIXME: only run if something changed. currently working arround this in
# __apt_update_index/gencode-remote
require="__apt_ppa/$__object_id" __apt_update_index

View file

@ -0,0 +1,35 @@
#!/bin/sh
#
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
# BIG FAT FIXME: there must be a better way to do this!
tmpdir=$(mktemp -d)
cleanup() {
rm -rf "$tmpdir"
}
trap cleanup EXIT
should="$tmpdir/should"
is="$tmpdir/is"
find "$__global/object/__apt_ppa" -path "*.cdist/parameter/state" | xargs cat > "$should"
find "$__global/object/__apt_ppa" -path "*.cdist/explorer/state" | xargs cat > "$is"
diff -ru "$is" "$should" || echo apt-get update

View file

@ -0,0 +1,44 @@
cdist-type__apt_update_index(7)
==========================
Steven Armstrong <steven-cdist--@--armstrong.cc>
NAME
----
cdist-type__apt_update_index - resynchronize the apt package index
DESCRIPTION
-----------
This cdist type allows you to resynchronize the package index files from their
sources. In other words, it runs `apt-get update`.
FIXME: currently hard coded to work together with the __apt_ppa type
REQUIRED PARAMETERS
-------------------
None.
OPTIONAL PARAMETERS
-------------------
None.
EXAMPLES
--------
--------------------------------------------------------------------------------
__apt_update_index
--------------------------------------------------------------------------------
SEE ALSO
--------
- cdist-type(7)
COPYING
-------
Copyright \(C) 2011 Steven Armstrong. Free use of this software is
granted under the terms of the GNU General Public License version 3 (GPLv3).

View file