Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.20
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
zsh /
functions /
Completion /
Unix /
[ HOME SHELL ]
Name
Size
Permission
Action
_a2ps
2.73
KB
-rw-r--r--
_aap
2.58
KB
-rw-r--r--
_abcde
2.39
KB
-rw-r--r--
_absolute_command_paths
1022
B
-rw-r--r--
_ack
8.09
KB
-rw-r--r--
_adb
15.1
KB
-rw-r--r--
_ansible
13.42
KB
-rw-r--r--
_ant
6.03
KB
-rw-r--r--
_antiword
1.08
KB
-rw-r--r--
_apachectl
116
B
-rw-r--r--
_apm
1.64
KB
-rw-r--r--
_arch_archives
413
B
-rw-r--r--
_arch_namespace
3.23
KB
-rw-r--r--
_arp
3.07
KB
-rw-r--r--
_arping
2.17
KB
-rw-r--r--
_asciidoctor
2.33
KB
-rw-r--r--
_asciinema
1.93
KB
-rw-r--r--
_at
1.01
KB
-rw-r--r--
_attr
3.15
KB
-rw-r--r--
_augeas
2.51
KB
-rw-r--r--
_avahi
2.27
KB
-rw-r--r--
_awk
4.57
KB
-rw-r--r--
_base64
2.04
KB
-rw-r--r--
_basename
767
B
-rw-r--r--
_bash
3.52
KB
-rw-r--r--
_baudrates
2.37
KB
-rw-r--r--
_baz
15.64
KB
-rw-r--r--
_beep
1.59
KB
-rw-r--r--
_bibtex
160
B
-rw-r--r--
_bind_addresses
1.4
KB
-rw-r--r--
_bison
923
B
-rw-r--r--
_bittorrent
4.76
KB
-rw-r--r--
_bogofilter
5.13
KB
-rw-r--r--
_bpf_filters
7.67
KB
-rw-r--r--
_bpython
1.25
KB
-rw-r--r--
_bzip2
2.17
KB
-rw-r--r--
_bzr
11.17
KB
-rw-r--r--
_cabal
292
B
-rw-r--r--
_cal
547
B
-rw-r--r--
_calendar
1.37
KB
-rw-r--r--
_canonical_paths
3.61
KB
-rw-r--r--
_cat
2.04
KB
-rw-r--r--
_ccal
778
B
-rw-r--r--
_cdcd
2.09
KB
-rw-r--r--
_cdrdao
7.95
KB
-rw-r--r--
_cdrecord
4.75
KB
-rw-r--r--
_chkconfig
777
B
-rw-r--r--
_chmod
2.87
KB
-rw-r--r--
_chown
3.5
KB
-rw-r--r--
_chroot
1.41
KB
-rw-r--r--
_chsh
1.97
KB
-rw-r--r--
_cksum
3.88
KB
-rw-r--r--
_clay
1.73
KB
-rw-r--r--
_cmdambivalent
391
B
-rw-r--r--
_cmdstring
102
B
-rw-r--r--
_cmp
1.1
KB
-rw-r--r--
_column
3.79
KB
-rw-r--r--
_comm
995
B
-rw-r--r--
_composer
31.47
KB
-rw-r--r--
_compress
1.38
KB
-rw-r--r--
_configure
444
B
-rw-r--r--
_cowsay
904
B
-rw-r--r--
_cp
4.09
KB
-rw-r--r--
_cpio
4.48
KB
-rw-r--r--
_cplay
343
B
-rw-r--r--
_crontab
2.03
KB
-rw-r--r--
_cscope
1.56
KB
-rw-r--r--
_cssh
795
B
-rw-r--r--
_ctags_tags
170
B
-rw-r--r--
_curl
224
B
-rw-r--r--
_cut
2.31
KB
-rw-r--r--
_cvs
28.32
KB
-rw-r--r--
_darcs
1.18
KB
-rw-r--r--
_date
3.07
KB
-rw-r--r--
_date_formats
2.95
KB
-rw-r--r--
_dates
3.97
KB
-rw-r--r--
_dbus
4.69
KB
-rw-r--r--
_dconf
1.75
KB
-rw-r--r--
_dd
2.74
KB
-rw-r--r--
_devtodo
4.56
KB
-rw-r--r--
_df
3.51
KB
-rw-r--r--
_dhclient
3.44
KB
-rw-r--r--
_dict
2.09
KB
-rw-r--r--
_dict_words
1.26
KB
-rw-r--r--
_diff
90
B
-rw-r--r--
_diff3
1.99
KB
-rw-r--r--
_diff_options
9.04
KB
-rw-r--r--
_diffstat
1.71
KB
-rw-r--r--
_dig
4.59
KB
-rw-r--r--
_dir_list
680
B
-rw-r--r--
_directories
108
B
-rw-r--r--
_django
5.91
KB
-rw-r--r--
_dmesg
638
B
-rw-r--r--
_dmidecode
1.53
KB
-rw-r--r--
_dns_types
331
B
-rw-r--r--
_doas
656
B
-rw-r--r--
_domains
585
B
-rw-r--r--
_dos2unix
4.76
KB
-rw-r--r--
_drill
1.91
KB
-rw-r--r--
_dsh
1.68
KB
-rw-r--r--
_dtruss
684
B
-rw-r--r--
_du
4.48
KB
-rw-r--r--
_dvi
3.95
KB
-rw-r--r--
_ecasound
8.33
KB
-rw-r--r--
_ed
952
B
-rw-r--r--
_elfdump
1.29
KB
-rw-r--r--
_elinks
2.89
KB
-rw-r--r--
_email_addresses
5.5
KB
-rw-r--r--
_enscript
7.45
KB
-rw-r--r--
_entr
729
B
-rw-r--r--
_env
1.77
KB
-rw-r--r--
_espeak
2.12
KB
-rw-r--r--
_etags
2.08
KB
-rw-r--r--
_fakeroot
486
B
-rw-r--r--
_feh
6.85
KB
-rw-r--r--
_fetchmail
554
B
-rw-r--r--
_ffmpeg
7.83
KB
-rw-r--r--
_figlet
1.47
KB
-rw-r--r--
_file_modes
862
B
-rw-r--r--
_file_systems
1.18
KB
-rw-r--r--
_files
3.97
KB
-rw-r--r--
_find
5.48
KB
-rw-r--r--
_find_net_interfaces
1.3
KB
-rw-r--r--
_finger
2.11
KB
-rw-r--r--
_flac
5.78
KB
-rw-r--r--
_flex
3.08
KB
-rw-r--r--
_fmt
1.93
KB
-rw-r--r--
_fold
713
B
-rw-r--r--
_fortune
601
B
-rw-r--r--
_fsh
546
B
-rw-r--r--
_fuser
2.44
KB
-rw-r--r--
_gcc
77.94
KB
-rw-r--r--
_gcore
1.68
KB
-rw-r--r--
_gdb
1.51
KB
-rw-r--r--
_gem
13.6
KB
-rw-r--r--
_genisoimage
1.96
KB
-rw-r--r--
_getconf
3.71
KB
-rw-r--r--
_getent
2.05
KB
-rw-r--r--
_getfacl
1.55
KB
-rw-r--r--
_getmail
1.05
KB
-rw-r--r--
_getopt
1.15
KB
-rw-r--r--
_ghostscript
4.17
KB
-rw-r--r--
_git
361.69
KB
-rw-r--r--
_global
3.11
KB
-rw-r--r--
_global_tags
186
B
-rw-r--r--
_gnu_generic
178
B
-rw-r--r--
_gnupod
5.57
KB
-rw-r--r--
_gnutls
12.32
KB
-rw-r--r--
_go
256
B
-rw-r--r--
_gpg
13.47
KB
-rw-r--r--
_gphoto2
5.02
KB
-rw-r--r--
_gprof
1.31
KB
-rw-r--r--
_gradle
6.82
KB
-rw-r--r--
_graphicsmagick
28.23
KB
-rw-r--r--
_grep
6.13
KB
-rw-r--r--
_groff
2.2
KB
-rw-r--r--
_groups
1007
B
-rw-r--r--
_growisofs
19.16
KB
-rw-r--r--
_gsettings
1.32
KB
-rw-r--r--
_guilt
1.52
KB
-rw-r--r--
_gzip
4.17
KB
-rw-r--r--
_have_glob_qual
910
B
-rw-r--r--
_head
1.65
KB
-rw-r--r--
_hexdump
1.3
KB
-rw-r--r--
_host
1.05
KB
-rw-r--r--
_hostname
2.47
KB
-rw-r--r--
_hosts
2.92
KB
-rw-r--r--
_iconv
2.8
KB
-rw-r--r--
_id
1.84
KB
-rw-r--r--
_ifconfig
3.08
KB
-rw-r--r--
_iftop
918
B
-rw-r--r--
_imagemagick
27.49
KB
-rw-r--r--
_init_d
3.48
KB
-rw-r--r--
_initctl
6.18
KB
-rw-r--r--
_install
4.49
KB
-rw-r--r--
_iostat
6.41
KB
-rw-r--r--
_ip
20.47
KB
-rw-r--r--
_ipsec
6.54
KB
-rw-r--r--
_irssi
1.32
KB
-rw-r--r--
_ispell
4.11
KB
-rw-r--r--
_java
24.6
KB
-rw-r--r--
_java_class
693
B
-rw-r--r--
_joe
2.19
KB
-rw-r--r--
_join
1.16
KB
-rw-r--r--
_jq
2.22
KB
-rw-r--r--
_killall
3.28
KB
-rw-r--r--
_knock
304
B
-rw-r--r--
_kvno
669
B
-rw-r--r--
_last
2.69
KB
-rw-r--r--
_ld_debug
1.18
KB
-rw-r--r--
_ldconfig
2.47
KB
-rw-r--r--
_ldd
1.62
KB
-rw-r--r--
_less
6.23
KB
-rw-r--r--
_lha
1.71
KB
-rw-r--r--
_libvirt
9.53
KB
-rw-r--r--
_links
8.66
KB
-rw-r--r--
_list_files
1.4
KB
-rw-r--r--
_lldb
2.62
KB
-rw-r--r--
_ln
3.52
KB
-rw-r--r--
_loadkeys
595
B
-rw-r--r--
_locale
2.81
KB
-rw-r--r--
_localedef
3.03
KB
-rw-r--r--
_locales
349
B
-rw-r--r--
_locate
4.15
KB
-rw-r--r--
_look
998
B
-rw-r--r--
_lp
8.47
KB
-rw-r--r--
_ls
8.99
KB
-rw-r--r--
_lsof
5.01
KB
-rw-r--r--
_lua
1.78
KB
-rw-r--r--
_luarocks
22.74
KB
-rw-r--r--
_lynx
11.73
KB
-rw-r--r--
_lz4
4.47
KB
-rw-r--r--
_lzop
3.84
KB
-rw-r--r--
_mail
467
B
-rw-r--r--
_mailboxes
5.88
KB
-rw-r--r--
_make
8.95
KB
-rw-r--r--
_man
17.23
KB
-rw-r--r--
_md5sum
1.75
KB
-rw-r--r--
_mencal
1.06
KB
-rw-r--r--
_mh
3.68
KB
-rw-r--r--
_mime_types
1.15
KB
-rw-r--r--
_mkdir
1.15
KB
-rw-r--r--
_mkfifo
618
B
-rw-r--r--
_mknod
1.34
KB
-rw-r--r--
_mktemp
1.55
KB
-rw-r--r--
_module
5.35
KB
-rw-r--r--
_monotone
2.32
KB
-rw-r--r--
_moosic
11.75
KB
-rw-r--r--
_mosh
1.72
KB
-rw-r--r--
_mount
38.36
KB
-rw-r--r--
_mpc
9.92
KB
-rw-r--r--
_mt
3.14
KB
-rw-r--r--
_mtools
3.99
KB
-rw-r--r--
_mtr
3.24
KB
-rw-r--r--
_mutt
1.35
KB
-rw-r--r--
_mv
2.1
KB
-rw-r--r--
_my_accounts
45
B
-rw-r--r--
_myrepos
4.22
KB
-rw-r--r--
_mysql_utils
9.75
KB
-rw-r--r--
_mysqldiff
1.03
KB
-rw-r--r--
_ncftp
429
B
-rw-r--r--
_net_interfaces
204
B
-rw-r--r--
_netcat
1.29
KB
-rw-r--r--
_netstat
12.27
KB
-rw-r--r--
_newsgroups
210
B
-rw-r--r--
_nginx
810
B
-rw-r--r--
_ngrep
1.7
KB
-rw-r--r--
_nice
246
B
-rw-r--r--
_nkf
2.1
KB
-rw-r--r--
_nl
1.83
KB
-rw-r--r--
_nm
5.81
KB
-rw-r--r--
_nmap
3.39
KB
-rw-r--r--
_npm
380
B
-rw-r--r--
_nslookup
5.54
KB
-rw-r--r--
_numfmt
1.54
KB
-rw-r--r--
_objdump
11.24
KB
-rw-r--r--
_object_files
235
B
-rw-r--r--
_od
2.9
KB
-rw-r--r--
_openstack
8.98
KB
-rw-r--r--
_other_accounts
64
B
-rw-r--r--
_pack
361
B
-rw-r--r--
_pandoc
20.65
KB
-rw-r--r--
_paste
575
B
-rw-r--r--
_patch
8.47
KB
-rw-r--r--
_patchutils
4.74
KB
-rw-r--r--
_path_commands
2.98
KB
-rw-r--r--
_path_files
27.43
KB
-rw-r--r--
_pax
2.72
KB
-rw-r--r--
_pbm
25.26
KB
-rw-r--r--
_pdf
416
B
-rw-r--r--
_perforce
100.47
KB
-rw-r--r--
_perl
5.26
KB
-rw-r--r--
_perl_basepods
716
B
-rw-r--r--
_perl_modules
4.57
KB
-rw-r--r--
_perldoc
2.28
KB
-rw-r--r--
_pgrep
6.48
KB
-rw-r--r--
_php
6.72
KB
-rw-r--r--
_picocom
2.11
KB
-rw-r--r--
_pids
1.79
KB
-rw-r--r--
_pine
2.88
KB
-rw-r--r--
_ping
7.65
KB
-rw-r--r--
_pkg-config
3.03
KB
-rw-r--r--
_pkg_instance
353
B
-rw-r--r--
_pkgadd
1012
B
-rw-r--r--
_pkginfo
613
B
-rw-r--r--
_pkgrm
551
B
-rw-r--r--
_pon
443
B
-rw-r--r--
_ports
285
B
-rw-r--r--
_postfix
6.66
KB
-rw-r--r--
_postgresql
46.74
KB
-rw-r--r--
_postscript
333
B
-rw-r--r--
_printenv
114
B
-rw-r--r--
_printers
3.13
KB
-rw-r--r--
_process_names
1.22
KB
-rw-r--r--
_prove
2.44
KB
-rw-r--r--
_ps
8.39
KB
-rw-r--r--
_pspdf
326
B
-rw-r--r--
_psutils
3.69
KB
-rw-r--r--
_pump
1.41
KB
-rw-r--r--
_pv
4.29
KB
-rw-r--r--
_pwgen
1.53
KB
-rw-r--r--
_pydoc
858
B
-rw-r--r--
_python
2.11
KB
-rw-r--r--
_python_modules
1.09
KB
-rw-r--r--
_qemu
2.55
KB
-rw-r--r--
_quilt
8.67
KB
-rw-r--r--
_rake
2.78
KB
-rw-r--r--
_ranlib
403
B
-rw-r--r--
_rar
4.46
KB
-rw-r--r--
_rclone
24.33
KB
-rw-r--r--
_rcs
766
B
-rw-r--r--
_readelf
3.7
KB
-rw-r--r--
_readlink
1.71
KB
-rw-r--r--
_remote_files
2.69
KB
-rw-r--r--
_renice
424
B
-rw-r--r--
_ri
3.71
KB
-rw-r--r--
_rlogin
1.84
KB
-rw-r--r--
_rm
2.18
KB
-rw-r--r--
_rmdir
606
B
-rw-r--r--
_route
7.32
KB
-rw-r--r--
_rrdtool
591
B
-rw-r--r--
_rsync
13.44
KB
-rw-r--r--
_rubber
2.66
KB
-rw-r--r--
_ruby
6.12
KB
-rw-r--r--
_runit
2.15
KB
-rw-r--r--
_samba
6.19
KB
-rw-r--r--
_sccs
6.04
KB
-rw-r--r--
_scons
4.08
KB
-rw-r--r--
_screen
6.91
KB
-rw-r--r--
_script
2.53
KB
-rw-r--r--
_seafile
1.12
KB
-rw-r--r--
_sed
10.03
KB
-rw-r--r--
_seq
930
B
-rw-r--r--
_service
1.31
KB
-rw-r--r--
_services
951
B
-rw-r--r--
_setfacl
2
KB
-rw-r--r--
_sh
327
B
-rw-r--r--
_shasum
1.03
KB
-rw-r--r--
_showmount
428
B
-rw-r--r--
_shred
987
B
-rw-r--r--
_shuf
978
B
-rw-r--r--
_shutdown
2.1
KB
-rw-r--r--
_signals
1.09
KB
-rw-r--r--
_sisu
3.85
KB
-rw-r--r--
_slrn
1.1
KB
-rw-r--r--
_smartmontools
4.4
KB
-rw-r--r--
_socket
1.06
KB
-rw-r--r--
_sort
3.72
KB
-rw-r--r--
_spamassassin
475
B
-rw-r--r--
_split
2.83
KB
-rw-r--r--
_sqlite
3.48
KB
-rw-r--r--
_sqsh
2.11
KB
-rw-r--r--
_ssh
28.6
KB
-rw-r--r--
_ssh_hosts
1.08
KB
-rw-r--r--
_stat
3.16
KB
-rw-r--r--
_stdbuf
674
B
-rw-r--r--
_stgit
1.26
KB
-rw-r--r--
_stow
3.27
KB
-rw-r--r--
_strings
2.43
KB
-rw-r--r--
_strip
4.09
KB
-rw-r--r--
_stty
776
B
-rw-r--r--
_su
3.34
KB
-rw-r--r--
_subversion
18.08
KB
-rw-r--r--
_sudo
3.24
KB
-rw-r--r--
_surfraw
17.72
KB
-rw-r--r--
_swaks
3.38
KB
-rw-r--r--
_swanctl
9.98
KB
-rw-r--r--
_swift
5.82
KB
-rw-r--r--
_sys_calls
558
B
-rw-r--r--
_sysctl
3.72
KB
-rw-r--r--
_tac
542
B
-rw-r--r--
_tail
2.88
KB
-rw-r--r--
_tar
6.37
KB
-rw-r--r--
_tar_archive
1
KB
-rw-r--r--
_tardy
678
B
-rw-r--r--
_tcpdump
8.49
KB
-rw-r--r--
_tcptraceroute
583
B
-rw-r--r--
_tee
956
B
-rw-r--r--
_telnet
2.84
KB
-rw-r--r--
_terminals
230
B
-rw-r--r--
_tex
1.92
KB
-rw-r--r--
_texi
129
B
-rw-r--r--
_texinfo
16.12
KB
-rw-r--r--
_tidy
3.63
KB
-rw-r--r--
_tiff
10.47
KB
-rw-r--r--
_tilde_files
785
B
-rw-r--r--
_time_zone
222
B
-rw-r--r--
_timeout
815
B
-rw-r--r--
_tin
2.14
KB
-rw-r--r--
_tla
17.58
KB
-rw-r--r--
_tmux
63.42
KB
-rw-r--r--
_todo.sh
4.48
KB
-rw-r--r--
_toilet
868
B
-rw-r--r--
_top
7.46
KB
-rw-r--r--
_topgit
177
B
-rw-r--r--
_totd
287
B
-rw-r--r--
_touch
1.53
KB
-rw-r--r--
_tput
488
B
-rw-r--r--
_tr
1.47
KB
-rw-r--r--
_transmission
20.55
KB
-rw-r--r--
_tree
2.78
KB
-rw-r--r--
_truss
3.05
KB
-rw-r--r--
_tty
436
B
-rw-r--r--
_ttys
704
B
-rw-r--r--
_twidge
1.67
KB
-rw-r--r--
_twisted
1.34
KB
-rw-r--r--
_umountable
1.42
KB
-rw-r--r--
_unace
472
B
-rw-r--r--
_uname
2.96
KB
-rw-r--r--
_unexpand
1.1
KB
-rw-r--r--
_uniq
1.5
KB
-rw-r--r--
_unison
5.39
KB
-rw-r--r--
_units
2.75
KB
-rw-r--r--
_uptime
696
B
-rw-r--r--
_urls
5.91
KB
-rw-r--r--
_user_admin
6.24
KB
-rw-r--r--
_user_at_host
729
B
-rw-r--r--
_users
240
B
-rw-r--r--
_users_on
253
B
-rw-r--r--
_vcsh
2.33
KB
-rw-r--r--
_vim
6.89
KB
-rw-r--r--
_visudo
545
B
-rw-r--r--
_vmstat
4.47
KB
-rw-r--r--
_vorbis
8.57
KB
-rw-r--r--
_vpnc
3.14
KB
-rw-r--r--
_w
1.37
KB
-rw-r--r--
_w3m
4.43
KB
-rw-r--r--
_watch
1.47
KB
-rw-r--r--
_wc
793
B
-rw-r--r--
_webbrowser
205
B
-rw-r--r--
_wget
11.13
KB
-rw-r--r--
_whereis
36
B
-rw-r--r--
_who
2.36
KB
-rw-r--r--
_whois
4.73
KB
-rw-r--r--
_wiggle
1.09
KB
-rw-r--r--
_xargs
2.79
KB
-rw-r--r--
_xmlsoft
6.67
KB
-rw-r--r--
_xmlstarlet
7.29
KB
-rw-r--r--
_xmms2
5.26
KB
-rw-r--r--
_xxd
2.16
KB
-rw-r--r--
_xz
4.31
KB
-rw-r--r--
_yafc
1.78
KB
-rw-r--r--
_yodl
658
B
-rw-r--r--
_yp
3.18
KB
-rw-r--r--
_zcat
115
B
-rw-r--r--
_zdump
112
B
-rw-r--r--
_zfs
18.02
KB
-rw-r--r--
_zfs_dataset
2.69
KB
-rw-r--r--
_zfs_keysource_props
408
B
-rw-r--r--
_zfs_pool
51
B
-rw-r--r--
_zip
9.51
KB
-rw-r--r--
_zpool
9.53
KB
-rw-r--r--
_zsh
696
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : _composer
#compdef composer composer.phar # Notes: # - With some re-arranging, this function could be used as a base for completing # any Symfony Console application. It's worth mentioning that most Console # applications provide their help output in structured XML and JSON formats, # and a helper function could be written to parse these and produce basic # completion similar to what `_arguments --` does. But it wouldn't be fully # featured like this # - Completing arbitrary package names from Packagist, even with caching enabled # (which it is by default here), can be very slow; it may even hang the shell. # To disable the fetching of remote packages and use only local cache/JSON # information for completion, set the fetch-packages style as follows: # zstyle ':completion:*:composer:*' fetch-packages no # - @todo We don't complete custom commands (including script aliases). This is # easy to do in the general case, but it probably requires some clever caching # to avoid introducing a noticeable lag to every completion operation, due to # the way command resolution works and the fact that discovering custom # commands requires making slow calls to Composer # - @todo We don't complete version constraints # Check cache validity __composer_cache_policy() { # Invalidate if the cache is over a week old [[ -n $1(#qmw+1N) ]] && return 0 __composer_update_work_dir # Invalidate if the current project JSON file is newer than the cache [[ -e $_composer_work_dir/composer.json ]] && [[ $_composer_work_dir/composer.json -nt $1 ]] } # _call_program wrapper (same eval/quoting rules apply) # $1 => tag # $2 ... => composer arguments (( $+functions[__composer_call] )) || __composer_call() { local -a cmd __composer_update_work_dir cmd=( ${_composer_cmd:-composer} -d${(q)${_composer_work_dir:-$PWD}} ) (( _composer_is_global )) && cmd+=( global ) _call_program $1 $cmd "${@[2,-1]}" } # Resolve potentially abbreviated/aliased command name to canonical name # $1 => name of scalar parameter to set # $2 => provided command name (( $+functions[__composer_resolve_cmd] )) || __composer_resolve_cmd() { local __i __ret=1 local -a __cmds __tmp=( ${(@)_composer_cmds%%:*} ) __cmds=( $__tmp[(r)$2] ) (( $#__cmds )) || __cmds=( ${(M)__tmp:#$2*} ) if (( $#__cmds == 1 )); then 2=$__cmds[1] (( $+_composer_cmd_aliases[$2] )) && 2=$_composer_cmd_aliases[$2] __ret=0 else 3=$__cmds[1] # An ambiguous prefix match isn't ambiguous if all the matches are aliases # of each other for (( __i = 2; __i <= $#__cmds; __i++ )); do if [[ $_composer_cmd_aliases[$__cmds[__i]] == $3 ]]; then __cmds[__i]=() elif [[ $_composer_cmd_aliases[$3] == $__cmds[__i] ]]; then 3=$__cmds[__i] __cmds[__i]=() fi done if (( $#__cmds == 1 )); then 2=$3 __ret=0 elif (( $#__cmds )); then _message -e ambiguous-commands "ambiguous command: $2 ($__cmds)" else # @todo Too annoying without handling custom commands : _message -e unrecognized-commands "unrecognized command: $2" fi fi : ${(P)1::=$2} return __ret } # Remove already-used global options (this is a bit silly admittedly) # $1 ... => options given (e.g. ${(k)opt_args}) (( $+functions[__composer_prune_global_opts] )) || __composer_prune_global_opts() { local opt local -a excls specs remove for opt in $@; do specs=( ${(M)_composer_global_opts:#(*[\*\)]|)${opt}[=+-]#\[*} ) excls=( ${=${(@)${(@M)specs#\([^\)]##\)}//[ \(\)]/ }} ) remove+=( # Don't remove used options like *-v ${specs:#(*\)|)\*${opt}[=+-]#\[*} # But do remove them if a used option excludes them ${(M)_composer_global_opts:#(*[\*\)]|)(${(j<|>)~${(@b)excls}})[=+-]#\[*} ) done _composer_global_opts=( ${_composer_global_opts:#(${(j<|>)~${(@b)remove}})} ) } # Update the working directory from opt_args/PWD. This is a little irritating to # deal with; for now we're just calling it anywhere it might be important (( $+functions[__composer_update_work_dir] )) || __composer_update_work_dir() { if [[ -n ${(v)opt_args[(i)(-d|--working-dir)]} ]]; then _composer_work_dir=${(Q)${(v)opt_args[(i)(-d|--working-dir)]}} elif [[ -z $_composer_work_dir ]]; then _composer_work_dir=$PWD fi } # Complete local/vendored binaries (( $+functions[__composer_binaries] )) || __composer_binaries() { local -a expl tmp tmp=( ${(f)"$( __composer_call exec-list exec -l )"} ) tmp=( ${(@)tmp%%[[:space:]]##} ) [[ $tmp[1] == *: ]] && tmp[1]=() tmp=( ${(@)tmp##[\*-][[:space:]]#} ) tmp=( ${(@)tmp%%[[:space:]]##\(local\)} ) _wanted -x commands expl binary compadd -a "$@" - tmp } # Complete commands (( $+functions[__composer_commands] )) || __composer_commands() { _describe -t commands command _composer_cmds } # Complete package licences (( $+functions[__composer_licenses] )) || __composer_licenses() { # These are just the ones the Composer documentation recommends; the full list # of supported identifiers can be found at https://spdx.org/licenses/. If # other functions need to complete licences in the future, it might be wise to # break this out into a _licenses type local -a tmp=( 'Apache-2.0:Apache License 2.0' 'BSD-2-Clause:BSD 2-Clause "Simplified" License' 'BSD-3-Clause:BSD 3-Clause "New" or "Revised" License' 'BSD-4-Clause:BSD 4-Clause "Original" or "Old" License' 'GPL-2.0-only:GNU General Public License v2.0 only' 'GPL-2.0-or-later:GNU General Public License v2.0 or later' 'GPL-3.0-only:GNU General Public License v3.0 only' 'GPL-3.0-or-later:GNU General Public License v3.0 or later' 'LGPL-2.1-only:GNU Lesser General Public License v2.1 only' 'LGPL-2.1-or-later:GNU Lesser General Public License v2.1 or later' 'LGPL-3.0-only:GNU Lesser General Public License v3.0 only' 'LGPL-3.0-or-later:GNU Lesser General Public License v3.0 or later' 'MIT:MIT License' 'proprietary:proprietary/closed-source license' ) _describe -t licenses 'package license' tmp } # Complete packages # --pairs => complete as package:constraint pairs # --vendor => complete only vendored (installed) packages (( $+functions[__composer_packages] )) || __composer_packages() { local cwd local -a pairs vendor home_dirs pkgs __composer_update_work_dir zparseopts -D -E - -vendor=vendor -pairs=pairs (( $#pairs )) && compset -P '*[:= ]' && { _message -e versions 'version constraint' return } home_dirs=( $COMPOSER_HOME(#q/N) $HOME/.composer(#q/N) $HOME/.config/composer(#q/N) ${XDG_CONFIG_HOME:-/@err@}/composer(#q/N) ) pkgs=( $_composer_work_dir/vendor/*/*(#q/N) ) # Trying to work out the path to the vendor directory when we're global is # tedious, so we'll just take everything we can find (( ! $#vendor || _composer_is_global )) && pkgs+=( $^home_dirs/vendor/*/*(#q/N) ) (( $#vendor )) || pkgs+=( ${COMPOSER_CACHE_DIR:-/@err@}/files/*/*(#q/N) $^home_dirs/cache/files/*/*(#q/N) ) pkgs=( ${(@M)pkgs%%[^/]##/[^/]##} ) (( $#vendor )) || { pkgs+=( ${(f)"$( _call_program packages-json \ command grep -soE ${(qq):-'"[^/]+\\?/[^/]+"\s*:'} -- \ ${(qq)_composer_work_dir}/composer.json )"//[$':" \t\\']/} ${(@)${(f)"$( _call_program packages-lock \ command grep -soE ${(qq):-'"name"\s*:\s*"[^/]+\\?/[^/]+"'} -- \ ${(qq)_composer_work_dir}/composer.lock )"//\"name\"/}//[$':" \t\\']/} ) zstyle -T ":completion:*:*:$service:*" fetch-packages && { { (( ! $#_composer_cache_pkgs )) || _cache_invalid composer-pkgs } && ! _retrieve_cache composer-pkgs && { _composer_cache_pkgs=( ${(f)"$( __composer_call packages-fetch show -aN | LC_ALL=C tr -d '\t ' # Seems faster than ${...//.../} here )"} ) _store_cache composer-pkgs _composer_cache_pkgs } pkgs+=( $_composer_cache_pkgs ) } } (( $#pkgs )) || { _message -e packages package return } if [[ $PREFIX == */* ]]; then _description packages expl "${PREFIX%%/*}/* package" else _description packages expl 'package vendor' fi _multi_parts "${(@)expl}" "$@" / pkgs } # Complete package repositories (( $+functions[__composer_repositories] )) || __composer_repositories() { _alternative \ 'urls:repository URL:_urls' \ 'files:repository JSON configuration file:_files -g "*.json(#q-.)"' \ 'json:repository JSON configuration object:' } # Complete composer.json scripts (( $+functions[__composer_scripts] )) || __composer_scripts() { local -a expl tmp tmp=( ${(f)"$( __composer_call run-script-list run-script -l )"} ) tmp=( ${(@)tmp##[[:space:]]##} ) tmp=( ${(@)tmp%%[[:space:]]##} ) [[ $tmp[1] == *: ]] && tmp[1]=() tmp=( ${(@)tmp##[\*-][[:space:]]#} ) tmp=( ${(@)tmp%%[[:space:]]*} ) _wanted -x commands expl script compadd -a "$@" - tmp } # Complete package stabilities (( $+functions[__composer_stabilities] )) || __composer_stabilities() { local -a expl _wanted stabilities expl 'package stability' compadd "$@" - \ stable RC beta alpha dev } # Complete package types (( $+functions[__composer_types] )) || __composer_types() { local -a expl # Only the first four here are official types listed in the documentation; the # others are popular custom types _wanted types expl 'package type' compadd "$@" - \ composer-plugin library metapackage project \ cakephp-plugin cantao-module drupal-module magento2-module package \ phpcodesniffer-standard silverstripe-module symfony-bundle \ typo3-cms-extension wordpress-plugin yii2-extension } (( $+functions[_composer_archive] )) || _composer_archive() { _arguments -s -S : \ $_composer_global_opts \ '--dir=[specify output directory]:output directory:_files -/' \ '--file=[specify output file name]:output file name (without extension):_files' \ '(-f --format)'{-f+,--format=}'[specify archive format]:archive format:(tar zip)' \ '1:: :__composer_packages' \ '2:: :_guard "^-*" "version constraint"' } (( $+functions[_composer_check-platform-reqs] )) || _composer_check-platform-reqs() { _arguments -s -S : \ $_composer_global_opts \ '--no-dev[do not check require-dev package requirements]' } (( $+functions[_composer_config] )) || _composer_config() { local ret=1 local -a context expl line state state_descr cmd tmp local -A opt_args # -a and -f can be used together, in which case auth.json will be looked up in # the base directory of the -f file. -f and -g can't be used together, but -f # can still be used to specify config.json with `composer global config` _arguments -s -S : \ $_composer_global_opts \ + '(a)' '(A l u : *)'{-a,--auth}'[edit auth.json (with -e)]' \ + '(A)' '(a e u)--absolute[display absolute *-dir setting paths]' \ + '(e)' '(A l u : *)'{-e,--editor}'[open configuration in $EDITOR]' \ + '(f)' '(g)'{-f+,--file=}'[specify {composer,config}.json path]:configuration file:_files' \ + '(g)' {-g,--global}'[use global config.json]' \ + '(l)' '(a e u : *)'{-l,--list}'[list configuration settings]' \ + '(u)' '(a A e l *)--unset[unset specified setting key]' \ + k '(a e l)1: :->key' \ + v '(a e l u)*:: :->val' \ && ret=0 __composer_update_work_dir case $state in key) # `composer config` doesn't seem to actually respect -d... tmp=( ${(v)opt_args[(i)([^-]##-|)(-f|--file)]} ) cmd=( config -f$^tmp $opt_args[(i)([^-]##-|)(-g|--global)] -l ) tmp=( ${(@M)${(f)"$( __composer_call config-list $cmd )"}#\[*\]} ) tmp=( ${(@)tmp//[ \]\[]/} ) _wanted setting-keys expl 'setting key' compadd -a "$@" - tmp && ret=0 ;; val) case $words[1] in *[.-]dirs#|home) _wanted setting-values expl 'setting value' _files -/ "$@" && ret=0 ;; *[.-]domains#) _wanted setting-values expl 'setting value' _hosts "$@" && ret=0 ;; *[.-]urls#) _wanted setting-values expl 'setting value' _urls "$@" && ret=0 ;; *) # If we wanted we could get specific about booleans, etc., here _wanted setting-values expl 'setting value' _default "$@" && ret=0 ;; esac ;; esac return ret } (( $+functions[_composer_create-project] )) || _composer_create-project() { _arguments -s -S : \ $_composer_global_opts \ '(--no-dev)--dev[install require-dev packages]' \ '--ignore-platform-reqs[ignore PHP platform requirements]' \ '(--remove-vcs)--keep-vcs[do not remove VCS directory]' \ '!(--no-plugins)--no-custom-installers' \ '(--dev)--no-dev[do not install require-dev packages]' \ '--no-install[skip installation of package dependencies]' \ '--no-progress[do not display download progress]' \ '--no-secure-http[do not use HTTPS]' \ '--no-scripts[prevent execution of scripts defined in root package]' \ '(--prefer-source)--prefer-dist[prefer installation from dist]' \ '(--prefer-dist)--prefer-source[prefer installation from source]' \ '(--keep-vcs)--remove-vcs[force removal of VCS directory]' \ '--repository=[specify package repository]: :__composer_repositories' \ '!(--repository)--repository_url:repository URL:_urls' \ '(-s --stability)'{-s+,--stability=}'[specify minimum stability]: :__composer_stabilities' \ '1: :__composer_packages' \ '2::project directory:_files -/' \ '3:: :_guard "^-*" "version constraint"' } (( $+functions[_composer_depends] )) || _composer_depends() { _arguments -s -S : \ $_composer_global_opts \ '(-r --recursive)'{-r,--recursive}'[resolve recursively up to root package]' \ '(-t --tree)'{-t,--tree}'[display in tree format]' \ '1: :__composer_packages --vendor' \ '2:: :_guard "^-*" "version constraint"' } (( $+functions[_composer_dump-autoload] )) || _composer_dump-autoload() { _arguments -s -S : \ $_composer_global_opts \ '--apcu[use APCu to cache found/not-found classes]' \ '--no-dev[ignore autoload-dev rules]' \ '--no-scripts[prevent execution of scripts defined in composer.json]' \ + '(a)' '(o)'{-a,--classmap-authoritative}'[autoload from class maps only (implies -o)]' \ + '(o)' {-o,--optimize}'[use class maps for PSR-0/4 packages]' } (( $+functions[_composer_exec] )) || _composer_exec() { local ret=1 local -a context line state state_descr local -A opt_args _arguments -s -S : \ $_composer_global_opts \ '(: * -l --list)'{-l,--list}'[display available binaries]' \ '1: :__composer_binaries' \ '*: :->next' \ && ret=0 # Can't use *:: here, it won't complete subsequent options [[ $state == next ]] && { shift words (( CURRENT-- )) unset _composer_cmd _normal && ret=0 } return ret } (( $+functions[_composer_global] )) || _composer_global() { _composer_is_global=1 _composer "$@" } (( $+functions[_composer_help] )) || _composer_help() { _arguments -s -S : \ $_composer_global_opts \ '--format=[specify output format]:output format [txt]:(json md txt xml)' \ '--raw[output raw help (with text format)]' \ '1: :__composer_commands' } (( $+functions[_composer_home] )) || _composer_home() { _arguments -s -S : \ $_composer_global_opts \ '(-H --homepage)'{-H,--homepage}'[use home page instead of repository]' \ '(-s --show)'{-s,--show}'[display URL only (do not open)]' \ '*: :__composer_packages' \ } (( $+functions[_composer_init] )) || _composer_init() { _arguments -s -S : \ $_composer_global_opts \ '--author=[specify package author]:package author' \ '--description=[specify package description]:package description' \ '--homepage=[specify package home page]:package home page:_urls' \ '(-l --license)'{-l+,--license=}'[specify package license]: :__composer_licenses' \ '--name=[specify package name]: :__composer_packages' \ '*--repository=[specify custom package repository]: :__composer_repositories' \ '*--require=[specify package to require]: :__composer_packages --pairs' \ '*--require-dev=[specify package to require for development]: :__composer_packages --pairs' \ '(-s --stability)'{-s+,--stability=}'[specify minimum stability]: :__composer_stabilities' \ '--type=-[specify package type]:: :__composer_types' } (( $+functions[_composer_install] )) || _composer_install() { _arguments -s -S : \ $_composer_global_opts \ '(--no-dev)--dev[install require-dev packages]' \ '--dry-run[do not actually install (implies -v)]' \ '--ignore-platform-reqs[ignore PHP platform requirements]' \ '!(--no-plugins)--no-custom-installers' \ '(--dev)--no-dev[do not install require-dev packages]' \ '--no-progress[do not display download progress]' \ '--no-scripts[prevent execution of scripts defined in composer.json]' \ '--no-suggest[do not display package suggestions]' \ '(--prefer-source)--prefer-dist[prefer installation from dist]' \ '(--prefer-dist)--prefer-source[prefer installation from source]' \ + '(a)' '(n o)'{-a,--classmap-authoritative}'[autoload from class maps only (implies -o)]' \ + '(A)' '(n)--apcu-autoloader[use APCu to cache found/not-found classes]' \ + '(n)' '(a A o)--no-autoload[skip autoloader generation]' \ + '(o)' '(n)'{-o,--optimize}'[use class maps for PSR-0/4 packages]' } (( $+functions[_composer_licenses] )) || _composer_licenses() { _arguments -s -S : \ $_composer_global_opts \ '--no-dev[ignore require-dev packages]' \ '--format=[specify output format]:output format [text]:(json text)' } (( $+functions[_composer_list] )) || _composer_list() { _arguments -s -S : \ $_composer_global_opts \ '--format=[specify output format]:output format [txt]:(json md txt xml)' \ '--raw[output raw help (with text format)]' \ '1: :_guard "^-*" namespace' } (( $+functions[_composer_outdated] )) || _composer_outdated() { _arguments -s -S : \ $_composer_global_opts \ '--format=[specify output format]:output format [text]:(json text)' \ '--strict[return non-zero exit code if there are outdated packages]' \ '1: :__composer_packages --vendor' \ + '(a)' '(D I)'{-a,--all}'[display all installed packages]' \ + '(D)' '(a)'{-D,--direct}'[display only packages directly required by root package]' \ + '(I)' '(a)*--ignore=[ignore specified package (with -o)]: :__composer_packages' \ + '(m)' '(a)'{-m,--minor-only}'[display only packages with minor semver updates (with -o)]' \ + '(o)' '!(a)'{-o,--outdated} } (( $+functions[_composer_prohibits] )) || _composer_prohibits() { _arguments -s -S : \ $_composer_global_opts \ '(-r --recursive)'{-r,--recursive}'[resolve recursively up to root package]' \ '(-t --tree)'{-t,--tree}'[display in tree format]' \ '1: :__composer_packages --vendor' \ '2:: :_guard "^-*" "version constraint"' } (( $+functions[_composer_remove] )) || _composer_remove() { _arguments -s -S : \ $_composer_global_opts \ '--dev[remove package from require-dev]' \ '--ignore-platform-reqs[ignore PHP platform requirements]' \ '(--dev)--no-dev[do not install require-dev packages]' \ '--no-progress[do not display download progress]' \ '--no-scripts[prevent execution of scripts defined in composer.json]' \ '(--update-no-dev)--no-update[do not update dependencies]' \ '(--update-with-dependencies)--no-update-with-dependencies[do not update inherited dependencies]' \ '(--no-update)--update-no-dev[update dependencies with --no-dev option]' \ '(--no-update-with-dependencies)--update-with-dependencies[update inherited dependencies]' \ '*: :__composer_packages --vendor' \ + '(a)' '(n o)'{-a,--classmap-authoritative}'[autoload from class maps only (implies -o)]' \ + '(A)' '(n)--apcu-autoloader[use APCu to cache found/not-found classes]' \ + '(n)' '(a A o)--no-autoload[skip autoloader generation]' \ + '(o)' '(n)'{-o,--optimize}'[use class maps for PSR-0/4 packages]' } (( $+functions[_composer_require] )) || _composer_require() { _arguments -s -S : \ $_composer_global_opts \ '--dev[add package to require-dev]' \ '--ignore-platform-reqs[ignore PHP platform requirements]' \ '--no-progress[do not display download progress]' \ '--no-scripts[prevent execution of scripts defined in composer.json]' \ '--no-suggest[do not display package suggestions]' \ '(--prefer-source)--prefer-dist[prefer installation from dist]' \ '--prefer-lowest[prefer lowest versions of dependencies]' \ '(--prefer-dist)--prefer-source[prefer installation from source]' \ '--prefer-stable[prefer stable versions of dependencies]' \ '--sort-packages[sort packages when adding/updating dependencies]' \ '(--no-update)--update-no-dev[update dependencies with --no-dev option]' \ '*: :__composer_packages --pairs' \ + '(a)' '(n o)'{-a,--classmap-authoritative}'[autoload from class maps only (implies -o)]' \ + '(A)' '(n)--apcu-autoloader[use APCu to cache found/not-found classes]' \ + '(n)' '(a A o)--no-autoload[skip autoloader generation]' \ + '(o)' '(n)'{-o,--optimize}'[use class maps for PSR-0/4 packages]' \ + '(u)' \ '(--update-no-dev)--no-update[do not update dependencies]' \ '--update-with-dependencies[update inherited dependencies, except root requirements]' \ '--update-with-all-dependencies[update all inherited dependencies]' } (( $+functions[_composer_run-script] )) || _composer_run-script() { local ret=1 local -a context line state state_descr local -A opt_args _arguments -s -S : \ $_composer_global_opts \ '(--no-dev)--dev[enable dev mode]' \ '(: * -l --list)'{-l,--list}'[display available scripts]' \ '(--dev)--no-dev[disable dev mode]' \ '--timeout=[specify script timeout]:timeout (seconds)' \ '1: :__composer_scripts' \ '*: :->next' \ && ret=0 # Can't use *:: here, it won't complete subsequent options [[ $state == next ]] && { shift words (( CURRENT-- )) unset _composer_cmd _normal && ret=0 } return ret } (( $+functions[_composer_search] )) || _composer_search() { _arguments -s -S : \ $_composer_global_opts \ '(-N --only-name)'{-N,--only-name}'[search package names only]' \ '(-t --type)'{-t+,--type=}'[search for specified package type]: :__composer_types' \ '*: :__composer_packages' } (( $+functions[_composer_self-update] )) || _composer_self-update() { _arguments -s -S : \ $_composer_global_opts \ + '(c)' \ '--preview[force update to preview channel]' \ '--snapshot[force update to snapshot channel]' \ '--stable[force update to stable channel]' \ + '(C)' '(u)--set-channel-only[set channel as default and exit]' \ + u \ '(C -r --rollback)--clean-backups[delete old back-ups during update]' \ '(C)--no-progress[do not display download progress]' \ '(c C -r --rollback)'{-r,--rollback}'[roll back to earlier installation]' \ '(C)--update-keys[prompt for key update]' \ '(C)1: :_guard "^-*" "Composer version"' } (( $+functions[_composer_show] )) || _composer_show() { local ret=1 local -a context line state state_descr local -A opt_args _arguments -s -S : \ $_composer_global_opts \ '--format=[specify output format]:output format [text]:(json text)' \ '--strict[return non-zero exit code if there are outdated packages]' \ '1: :->pkgs' \ '2:: :_guard "^-*" "version constraint"' \ + '(a)' '(D I s t)'{-a,--available}'[display only available packages]' \ + '(A)' '(D I s t)--all[display all packages]' \ + '(D)' '(a A p s)'{-D,--direct}'[display only packages directly required by root package]' \ + '(i)' '(s)'{-i,--installed}'[display only installed packages]' \ + '(I)' '(a A s t)*--ignore=[ignore specified package (with -o)]: :__composer_packages' \ + '(l)' '(s t)'{-l,--latest}'[display only latest version of installed packages]' \ + '(m)' '(a A s t)'{-m,--minor-only}'[display only packages with minor semver updates (with -o)]' \ + '(N)' '(P)'{-N,--name-only}'[display package names only]' \ + '(o)' '(l t s)'{-o,--outdated}'[like -l, but display only outdated packages]' \ + '(p)' '(D)'{-p,--platform}'[display only PHP platform packages]' \ + '(P)' '(a A N)'{-P,--path}'[display package file paths]' \ + '(s)' '(a A I l o t)'{-s,--self}'[display root package information]' \ + '(t)' '(a A I l o s)'{-t,--tree}'[display in tree format]' \ && ret=0 [[ $state == pkgs ]] && if [[ -n $opt_args[(i)[aA]-*] ]]; then __composer_packages && ret=0 else __composer_packages --vendor && ret=0 fi return ret } (( $+functions[_composer_suggests] )) || _composer_suggests() { _arguments -s -S : \ $_composer_global_opts \ '(--by-suggestion)--by-package[group results by suggesting package]' \ '(--by-package)--by-suggestion[group results by suggested package]' \ '--no-dev[exclude suggestions from require-dev packages]' \ '*: :__composer_packages --vendor' } (( $+functions[_composer_update] )) || _composer_update() { _arguments -s -S : \ $_composer_global_opts \ '(--no-dev)--dev[install require-dev packages]' \ '--dry-run[do not actually update (implies -v)]' \ '(-i -n --interactive --no-interaction)'{-i,--interactive}'[update with interactive interface]' \ '--ignore-platform-reqs[ignore PHP platform requirements]' \ '--lock[update composer.lock hash only]' \ '!(--no-plugins)--no-custom-installers' \ '(--dev)--no-dev[do not install require-dev packages]' \ '--no-progress[do not display download progress]' \ '--no-scripts[prevent execution of scripts defined in composer.json]' \ '--no-suggest[do not display package suggestions]' \ '(--prefer-source)--prefer-dist[prefer installation from dist]' \ '--prefer-lowest[prefer lowest versions of dependencies]' \ '(--prefer-dist)--prefer-source[prefer installation from source]' \ '--prefer-stable[prefer stable versions of dependencies]' \ '--root-reqs[update only root-package dependencies]' \ '*:: :__composer_packages --vendor' \ + '(a)' '(n o)'{-a,--classmap-authoritative}'[autoload from class maps only (implies -o)]' \ + '(A)' '(n)--apcu-autoloader[use APCu to cache found/not-found classes]' \ + '(n)' '(a A o)--no-autoload[skip autoloader generation]' \ + '(o)' '(n)'{-o,--optimize}'[use class maps for PSR-0/4 packages]' \ + '(u)' \ '--with-dependencies[update dependencies of whitelisted packages, except root requirements]' \ '--with-all-dependencies[update all dependencies of whitelisted packages]' } (( $+functions[_composer_validate] )) || _composer_validate() { _arguments -s -S : \ $_composer_global_opts \ '(-A --with-dependencies)'{-A,--with-dependencies}'[validate composer.json of installed dependencies]' \ '--no-check-all[do not validate completely]' \ '--no-check-lock[ignore out-of-date composer.lock]' \ '--no-check-publish[ignore publish errors]' \ '--strict[return non-zero exit code for warnings as well as errors]' \ '1::composer.json file:_files -g "*.json(#q-.)"' } _composer() { local ret=1 tmp helps cmd local -a context line state state_descr local -A opt_args # These are meant for use by helper functions; we check for set-ness first in # case of `composer global` (( $+_composer_cmd )) || { local _composer_cmd=$words[1] _composer_is_global=0 _composer_work_dir= local -a _composer_cmds _composer_global_opts _composer_cache_pkgs local -A _composer_cmd_aliases # alias -> canonical (mappings derived from source) _composer_cmd_aliases=( browse home clearcache clear-cache dumpautoload dump-autoload i install info show selfupdate self-update u update upgrade update why depends why-not prohibits ) # Official commands (see note at top about custom ones) _composer_cmds=( about:'display short information about Composer' archive:'create archive of project/package' check-platform-reqs:'check that platform requirements are satisfied' clear{-,}cache:'clear internal package cache' config:'set configuration options' create-project:'create new project from package' {depends,why}:'display packages depending on package' diagnose:'diagnose system problems' dump{-,}autoload:'dump class autoloader' exec:'execute vendored binary/script' global:'run command in global Composer directory' help:'display help information' {home,browse}:'open package home page or repository in browser' init:'create basic composer.json' {install,i}:'install packages in composer.{lock,json}' licenses:'display dependency license information' list:'display supported commands' outdated:'display outdated packages' {prohibits,why-not}:'display packages preventing package from being installed' remove:'remove and uninstall required package' require:'add and install required package' run-script:'run scripts in composer.json' search:'search packages' self{-,}update:'upgrade Composer' {show,info}:'display package information' status:'display locally modified packages' suggests:'display package suggestions' {update,u,upgrade}:'upgrade packages in composer.json and update composer.lock' validate:'validate composer.{json,lock}' ) # Global options (can be used both before and after a command) _composer_global_opts=( '(-h --help)'{-h,--help}'[display help information]' '(: * -)'{-V,--version}'[display version information]' # Symfony handles -vv and -vvv specially '(-q -v --quiet --verbose)'{-q,--quiet}'[reduce output verbosity]' '(-q --quiet --verbose)*-v[increase output verbosity]' '(-q --quiet --verbose)--verbose[increase output verbosity]' '(--no-ansi)--ansi[force ANSI (color) output]' '(--ansi)--no-ansi[disable ANSI (color) output]' '(-n --no-interaction)'{-n,--no-interaction}'[run non-interactively]' '--no-plugins[disable plug-ins]' '--profile[display timing and memory usage information]' '(-d --working-dir)'{-d+,--working-dir=}'[specify working directory]:working directory:_files -/' ) # Use caching by default; Composer is very slow zstyle -s ":completion:*:*:$service:*" cache-policy tmp [[ -n $tmp ]] || zstyle ":completion:*:*:$service:*" cache-policy __composer_cache_policy zstyle -s ":completion:*:*:$service:*" use-cache tmp [[ -n $tmp ]] || zstyle ":completion:*:*:$service:*" use-cache yes } # Symfony's Application class naively intercepts --version and --help no # matter where they appear on the command line. --version is handled # sufficiently by the global option spec above; for --help, we need to # simulate the help command [[ -n $words[(r)(-h|--help)] ]] && { helps=${#${(M)words[2,CURRENT]:#(-h|--help)}} words=( "$words[1]" help "${(@)words[2,CURRENT]:#(-h|--help)}" ) (( CURRENT -= helps - 1 )) __composer_prune_global_opts -h --help } _arguments -s -S -A '-*' : \ $_composer_global_opts \ '1: :__composer_commands' \ '*:: :->next' \ && ret=0 __composer_update_work_dir [[ $state == next ]] && { # Resolve abbreviated/aliased command names and ensure that $words[1] works # as expected in our helper functions __composer_resolve_cmd cmd $words[1] words[1]=$_composer_cmd # Don't offer global options again after they've been given __composer_prune_global_opts ${(k)opt_args} # This is intentionally done twice [[ $cmd == help ]] && __composer_prune_global_opts -h --help if (( $+functions[_composer_$cmd] )); then _composer_$cmd "$@" && ret=0 else _arguments -s -S : $_composer_global_opts && ret=0 fi } return ret } _composer "$@"
Close