Merge remote-tracking branch 'sans/master'
This commit is contained in:
commit
4b01791e69
6 changed files with 92 additions and 49 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
@ -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
|
||||
|
||||
|
|
35
conf/type/__apt_update_index/gencode-remote
Executable file
35
conf/type/__apt_update_index/gencode-remote
Executable 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
|
||||
|
44
conf/type/__apt_update_index/man.text
Normal file
44
conf/type/__apt_update_index/man.text
Normal 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).
|
0
conf/type/__apt_update_index/singleton
Normal file
0
conf/type/__apt_update_index/singleton
Normal file
Loading…
Reference in a new issue