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