Add bash completion.
authorVille Skyttä <ville.skytta@iki.fi>
Fri, 19 Feb 2010 19:37:35 +0000 (21:37 +0200)
committerVille Skyttä <ville.skytta@iki.fi>
Fri, 5 Mar 2010 20:22:46 +0000 (22:22 +0200)
Makefile
createrepo.bash [new file with mode: 0644]
createrepo.spec

index 918614fea7169834b11781165a03020585edb491..6b907d81a2b01026828fa5677659ff90c7e449fd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -33,7 +33,8 @@ pkgincludedir = $(includedir)/$(PKGNAME)
 top_builddir = 
 
 # all dirs
-DIRS = $(DESTDIR)$(bindir) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(pkgdatadir) $(DESTDIR)$(mandir)
+DIRS = $(DESTDIR)$(bindir) $(DESTDIR)$(sysconfdir)/bash_completion.d \
+       $(DESTDIR)$(pkgdatadir) $(DESTDIR)$(mandir)
 
 
 # INSTALL scripts 
@@ -63,6 +64,7 @@ check:
 
 install: all installdirs
        $(INSTALL_MODULES) $(srcdir)/$(MODULES) $(DESTDIR)$(pkgdatadir)
+       $(INSTALL_DATA) $(PKGNAME).bash $(DESTDIR)$(sysconfdir)/bash_completion.d
        for subdir in $(SUBDIRS) ; do \
          $(MAKE) -C $$subdir install VERSION=$(VERSION) PKGNAME=$(PKGNAME); \
        done
@@ -152,6 +154,7 @@ dailyfiles:
        $(srcdir)/COPYING.lib \
        $(srcdir)/README \
        $(srcdir)/$(PKGNAME).spec \
+       $(srcdir)/$(PKGNAME).bash \
        $(top_srcdir)/.disttmp/$$distdir
        for subdir in $(SUBDIRS) ; do \
          $(MAKE) -C $$subdir dailyfiles VERSION=$(VERSION) PKGNAME=$(PKGNAME); \
@@ -167,6 +170,7 @@ distfiles:
        $(srcdir)/COPYING.lib \
        $(srcdir)/README \
        $(srcdir)/$(PKGNAME).spec \
+       $(srcdir)/$(PKGNAME).bash \
        $(top_srcdir)/.disttmp/$$distdir
        for subdir in $(SUBDIRS) ; do \
          $(MAKE) -C $$subdir distfiles VERSION=$(VERSION) PKGNAME=$(PKGNAME); \
diff --git a/createrepo.bash b/createrepo.bash
new file mode 100644 (file)
index 0000000..2a95e93
--- /dev/null
@@ -0,0 +1,96 @@
+# bash completion for createrepo and friends
+
+_cr_createrepo()
+{
+    COMPREPLY=()
+
+    case $3 in
+        --version|-h|--help|-u|--baseurl|--distro|--content|--repo|\
+        --revision|-x|--excludes|--changelog-limit|--max-delta-rpm-size)
+            return 0
+            ;;
+        --basedir|-c|--cachedir|--update-md-path|-o|--outputdir|\
+        --oldpackagedirs)
+            COMPREPLY=( $( compgen -d -- "$2" ) )
+            return 0
+            ;;
+        -g|--groupfile)
+            COMPREPLY=( $( compgen -f -o plusdirs -X '!*.xml' -- "$2" ) )
+            return 0
+            ;;
+        -s|--sumtype)
+            COMPREPLY=( $( compgen -W 'md5 sha1 sha256 sha512' -- "$2" ) )
+            return 0
+            ;;
+        -i|--pkglist|--read-pkgs-list)
+            COMPREPLY=( $( compgen -f -o plusdirs -- "$2" ) )
+            return 0
+            ;;
+        -n|--includepkg)
+            COMPREPLY=( $( compgen -f -o plusdirs -X '!*.rpm' -- "$2" ) )
+            return 0
+            ;;
+        --num-deltas)
+            COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$2" ) )
+            return 0
+            ;;
+    esac
+
+    if [[ $2 == -* ]] ; then
+        COMPREPLY=( $( compgen -W '--version --help --quiet --verbose --profile
+            --excludes --basedir --baseurl --groupfile --checksum --pretty
+            --cachedir --checkts --database --update --update-md-path
+            --skip-stat --split --pkglist --includepkg --outputdir
+            --skip-symlinks --changelog-limit --unique-md-filenames
+            --simple-md-filenames --distro --content --repo --revision --deltas
+            --oldpackagedirs --num-deltas --read-pkgs-list
+            --max-delta-rpm-size' -- "$2" ) )
+    else
+        COMPREPLY=( $( compgen -d -- "$2" ) )
+    fi
+} &&
+complete -F _cr_createrepo -o filenames createrepo genpkgmetadata.py
+
+_cr_mergerepo()
+{
+    COMPREPLY=()
+
+    case $3 in
+        --version|-h|--help|-a|--archlist)
+            return 0
+            ;;
+        -r|--repo|-o|--outputdir)
+            COMPREPLY=( $( compgen -d -- "$2" ) )
+            return 0
+            ;;
+    esac
+
+    COMPREPLY=( $( compgen -W '--version --help --repo --archlist --database
+        --outputdir --nogroups --noupdateinfo' -- "$2" ) )
+} &&
+complete -F _cr_mergerepo -o filenames mergerepo mergerepo.py
+
+_cr_modifyrepo()
+{
+    COMPREPLY=()
+
+    case $COMP_CWORD in
+        1)
+            COMPREPLY=( $( compgen -f -o plusdirs -- "$2" ) )
+            return 0
+            ;;
+        2)
+            COMPREPLY=( $( compgen -d -- "$2" ) )
+            return 0
+            ;;
+    esac
+} &&
+complete -F _cr_modifyrepo -o filenames modifyrepo modifyrepo.py
+
+# Local variables:
+# mode: shell-script
+# sh-basic-offset: 4
+# sh-indent-comment: t
+# indent-tabs-mode: nil
+# End:
+# ex: ts=4 sw=4 et filetype=sh
index 57a0196a5651433314a65b250fa21c26c74f4f50..19db77b67be2549afd7d67b622f8a28b57688865 100644 (file)
@@ -22,7 +22,7 @@ rpm packages
 
 %install
 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT install
+make DESTDIR=$RPM_BUILD_ROOT sysconfdir=%{_sysconfdir} install
 
 %clean
 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
@@ -32,6 +32,7 @@ make DESTDIR=$RPM_BUILD_ROOT install
 %defattr(-, root, root)
 %dir %{_datadir}/%{name}
 %doc ChangeLog README COPYING COPYING.lib
+%{_sysconfdir}/bash_completion.d/
 %{_datadir}/%{name}/*
 %{_bindir}/%{name}
 %{_bindir}/modifyrepo