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"
|
name="$__object_id"
|
||||||
|
|
||||||
# FIXME: on first run check-apt-repository may not be installed
|
. /etc/lsb-release
|
||||||
check-apt-repository "$name" && echo enabled || echo disabled
|
|
||||||
|
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/>.
|
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
name="$__object_id"
|
||||||
|
|
||||||
__package python-software-properties --state installed
|
__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" \
|
require="__package/python-software-properties" \
|
||||||
__file /usr/local/bin/remove-apt-repository \
|
__file /usr/local/bin/remove-apt-repository \
|
||||||
--source "$__type/files/remove-apt-repository" \
|
--source "$__type/files/remove-apt-repository" \
|
||||||
--mode 0755
|
--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