Compare commits

...

11 Commits

Author SHA1 Message Date
Nikolas Garofil 6bfa6182b9
Merge 01808b3aae into 6e9cda3d30 2025-01-20 10:04:48 +01:00
dependabot[bot] 6e9cda3d30
chore(deps): bump semver in /.github/workflows/dependencies (#12924)
Bumps [semver](https://github.com/python-semver/python-semver) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/python-semver/python-semver/releases)
- [Changelog](https://github.com/python-semver/python-semver/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/python-semver/python-semver/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-19 23:30:40 +01:00
ohmyzsh[bot] d689aa289e
feat(gitfast): update to version v2.2 (#12923)
Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com>
2025-01-19 11:20:14 +01:00
Felipe Contreras 8c5b71b2f4
ci(deps): update `gitfast` to its new structure (#12922)
Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
2025-01-19 11:18:37 +01:00
Nikolas Garofil 01808b3aae Fix(adduser): Better code structure 2021-12-23 21:52:55 +01:00
Nikolas Garofil 8b5f01a22c Fix(adduser): better changing of shell 2021-12-22 20:02:11 +01:00
Nikolas Garofil f26b428f8e Fix(adduser): better returning to shell of original user 2021-12-22 19:18:04 +01:00
Nikolas Garofil 70edfaf348 Fix(adduser): better binary check 2021-12-22 19:16:50 +01:00
Nikolas Garofil 8ceff21474 Fix(adduser): correct echo redirect 2021-12-22 19:15:49 +01:00
Nikolas Garofil 510d7a778a Fix(adduser): better way to avoid adduser() recursion 2021-12-22 19:15:09 +01:00
Nikolas Garofil ecc5aab0e7 feat(adduser): add adduser plugin (#10441)
Automatic "Oh My ZSH" installation when adding new users
2021-12-21 19:40:46 +01:00
7 changed files with 147 additions and 19 deletions

View File

@ -2,11 +2,13 @@ dependencies:
plugins/gitfast:
repo: felipec/git-completion
branch: master
version: tag:v2.1
version: tag:v2.2
postcopy: |
set -e
rm -rf git-completion.plugin.zsh Makefile README.adoc t tools
test -e git-completion.zsh && mv -f git-completion.zsh _git
rm -rf git-completion.plugin.zsh Makefile t tools
mv README.adoc MANUAL.adoc
mv -f src/* .
rmdir src
plugins/gradle:
repo: gradle/gradle-completion
branch: master

View File

@ -3,5 +3,5 @@ charset-normalizer==3.4.1
idna==3.10
PyYAML==6.0.2
requests==2.32.3
semver==3.0.2
semver==3.0.3
urllib3==2.3.0

26
plugins/adduser/README.md Normal file
View File

@ -0,0 +1,26 @@
# adduser
This plugin adds support for installing "Oh My ZSH" when adding new users.
To use it, add `adduser` to the plugins array of your `~/.zshrc` file:
```zsh
plugins=(... adduser)
```
## Usage
Just run `adduser` as you normally would do and now:
1. The regular `adduser` command will run.
2. The shell of the new user will switch to zsh
3. "Oh My zsh will be installed (as if he would have ran `install.sh` himself).
## NOTES
- It is assumed that the last argument will be the username.<br>*(In rare cases people provide the group as last argument)*
- `useradd` behaviour is not changed.
## Author
[Nikolas Garofil](https://github.com/ngaro)

View File

@ -0,0 +1,70 @@
# Copyright (c) 2021 Nikolas Garofil
_adduser_result() {
local result_string="Installation of 'Oh My Zsh' for '$new_user'"
#Erase the temporary copy of the installscript when necessary
if [[ ! -z $temp_installscript ]] ; then
rm $temp_installscript
fi
#mention the result
if [[ $1 -eq 0 ]]; then
echo "$result_string succeeded."
else
echo "$result_string failed." > /dev/stderr
fi
}
adduser() {
local path_installscript="$ZSH/tools/install.sh"
local unattended_options=" --unattended"
local new_user=${@[$#]}
local temp_installscript; local unattended_installer; local install_as_user; local change_shell;
#Create user, errors will be reported by the 'real' adduser
#Don't use $new_user so that we have all args
command adduser $@ || return 1
echo "\nUser '$new_user' has been created. I will now try to install 'Oh My Zsh'"
if [[ ! -f $path_installscript ]] ; then
echo "Installationscript '$path_installscript' not available" > /dev/stderr;
_adduser_result 1
return 1;
fi
#copy install.sh to a new file in temp that we can give the right owner to execute
#and also make sure that after the install script we are no longer the new user
temp_installscript=$(mktemp)
cp $path_installscript $temp_installscript
chown $new_user $temp_installscript && chmod +x $temp_installscript
unattended_installer="$temp_installscript $unattended_options"
if [[ ( ! -x "$commands[sudo]" ) && ( ! -x "$commands[su]" ) ]] ; then
echo "You can't become $new_user (no 'sudo' or 'su' available)" > /dev/stderr;
_adduser_result 1
return 1;
fi
if [[ -x "$commands[sudo]" ]] ; then
install_as_user="sudo -u $new_user sh -c '$unattended_installer'"
change_shell="sudo chsh -s $commands[zsh] $new_user"
else
install_as_user="su -l $new_user -c '$unattended_installer'"
change_shell="su -c 'chsh -s $commands[zsh] $new_user'"
fi
eval ${install_as_user}
#mention the result before changing the shell (even with a bad result it's still installed)
if [ ! $? -eq 0 ] ; then
_adduser_result 1
return 1
fi
if [[ ! -x "$commands[chsh]" ]] ; then
echo "'chsh' is not available, change the shell manually." > /dev/stderr
fi
eval ${change_shell}
}

View File

@ -0,0 +1,40 @@
This project is a friendly fork of the official Git completion
(`contrib/completion`) and prompt scripts for Bash, Zsh, and possibly other
shells.
Most Git developers use the Bash shell, for which the completion scripts work
rather well, however, Zsh is typically neglected. I've sent many patches to fix
the issues, many have been merged, but many have been ignored, thus the need for
a canonical location of a good, working Zsh completion.
There are advantages for Bash users too. Currently the scripts under `contrib` are tied to the
specific Git version, for example the completion scripts of version v2.40
(https://git.kernel.org/pub/scm/git/git.git/plain/contrib/completion/git-completion.bash?h=v2.40.0[git-completion.bash])
have issues with older versions of Git (e.g. v2.33); the ones in
this project don't.
With `git-completion` you can be sure you are using the latest completion that
works in both shells, and any Git version.
This is a sister project of the
https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/gitfast[Oh My Zsh
gitfast] plugin (that I also maintain), which has similar needs.
== Installation ==
* https://github.com/felipec/git-completion/wiki/Bash[Bash instructions]
* https://github.com/felipec/git-completion/wiki/Zsh[Zsh instructions]
== Improvements from upstream ==
This is a short list of the benefits you get:
* Easier installation
* Tons of bug fixes
* Works with older versions of git
* Zsh: much more options
* Zsh: quoting works properly
* Zsh: automatic suffix removal
For a full list of all the patches on top of upstream git check
https://github.com/felipec/git-completion/wiki/Patches[Patches].

View File

@ -2,23 +2,11 @@
# zsh completion wrapper for git
#
# Copyright (c) 2012-2020 Felipe Contreras <felipe.contreras@gmail.com>
# Copyright (c) 2012-2024 Felipe Contreras <felipe.contreras@gmail.com>
#
# The recommended way to install this script is to make a copy of it as a
# file named '_git' inside any directory in your fpath.
# The recommended way to use this script is to prepend its location to your $fpath:
#
# For example, create a directory '~/.zsh/', copy this file to '~/.zsh/_git',
# and then add the following to your ~/.zshrc file:
#
# fpath=(~/.zsh $fpath)
#
# You need git's bash completion script installed. By default bash-completion's
# location will be used (e.g. pkg-config --variable=completionsdir bash-completion).
#
# If your bash completion script is somewhere else, you can specify the
# location in your ~/.zshrc:
#
# zstyle ':completion:*:*:git:*' script ~/.git-completion.bash
# fpath=($git_completion_srcdir $fpath)
#
zstyle -T ':completion:*:*:git:*' tag-order && \

View File

@ -1,6 +1,8 @@
# bash/zsh completion support for core Git.
#
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
# Copyright (c) 2012-2024 Felipe Contreras <felipe.contreras@gmail.com>
#
# Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/).
# Distributed under the GNU General Public License, version 2.0.
#