data/razor.sh
author J. Ali Harlow <ali@juiblex.co.uk>
Thu Feb 09 20:45:27 2012 +0000 (2012-02-09)
changeset 418 33b825d3128d
parent 290 f2461ae87dde
permissions -rw-r--r--
Add transaction barriers
These allow packages to be installed and removed which have scripts
that depend on each other when atomic transactions are involved.
Note that yum supports pre, but not other requires flags. post will
need similar support to the post scripts themselves pulling in the
requires flags from the rpms. Likewise preun and postun will need
similar handling to those scrips since the requires flags will need
to be stored in the razor database.
richard@261
     1
__razor_commands () {
richard@261
     2
    local IFS=$'\n'
jbowes@290
     3
    COMPREPLY=($(IFS=: compgen -S' ' -W "info:list-requires:list-provides:list-files:list-file-packages:list-package-files:what-requires:what-provides:import-yum:import-rpmdb:import-rpms:validate:update:diff:install:init:download" -- $1))
richard@261
     4
}
richard@261
     5
richard@261
     6
__razor_packages () {
richard@261
     7
    local IFS=$'\n'
richard@261
     8
richard@261
     9
    COMPREPLY=($(razor list --only-names "$1*" | while read p; do echo "$p "; done))
richard@261
    10
}
richard@261
    11
richard@261
    12
__razor_upstream_packages () {
richard@261
    13
    local IFS=$'\n'
richard@261
    14
richard@310
    15
    COMPREPLY=($(RAZOR_REPO=rawhide.rzdb razor list --only-names "$1*" | while read p; do echo "$p "; done))
richard@261
    16
}
richard@261
    17
richard@261
    18
__razor_files() {
richard@261
    19
    COMPREPLY=($(razor list-files "$1*"))
richard@261
    20
}
richard@261
    21
richard@261
    22
__razor_requires() {
richard@261
    23
    COMPREPLY=($(compgen -W "$(razor list-requires)" -- $1))
richard@261
    24
}
richard@261
    25
richard@261
    26
__razor_provides() {
richard@261
    27
    COMPREPLY=($(compgen -W "$(razor list-provides)" -- $1))
richard@261
    28
}
richard@261
    29
richard@261
    30
__razor() {
richard@261
    31
    local cur="${COMP_WORDS[COMP_CWORD]}"
richard@261
    32
richard@261
    33
    if [ $COMP_CWORD = 1 ]; then
richard@261
    34
	__razor_commands $cur
richard@261
    35
    else
richard@261
    36
	case "${COMP_WORDS[1]}" in
richard@261
    37
	    info|list-requires|list-provides|list-package-files)
richard@261
    38
		__razor_packages $cur ;;
richard@261
    39
	    list-files|list-file-packages) __razor_files $cur ;;
richard@261
    40
	    what-requires) __razor_requires $cur ;;
richard@261
    41
	    what-provides) __razor_provides $cur ;;
richard@261
    42
	    install|download) __razor_upstream_packages $cur ;;
richard@261
    43
	esac
richard@261
    44
    fi
richard@261
    45
}
richard@261
    46
richard@261
    47
complete -o nospace -F __razor razor