commit
9092bf7b53
11 changed files with 342 additions and 1 deletions
@ -0,0 +1,67 @@ |
|||||||
|
#compdef cpanm |
||||||
|
|
||||||
|
## |
||||||
|
# cpanminus Z Shell completion script |
||||||
|
## |
||||||
|
# |
||||||
|
# Current supported cpanm version: 1.4000 (Tue Mar 8 01:00:49 PST 2011) |
||||||
|
# |
||||||
|
# The latest code is always located at: |
||||||
|
# https://github.com/rshhh/cpanminus/blob/master/etc/_cpanm |
||||||
|
# |
||||||
|
|
||||||
|
local arguments curcontext="$curcontext" |
||||||
|
typeset -A opt_args |
||||||
|
|
||||||
|
|
||||||
|
arguments=( |
||||||
|
|
||||||
|
# Commands |
||||||
|
# '(--install -i)'{--install,-i}'[Installs the modules]' |
||||||
|
'(- :)--self-upgrade[Upgrades itself]' |
||||||
|
'(- :)--info[Displays distribution info on CPAN]' |
||||||
|
'(--installdeps)--installdeps[Only install dependencies]' |
||||||
|
'(--look)--look[Download/unpack the distribution and then open the directory with your shell]' |
||||||
|
'(- :)'{--help,-h}'[Displays help information]' |
||||||
|
'(- :)'{--version,-V}'[Displays software version]' |
||||||
|
|
||||||
|
# Options |
||||||
|
{--force,-f}'[Force install]' |
||||||
|
{--notest,-n}'[Do not run unit tests]' |
||||||
|
{--sudo,-S}'[sudo to run install commands]' |
||||||
|
'(-v --verbose --quiet -q)'{--verbose,-v}'[Turns on chatty output]' |
||||||
|
'(-q --quiet --verbose -v)'{--quiet,-q}'[Turns off all output]' |
||||||
|
{--local-lib,-l}'[Specify the install base to install modules]' |
||||||
|
{--local-lib-contained,-L}'[Specify the install base to install all non-core modules]' |
||||||
|
'--mirror[Specify the base URL for the mirror (e.g. http://cpan.cpantesters.org/)]:URLs:_urls' |
||||||
|
'--mirror-only[Use the mirror\''s index file instead of the CPAN Meta DB]' |
||||||
|
'--prompt[Prompt when configure/build/test fails]' |
||||||
|
'--reinstall[Reinstall the distribution even if you already have the latest version installed]' |
||||||
|
'--interactive[Turn on interactive configure]' |
||||||
|
|
||||||
|
'--scandeps[Scan the depencencies of given modules and output the tree in a text format]' |
||||||
|
'--format[Specify what format to display the scanned dependency tree]:scandeps format:(tree json yaml dists)' |
||||||
|
|
||||||
|
'--save-dists[Specify the optional directory path to copy downloaded tarballs]' |
||||||
|
# '--uninst-shadows[Uninstalls the shadow files of the distribution that you\''re installing]' |
||||||
|
|
||||||
|
'--auto-cleanup[Number of days that cpanm\''s work directories expire in. Defaults to 7]' |
||||||
|
'(--no-man-pages)--man-pages[Generates man pages for executables (man1) and libraries (man3)]' |
||||||
|
'(--man-pages)--no-man-pages[Do not generate man pages]' |
||||||
|
|
||||||
|
|
||||||
|
# Note: Normally with "--lwp", "--wget" and "--curl" options set to true (which is the default) cpanm tries LWP, |
||||||
|
# Wget, cURL and HTTP::Tiny (in that order) and uses the first one available. |
||||||
|
# (So that the exclusions are not enabled here for the completion) |
||||||
|
'(--lwp)--lwp[Use LWP module to download stuff]' |
||||||
|
'(--wget)--wget[Use GNU Wget (if available) to download stuff]' |
||||||
|
'(--curl)--curl[Use cURL (if available) to download stuff]' |
||||||
|
|
||||||
|
# Other completions |
||||||
|
'*:Local directory or archive:_files -/ -g "*.(tar.gz|tgz|tar.bz2|zip)(-.)"' |
||||||
|
# '*::args: _normal' # this looks for default files (any files) |
||||||
|
) |
||||||
|
_arguments -s $arguments \ |
||||||
|
&& return 0 |
||||||
|
|
||||||
|
return 1 |
||||||
@ -0,0 +1,4 @@ |
|||||||
|
# add cpanm completion function to path |
||||||
|
fpath=($ZSH/plugins/cpanm $fpath) |
||||||
|
autoload -U compinit |
||||||
|
compinit -i |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
# Aliases |
||||||
|
alias as="aptitude -F \"* %p -> %d \n(%v/%V)\" \ |
||||||
|
--no-gui --disable-columns search" # search package |
||||||
|
alias ad="sudo apt-get update" # update packages lists |
||||||
|
alias au="sudo apt-get update && \ |
||||||
|
sudo apt-get dselect-upgrade" # upgrade packages |
||||||
|
alias ai="sudo apt-get install" # install package |
||||||
|
alias ar="sudo apt-get remove --purge && \ |
||||||
|
sudo apt-get autoremove --purge" # remove package |
||||||
|
alias ap="apt-cache policy" # apt policy |
||||||
|
alias av="apt-cache show" # show package info |
||||||
|
alias ac="sudo apt-get clean && sudo apt-get autoclean" # clean apt cache |
||||||
@ -0,0 +1,60 @@ |
|||||||
|
# https://github.com/dbbolton/ |
||||||
|
# |
||||||
|
# Debian-related zsh aliases and functions for zsh |
||||||
|
|
||||||
|
|
||||||
|
# Aliases ################################################################### |
||||||
|
|
||||||
|
# Some self-explanatory aliases |
||||||
|
alias afs='apt-file search --regexp' |
||||||
|
alias aps='aptitude search' |
||||||
|
alias apsrc='apt-get source' |
||||||
|
alias apv='apt-cache policy' |
||||||
|
|
||||||
|
alias apdg='su -c "aptitude update && aptitude safe-upgrade"' |
||||||
|
alias apud='su -c "aptitude update"' |
||||||
|
alias apug='su -c "aptitude safe-upgrade"' |
||||||
|
|
||||||
|
# print all installed packages |
||||||
|
alias allpkgs='aptitude search -F "%p" --disable-columns ~i' |
||||||
|
|
||||||
|
# Install all .deb files in the current directory. |
||||||
|
# Warning: you will need to put the glob in single quotes if you use: |
||||||
|
# glob_subst |
||||||
|
alias di='su -c "dpkg -i ./*.deb"' |
||||||
|
|
||||||
|
# Create a basic .deb package |
||||||
|
alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc' |
||||||
|
|
||||||
|
# Remove ALL kernel images and headers EXCEPT the one in use |
||||||
|
alias kclean='su -c '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root' |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Functions ################################################################# |
||||||
|
|
||||||
|
# create a simple script that can be used to 'duplicate' a system |
||||||
|
apt-copy() { |
||||||
|
print '#!/bin/sh'"\n" > apt-copy.sh |
||||||
|
|
||||||
|
list=$(perl -m'AptPkg::Cache' -e '$c=AptPkg::Cache->new; for (keys %$c){ push @a, $_ if $c->{$_}->{'CurrentState'} eq 'Installed';} print "$_ " for sort @a;') |
||||||
|
|
||||||
|
print 'aptitude install '"$list\n" >> apt-copy.sh |
||||||
|
|
||||||
|
chmod +x apt-copy.sh |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
# Kernel-package building shortcut |
||||||
|
dbb-build () { |
||||||
|
MAKEFLAGS='' # temporarily unset MAKEFLAGS ( '-j3' will fail ) |
||||||
|
appendage='-custom' # this shows up in $ (uname -r ) |
||||||
|
revision=$(date +"%Y%m%d") # this shows up in the .deb file name |
||||||
|
|
||||||
|
make-kpkg clean |
||||||
|
|
||||||
|
time fakeroot make-kpkg --append-to-version "$appendage" --revision \ |
||||||
|
"$revision" kernel_image kernel_headers |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,26 @@ |
|||||||
|
# LOL!!1 |
||||||
|
# Source: http://aur.archlinux.org/packages/lolbash/lolbash/lolbash.sh |
||||||
|
|
||||||
|
alias wtf='dmesg' |
||||||
|
alias onoz='cat /var/log/errors.log' |
||||||
|
alias rtfm='man' |
||||||
|
|
||||||
|
alias visible='echo' |
||||||
|
alias invisible='cat' |
||||||
|
alias moar='more' |
||||||
|
|
||||||
|
alias icanhas='mkdir' |
||||||
|
alias donotwant='rm' |
||||||
|
alias dowant='cp' |
||||||
|
alias gtfo='mv' |
||||||
|
|
||||||
|
alias hai='cd' |
||||||
|
alias plz='pwd' |
||||||
|
|
||||||
|
alias inur='locate' |
||||||
|
|
||||||
|
alias nomz='ps -aux' |
||||||
|
alias nomnom='killall' |
||||||
|
|
||||||
|
alias cya='reboot' |
||||||
|
alias kthxbai='halt' |
||||||
@ -0,0 +1,89 @@ |
|||||||
|
#compdef port |
||||||
|
|
||||||
|
local subcmds |
||||||
|
|
||||||
|
# we cache the list of ports |
||||||
|
# we shall use some cache policy to avoid problems with new ports |
||||||
|
if (( ! $+portlist )); then |
||||||
|
portlist=($(port echo all; echo "all current active inactive installed uninstalled outdated")) |
||||||
|
fi |
||||||
|
|
||||||
|
subcmds=( |
||||||
|
'activate' |
||||||
|
'archive' |
||||||
|
'build' |
||||||
|
'cat' |
||||||
|
'clean' |
||||||
|
'configure' |
||||||
|
'contents' |
||||||
|
'deactivate' |
||||||
|
'dependents' |
||||||
|
'deps' |
||||||
|
'destroot' |
||||||
|
'dir' |
||||||
|
'distcheck' |
||||||
|
'distclean' |
||||||
|
'dmg' |
||||||
|
'echo' |
||||||
|
'edit' |
||||||
|
'extract' |
||||||
|
'fetch' |
||||||
|
'file' |
||||||
|
'help' |
||||||
|
'info' |
||||||
|
'install' |
||||||
|
'installed' |
||||||
|
'list' |
||||||
|
'livecheck' |
||||||
|
'location' |
||||||
|
'mpkg' |
||||||
|
'outdated' |
||||||
|
'patch' |
||||||
|
'pkg' |
||||||
|
'provides' |
||||||
|
'rpmpackage' |
||||||
|
'search' |
||||||
|
'selfupdate' |
||||||
|
'sync' |
||||||
|
'test' |
||||||
|
'unarchive' |
||||||
|
'uninstall' |
||||||
|
'upgrade' |
||||||
|
'variants' |
||||||
|
'version' |
||||||
|
) |
||||||
|
|
||||||
|
_arguments -C \ |
||||||
|
'-v[verbose mode (generate verbose messages)]' \ |
||||||
|
'-d[debug mode (generate debugging messages)]' \ |
||||||
|
'-q[quiet mode (suppress messages)]' \ |
||||||
|
'-D[specify portdir]' \ |
||||||
|
'-k[keep mode (do not autoclean after install)]' \ |
||||||
|
'-n[dont follow dependencies in upgrade (only for upgrading)]' \ |
||||||
|
'-a[upgrade all installed ports (only for upgrading)]' \ |
||||||
|
'-u[uninstall non-active ports when upgrading and uninstalling]' \ |
||||||
|
'-f[force mode (ignore state file)]' \ |
||||||
|
'-s[source-only mode]' \ |
||||||
|
'-b[binary-only mode]' \ |
||||||
|
'-o[honor state files older than Portfile]' \ |
||||||
|
'*::command:->command' \ |
||||||
|
&& return 0 |
||||||
|
|
||||||
|
case $state in |
||||||
|
command) |
||||||
|
if ((CURRENT == 1)); then |
||||||
|
state=subcommands |
||||||
|
else |
||||||
|
state=portname |
||||||
|
fi |
||||||
|
;; |
||||||
|
esac |
||||||
|
|
||||||
|
case $state in |
||||||
|
subcommands) |
||||||
|
_describe -t commands 'port commands' subcmds |
||||||
|
;; |
||||||
|
portname) |
||||||
|
_describe -t commands 'available ports' portlist |
||||||
|
;; |
||||||
|
esac |
||||||
@ -0,0 +1,62 @@ |
|||||||
|
# https://github.com/dbbolton |
||||||
|
# |
||||||
|
# Below are some useful Perl-related aliases/functions that I use with zsh. |
||||||
|
|
||||||
|
|
||||||
|
# Aliases ################################################################### |
||||||
|
|
||||||
|
# perlbrew ######## |
||||||
|
alias pbi='perlbrew install' |
||||||
|
alias pbl='perlbrew list' |
||||||
|
alias pbo='perlbrew off' |
||||||
|
alias pbs='perlbrew switch' |
||||||
|
alias pbu='perlbrew use' |
||||||
|
|
||||||
|
# Perl ############ |
||||||
|
|
||||||
|
# perldoc` |
||||||
|
alias pd='perldoc' |
||||||
|
|
||||||
|
# use perl like awk/sed |
||||||
|
alias ple='perl -wlne' |
||||||
|
|
||||||
|
# show the latest stable release of Perl |
||||||
|
alias latest-perl='curl -s http://www.perl.org/get.html | perl -wlne '\''if (/perl\-([\d\.]+)\.tar\.gz/) { print $1; exit;}'\' |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Functions ################################################################# |
||||||
|
|
||||||
|
# newpl - creates a basic Perl script file and opens it with $EDITOR |
||||||
|
newpl () { |
||||||
|
# set $EDITOR to 'vim' if it is undefined |
||||||
|
[[ -z $EDITOR ]] && EDITOR=vim |
||||||
|
|
||||||
|
# if the file exists, just open it |
||||||
|
[[ -e $1 ]] && print "$1 exists; not modifying.\n" && $EDITOR $1 |
||||||
|
|
||||||
|
# if it doesn't, make it, and open it |
||||||
|
[[ ! -e $1 ]] && print '#!/usr/bin/perl'"\n"'use strict;'"\n"'use warnings;'\ |
||||||
|
"\n\n" > $1 && $EDITOR $1 |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
# pgs - Perl Global Substitution |
||||||
|
# find pattern = 1st arg |
||||||
|
# replace pattern = 2nd arg |
||||||
|
# filename = 3rd arg |
||||||
|
pgs() { # [find] [replace] [filename] |
||||||
|
perl -i.orig -pe 's/'"$1"'/'"$2"'/g' "$3" |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
# Perl grep, because 'grep -P' is terrible. Lets you work with pipes or files. |
||||||
|
prep() { # [pattern] [filename unless STDOUT] |
||||||
|
perl -nle 'print if /'"$1"'/;' $2 |
||||||
|
} |
||||||
|
|
||||||
|
# say - append a newline to 'print' |
||||||
|
say() { |
||||||
|
print "$1\n" |
||||||
|
} |
||||||
|
|
||||||
@ -0,0 +1,15 @@ |
|||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[green]%}" |
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" |
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}⚡" |
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="" |
||||||
|
|
||||||
|
function prompt_char { |
||||||
|
if [ $UID -eq 0 ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi |
||||||
|
} |
||||||
|
|
||||||
|
PROMPT='%(?, ,%{$fg[red]%}FAIL: $?%{$reset_color%} |
||||||
|
) |
||||||
|
%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}%m%{$reset_color%}: %{$fg_bold[blue]%}%~%{$reset_color%}$(git_prompt_info) |
||||||
|
%_$(prompt_char) ' |
||||||
|
|
||||||
|
RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}' |
||||||
Loading…
Reference in new issue