diff options
author | Daniel Friesel <derf@finalrewind.org> | 2010-10-18 18:54:47 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2010-10-18 18:54:47 +0200 |
commit | cc14672d25ec814d2db41e9b3a9376d1e2e57cd9 (patch) | |
tree | 9b2bfd43e3bb83b3cf89280feadaa02a68c6f50f | |
parent | 80dff8aecba5360e126123c87c4bbf318045ddc6 (diff) |
make "ct new <package> <files>" also work for existing packages
-rwxr-xr-x | bin/ct | 16 | ||||
-rw-r--r-- | man/1/ct.pod | 11 | ||||
-rw-r--r-- | provides/zsh/completions/_ct | 5 |
3 files changed, 20 insertions, 12 deletions
@@ -867,19 +867,21 @@ function pkg_new { shift - if list_exists ${package}; then + if list_exists ${package} && [[ ${#} == 0 ]] ; then die "We already have a package with this name: ${package}\n" fi pkgroot_setup ${PKG_ROOTS[1]} - info "Creating local package...\n" - vcs_new ${package} + if ! list_exists ${package}; then + info "Creating local package...\n" + vcs_new ${package} - if [[ ${PKG_PROTO} == ssh ]] { - info "Creating remote package...\n" - ssh ${PKG_UAH} "GIT_DIR=${PKG_PATH}/${package} git --bare init" - } + if [[ ${PKG_PROTO} == ssh ]] { + info "Creating remote package...\n" + ssh ${PKG_UAH} "GIT_DIR=${PKG_PATH}/${package} git --bare init" + } + fi for file in ${*}; { diff --git a/man/1/ct.pod b/man/1/ct.pod index 5ae7743..7986528 100644 --- a/man/1/ct.pod +++ b/man/1/ct.pod @@ -55,11 +55,14 @@ show remote packages which are not installed Show commit history for package -=item B<new> I<package> +=item B<new> I<package> [ I<files> ] -Create new I<package> on the local and remote site. If you have more than one -package root, the first one is used. Note that this only works for SSH -package roots without forcecommand. +If I<package> does not exist locally: Create it on the local and remote site. +If you have more than one package root, the first one is used. Note that this +only works for SSH package roots without forcecommand. + +If I<files> are given, add them to the either newly created or already +installed package. Be aware that this feature is experimental. =item B<pull> [ I<package> ] diff --git a/provides/zsh/completions/_ct b/provides/zsh/completions/_ct index 8afb9af..caa212c 100644 --- a/provides/zsh/completions/_ct +++ b/provides/zsh/completions/_ct @@ -52,7 +52,8 @@ function _ct_args { compadd local remote ;; n|new) - _message 'New package name' + _message 'New or existing package name' + _ct_installed ;; *) _message 'no more arguments' @@ -78,6 +79,8 @@ function _ct_args { _ct_notinstalled } elif [[ ${words[1]} == (rm|remove) ]] { _ct_installed + } elif [[ ${words[1]} == (n|new) ]] { + _files -W ${HOME} } } |