diff options
-rwxr-xr-x | bin/ct | 16 | ||||
-rw-r--r-- | man/1/ct.pod | 6 | ||||
-rw-r--r-- | provides/zsh/completions/_ct | 7 |
3 files changed, 25 insertions, 4 deletions
@@ -266,7 +266,15 @@ function vcs_pull ( function vcs_push ( vcs_setup ${1} - git push + + # Repos created with "ct new" don't have a remote tracking branch yet. + # Detect this and fix it. + + if [[ $(git branch -r) == '' ]] { + git push origin master + } else { + git push + } ) function vcs_setup { @@ -853,8 +861,12 @@ function pkg_log { function pkg_new { + if [[ -z ${1} ]] { + die "Usage: ct new <packagename>\n" + } + if list_exists ${1}; then - die "We already have a package with this name: ${1}" + die "We already have a package with this name: ${1}\n" fi pkgroot_setup ${PKG_ROOTS[1]} diff --git a/man/1/ct.pod b/man/1/ct.pod index 3a6a597..92e5658 100644 --- a/man/1/ct.pod +++ b/man/1/ct.pod @@ -55,6 +55,12 @@ show remote packages which are not installed Show commit history for package +=item B<new> I<package> + +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. + =item B<pull> [ I<package> ] retrieve and install newest available version of I<package>. diff --git a/provides/zsh/completions/_ct b/provides/zsh/completions/_ct index 767ccd1..8afb9af 100644 --- a/provides/zsh/completions/_ct +++ b/provides/zsh/completions/_ct @@ -7,7 +7,7 @@ typeset expl function _ct_action () { _wanted action expl 'action' \ compadd add debug eval remove info list \ - log pull push refresh status update + log new pull push refresh status update } function _ct_installed () { @@ -32,7 +32,7 @@ function _ct_args { _ct_installed ;; i|info) - _ct_all + _ct_all ;; a|add) _ct_notinstalled @@ -51,6 +51,9 @@ function _ct_args { _wanted mode expl 'update target' \ compadd local remote ;; + n|new) + _message 'New package name' + ;; *) _message 'no more arguments' ;; |