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.47
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 /
bash-completion /
completions /
[ HOME SHELL ]
Name
Size
Permission
Action
2to3
923
B
-rw-r--r--
7z
4.2
KB
-rw-r--r--
7za
4.2
KB
-rw-r--r--
_adb
1.74
KB
-rw-r--r--
_cal
926
B
-rw-r--r--
_chfn
238
B
-rw-r--r--
_chsh
698
B
-rw-r--r--
_dmesg
929
B
-rw-r--r--
_eject
813
B
-rw-r--r--
_hexdump
677
B
-rw-r--r--
_hwclock
622
B
-rw-r--r--
_ionice
1.23
KB
-rw-r--r--
_look
445
B
-rw-r--r--
_mock
2.02
KB
-rw-r--r--
_modules
2.48
KB
-rw-r--r--
_mount
2.01
KB
-rw-r--r--
_mount.linux
10.79
KB
-rw-r--r--
_newgrp
432
B
-rw-r--r--
_nmcli
6.03
KB
-rw-r--r--
_renice
770
B
-rw-r--r--
_repomanage
606
B
-rw-r--r--
_reptyr
549
B
-rw-r--r--
_rfkill
927
B
-rw-r--r--
_rtcwake
877
B
-rw-r--r--
_runuser
241
B
-rw-r--r--
_su
986
B
-rw-r--r--
_svn
8.67
KB
-rw-r--r--
_svnadmin
2.25
KB
-rw-r--r--
_svnlook
1.94
KB
-rw-r--r--
_udevadm
2.12
KB
-rw-r--r--
_umount
631
B
-rw-r--r--
_umount.linux
4.51
KB
-rw-r--r--
_write
239
B
-rw-r--r--
_xm
7.55
KB
-rw-r--r--
_yum
4.37
KB
-rw-r--r--
a2disconf
1.44
KB
-rw-r--r--
a2dismod
1.44
KB
-rw-r--r--
a2dissite
1.44
KB
-rw-r--r--
a2enconf
1.44
KB
-rw-r--r--
a2enmod
1.44
KB
-rw-r--r--
a2ensite
1.44
KB
-rw-r--r--
a2x
924
B
-rw-r--r--
abook
1.19
KB
-rw-r--r--
aclocal
853
B
-rw-r--r--
aclocal-1.10
853
B
-rw-r--r--
aclocal-1.11
853
B
-rw-r--r--
aclocal-1.12
853
B
-rw-r--r--
aclocal-1.13
853
B
-rw-r--r--
aclocal-1.14
853
B
-rw-r--r--
aclocal-1.15
853
B
-rw-r--r--
aclocal-1.16
853
B
-rw-r--r--
acpi
460
B
-rw-r--r--
add-apt-repository
2.19
KB
-rw-r--r--
add_members
771
B
-rw-r--r--
addpart
484
B
-rw-r--r--
alias
490
B
-rw-r--r--
alpine
899
B
-rw-r--r--
alternatives
2.4
KB
-rw-r--r--
animate
8.7
KB
-rw-r--r--
ant
2.73
KB
-rw-r--r--
apache2ctl
380
B
-rw-r--r--
appdata-validate
791
B
-rw-r--r--
apropos
2.94
KB
-rw-r--r--
apt
7.34
KB
-rw-r--r--
apt-add-repository
2.19
KB
-rw-r--r--
apt-build
1.45
KB
-rw-r--r--
apt-cache
2.13
KB
-rw-r--r--
apt-get
3.82
KB
-rw-r--r--
aptitude
4.12
KB
-rw-r--r--
aptitude-curses
4.12
KB
-rw-r--r--
arch
1.19
KB
-rw-r--r--
arm-koji
6.21
KB
-rw-r--r--
arp
1.56
KB
-rw-r--r--
arping
603
B
-rw-r--r--
arpspoof
564
B
-rw-r--r--
asciidoc
1.17
KB
-rw-r--r--
asciidoc.py
1.17
KB
-rw-r--r--
aspell
3.29
KB
-rw-r--r--
autoconf
966
B
-rw-r--r--
autoheader
1020
B
-rw-r--r--
automake
871
B
-rw-r--r--
automake-1.10
871
B
-rw-r--r--
automake-1.11
871
B
-rw-r--r--
automake-1.12
871
B
-rw-r--r--
automake-1.13
871
B
-rw-r--r--
automake-1.14
871
B
-rw-r--r--
automake-1.15
871
B
-rw-r--r--
automake-1.16
871
B
-rw-r--r--
autoreconf
1020
B
-rw-r--r--
autorpm
350
B
-rw-r--r--
autoscan
750
B
-rw-r--r--
autossh
16.11
KB
-rw-r--r--
autoupdate
750
B
-rw-r--r--
avctrl
465
B
-rw-r--r--
aws
204
B
-rw-r--r--
badblocks
595
B
-rw-r--r--
bind
826
B
-rw-r--r--
bk
429
B
-rw-r--r--
blkdiscard
686
B
-rw-r--r--
blkid
2.1
KB
-rw-r--r--
blkzone
1014
B
-rw-r--r--
blockdev
760
B
-rw-r--r--
bmake
6.04
KB
-rw-r--r--
bootctl
3.12
KB
-rw-r--r--
brctl
1.02
KB
-rw-r--r--
bsdtar
18.23
KB
-rw-r--r--
btdownloadcurses.py
1.04
KB
-rw-r--r--
btdownloadgui.py
1.04
KB
-rw-r--r--
btdownloadheadless.py
1.04
KB
-rw-r--r--
btrfs
3.4
KB
-rw-r--r--
bts
12.22
KB
-rw-r--r--
build-rdeps
732
B
-rw-r--r--
busctl
7.19
KB
-rw-r--r--
bzip2
1.04
KB
-rw-r--r--
c++
2.61
KB
-rw-r--r--
cancel
555
B
-rw-r--r--
cardctl
378
B
-rw-r--r--
carton
1.83
KB
-rw-r--r--
cc
2.61
KB
-rw-r--r--
ccache
1
KB
-rw-r--r--
ccze
1.19
KB
-rw-r--r--
cdrecord
3.5
KB
-rw-r--r--
cfagent
421
B
-rw-r--r--
cfdisk
608
B
-rw-r--r--
cfrun
1.24
KB
-rw-r--r--
chage
669
B
-rw-r--r--
change_pw
531
B
-rw-r--r--
chcpu
1.49
KB
-rw-r--r--
chdist
1.68
KB
-rw-r--r--
check_db
374
B
-rw-r--r--
check_perms
319
B
-rw-r--r--
checkbashisms
752
B
-rw-r--r--
checksec
746
B
-rw-r--r--
chgrp
940
B
-rw-r--r--
chkconfig
903
B
-rw-r--r--
chmem
501
B
-rw-r--r--
chmod
905
B
-rw-r--r--
chown
1.08
KB
-rw-r--r--
chpasswd
696
B
-rw-r--r--
chrome
1.38
KB
-rw-r--r--
chromium
1.38
KB
-rw-r--r--
chromium-browser
1.38
KB
-rw-r--r--
chronyc
1.53
KB
-rw-r--r--
chrpath
536
B
-rw-r--r--
chrt
920
B
-rw-r--r--
ci
857
B
-rw-r--r--
ciptool
9.38
KB
-rw-r--r--
civclient
1.04
KB
-rw-r--r--
civserver
487
B
-rw-r--r--
cksfv
520
B
-rw-r--r--
cleanarch
352
B
-rw-r--r--
clisp
668
B
-rw-r--r--
clone_member
542
B
-rw-r--r--
clzip
1.12
KB
-rw-r--r--
co
857
B
-rw-r--r--
col
460
B
-rw-r--r--
colcrt
484
B
-rw-r--r--
colormake
6.04
KB
-rw-r--r--
colrm
509
B
-rw-r--r--
column
1.42
KB
-rw-r--r--
compare
8.7
KB
-rw-r--r--
compgen
1.42
KB
-rw-r--r--
complete
1.42
KB
-rw-r--r--
composite
8.7
KB
-rw-r--r--
config_list
586
B
-rw-r--r--
configure
1.18
KB
-rw-r--r--
conjure
8.7
KB
-rw-r--r--
convert
8.7
KB
-rw-r--r--
cowsay
543
B
-rw-r--r--
cowthink
543
B
-rw-r--r--
cpan2dist
1.19
KB
-rw-r--r--
cpio
2.83
KB
-rw-r--r--
cppcheck
2.57
KB
-rw-r--r--
createdb
4.27
KB
-rw-r--r--
createuser
4.27
KB
-rw-r--r--
crontab
1.16
KB
-rw-r--r--
cryptdisks_start
1.18
KB
-rw-r--r--
cryptdisks_stop
1.18
KB
-rw-r--r--
cryptsetup
3
KB
-rw-r--r--
ctrlaltdel
335
B
-rw-r--r--
curl
3.23
KB
-rw-r--r--
cvs
11.75
KB
-rw-r--r--
cvsps
1.45
KB
-rw-r--r--
darcs
2.48
KB
-rw-r--r--
dch
3.19
KB
-rw-r--r--
dcop
383
B
-rw-r--r--
dd
1.25
KB
-rw-r--r--
dd-list
732
B
-rw-r--r--
debc
625
B
-rw-r--r--
debchange
3.19
KB
-rw-r--r--
debcheckout
732
B
-rw-r--r--
debconf
294
B
-rw-r--r--
debconf-show
294
B
-rw-r--r--
debdiff
4.91
KB
-rw-r--r--
debi
625
B
-rw-r--r--
debsign
1.22
KB
-rw-r--r--
debsnap
732
B
-rw-r--r--
debsums
332
B
-rw-r--r--
debuild
4.04
KB
-rw-r--r--
declare
1.24
KB
-rw-r--r--
deja-dup
688
B
-rw-r--r--
delpart
563
B
-rw-r--r--
desktop-file-validate
474
B
-rw-r--r--
devlink
24.52
KB
-rw-r--r--
dfutool
9.38
KB
-rw-r--r--
dget
732
B
-rw-r--r--
dhclient
696
B
-rw-r--r--
dict
1.76
KB
-rw-r--r--
display
8.7
KB
-rw-r--r--
django_bash_completion
2.28
KB
-rw-r--r--
dkms
2.33
KB
-rw-r--r--
dmesg
1.2
KB
-rw-r--r--
dmypy
1.05
KB
-rw-r--r--
dnssec-keygen
1.12
KB
-rw-r--r--
dnsspoof
500
B
-rw-r--r--
dot
1.26
KB
-rw-r--r--
dpkg
4.32
KB
-rw-r--r--
dpkg-deb
4.32
KB
-rw-r--r--
dpkg-query
4.32
KB
-rw-r--r--
dpkg-reconfigure
4.32
KB
-rw-r--r--
dpkg-source
3.21
KB
-rw-r--r--
dropdb
4.27
KB
-rw-r--r--
dropuser
4.27
KB
-rw-r--r--
dscextract
1.15
KB
-rw-r--r--
dscverify
953
B
-rw-r--r--
dselect
615
B
-rw-r--r--
dsniff
518
B
-rw-r--r--
dumpdb
371
B
-rw-r--r--
dumpe2fs
518
B
-rw-r--r--
e2freefrag
460
B
-rw-r--r--
e2label
292
B
-rw-r--r--
eatmydata
31
B
-rw-r--r--
ebtables
3.61
KB
-rw-r--r--
ecryptfs-migrate-home
499
B
-rw-r--r--
edquota
3.62
KB
-rw-r--r--
eject
1.22
KB
-rw-r--r--
eog
645
B
-rw-r--r--
ether-wake
539
B
-rw-r--r--
etherwake
539
B
-rw-r--r--
ethtool
23.51
KB
-rw-r--r--
evince
976
B
-rw-r--r--
explodepkg
152
B
-rw-r--r--
export
1.48
KB
-rw-r--r--
f77
2.61
KB
-rw-r--r--
f95
2.61
KB
-rw-r--r--
fail2ban
6.91
KB
-rw-r--r--
faillog
640
B
-rw-r--r--
fallocate
721
B
-rw-r--r--
fbgs
1.55
KB
-rw-r--r--
fbi
1.79
KB
-rw-r--r--
fdisk
1.87
KB
-rw-r--r--
feh
4.2
KB
-rw-r--r--
file
755
B
-rw-r--r--
file-roller
1.08
KB
-rw-r--r--
filebucket
9.77
KB
-rw-r--r--
filefrag
350
B
-rw-r--r--
filesnarf
447
B
-rw-r--r--
fincore
916
B
-rw-r--r--
find
3.81
KB
-rw-r--r--
find_member
541
B
-rw-r--r--
findfs
695
B
-rw-r--r--
findmnt
3.12
KB
-rw-r--r--
fio
2.31
KB
-rw-r--r--
firefox
1.18
KB
-rw-r--r--
flake8
1000
B
-rw-r--r--
flock
874
B
-rw-r--r--
freebsd-update
596
B
-rw-r--r--
freeciv
1.04
KB
-rw-r--r--
freeciv-gtk2
1.04
KB
-rw-r--r--
freeciv-gtk3
1.04
KB
-rw-r--r--
freeciv-sdl
1.04
KB
-rw-r--r--
freeciv-server
487
B
-rw-r--r--
freeciv-xaw
1.04
KB
-rw-r--r--
fsck
770
B
-rw-r--r--
fsck.cramfs
702
B
-rw-r--r--
fsck.minix
418
B
-rw-r--r--
fsfreeze
524
B
-rw-r--r--
fstrim
743
B
-rw-r--r--
function
1.24
KB
-rw-r--r--
fusermount
638
B
-rw-r--r--
g++
2.61
KB
-rw-r--r--
g++-5
2.61
KB
-rw-r--r--
g++-6
2.61
KB
-rw-r--r--
g++-7
2.61
KB
-rw-r--r--
g++-8
2.61
KB
-rw-r--r--
g4
1.37
KB
-rw-r--r--
g77
2.61
KB
-rw-r--r--
g95
2.61
KB
-rw-r--r--
gapplication
1.36
KB
-rw-r--r--
gcc
2.61
KB
-rw-r--r--
gcc-5
2.61
KB
-rw-r--r--
gcc-6
2.61
KB
-rw-r--r--
gcc-7
2.61
KB
-rw-r--r--
gcc-8
2.61
KB
-rw-r--r--
gccgo
2.61
KB
-rw-r--r--
gccgo-5
2.61
KB
-rw-r--r--
gccgo-6
2.61
KB
-rw-r--r--
gccgo-7
2.61
KB
-rw-r--r--
gccgo-8
2.61
KB
-rw-r--r--
gcj
2.61
KB
-rw-r--r--
gcl
615
B
-rw-r--r--
gdb
1.59
KB
-rw-r--r--
gdbus
935
B
-rw-r--r--
genaliases
322
B
-rw-r--r--
gendiff
267
B
-rw-r--r--
genisoimage
878
B
-rw-r--r--
geoiplookup
683
B
-rw-r--r--
geoiplookup6
683
B
-rw-r--r--
getbuildlog
732
B
-rw-r--r--
getconf
795
B
-rw-r--r--
getent
1.92
KB
-rw-r--r--
getopt
815
B
-rw-r--r--
gfortran
2.61
KB
-rw-r--r--
gfortran-5
2.61
KB
-rw-r--r--
gfortran-6
2.61
KB
-rw-r--r--
gfortran-7
2.61
KB
-rw-r--r--
gfortran-8
2.61
KB
-rw-r--r--
gio
3.74
KB
-rw-r--r--
git
76.9
KB
-rw-r--r--
gitk
76.9
KB
-rw-r--r--
gkrellm
945
B
-rw-r--r--
gkrellm2
945
B
-rw-r--r--
gm
852
B
-rw-r--r--
gmake
6.04
KB
-rw-r--r--
gmplayer
11.2
KB
-rw-r--r--
gnatmake
1015
B
-rw-r--r--
gnokii
6.9
KB
-rw-r--r--
gnome-mplayer
951
B
-rw-r--r--
gnome-screenshot
810
B
-rw-r--r--
gnumake
6.04
KB
-rw-r--r--
google-chrome
1.38
KB
-rw-r--r--
google-chrome-stable
1.38
KB
-rw-r--r--
gpasswd
602
B
-rw-r--r--
gpc
2.61
KB
-rw-r--r--
gpg
1.26
KB
-rw-r--r--
gpg2
1.32
KB
-rw-r--r--
gpgv
1.09
KB
-rw-r--r--
gpgv2
1.09
KB
-rw-r--r--
gphoto2
1.38
KB
-rw-r--r--
gprof
1.31
KB
-rw-r--r--
grep-excuses
732
B
-rw-r--r--
gresource
1.32
KB
-rw-r--r--
groupadd
619
B
-rw-r--r--
groupdel
538
B
-rw-r--r--
groupmems
611
B
-rw-r--r--
groupmod
690
B
-rw-r--r--
growisofs
895
B
-rw-r--r--
grpck
498
B
-rw-r--r--
grub
10.39
KB
-rw-r--r--
grub-bios-setup
10.39
KB
-rw-r--r--
grub-editenv
10.39
KB
-rw-r--r--
grub-install
10.39
KB
-rw-r--r--
grub-mkconfig
10.39
KB
-rw-r--r--
grub-mkfont
10.39
KB
-rw-r--r--
grub-mkimage
10.39
KB
-rw-r--r--
grub-mkpasswd-pbkdf2
10.39
KB
-rw-r--r--
grub-mkrescue
10.39
KB
-rw-r--r--
grub-probe
10.39
KB
-rw-r--r--
grub-reboot
10.39
KB
-rw-r--r--
grub-script-check
10.39
KB
-rw-r--r--
grub-set-default
10.39
KB
-rw-r--r--
gsettings
2.76
KB
-rw-r--r--
gssdp-discover
922
B
-rw-r--r--
gtar
18.23
KB
-rw-r--r--
gzip
1.13
KB
-rw-r--r--
hardlink
604
B
-rw-r--r--
hciattach
9.38
KB
-rw-r--r--
hciconfig
9.38
KB
-rw-r--r--
hcitool
9.38
KB
-rw-r--r--
hd
677
B
-rw-r--r--
hddtemp
890
B
-rw-r--r--
hexdump
1007
B
-rw-r--r--
hg
14.88
KB
-rw-r--r--
hid2hci
348
B
-rw-r--r--
host
1.97
KB
-rw-r--r--
hostname
491
B
-rw-r--r--
hostnamectl
2.69
KB
-rw-r--r--
hping
792
B
-rw-r--r--
hping2
792
B
-rw-r--r--
hping3
792
B
-rw-r--r--
htop
807
B
-rw-r--r--
htpasswd
922
B
-rw-r--r--
hunspell
1
KB
-rw-r--r--
hwclock
960
B
-rw-r--r--
iceweasel
1.18
KB
-rw-r--r--
iconv
927
B
-rw-r--r--
id
433
B
-rw-r--r--
identify
8.7
KB
-rw-r--r--
idn
666
B
-rw-r--r--
ifdown
906
B
-rw-r--r--
ifquery
906
B
-rw-r--r--
ifstat
2
KB
-rw-r--r--
ifstatus
906
B
-rw-r--r--
iftop
512
B
-rw-r--r--
ifup
906
B
-rw-r--r--
import
8.7
KB
-rw-r--r--
influx
885
B
-rw-r--r--
info
1.88
KB
-rw-r--r--
inject
510
B
-rw-r--r--
inotifywait
1.24
KB
-rw-r--r--
inotifywatch
1.24
KB
-rw-r--r--
insmod
518
B
-rw-r--r--
insmod.static
518
B
-rw-r--r--
installpkg
731
B
-rw-r--r--
interdiff
774
B
-rw-r--r--
invoke-rc.d
1.19
KB
-rw-r--r--
ionice
1.13
KB
-rw-r--r--
ip
12.63
KB
-rw-r--r--
ipcalc
542
B
-rw-r--r--
ipcmk
576
B
-rw-r--r--
ipcrm
1.39
KB
-rw-r--r--
ipcs
514
B
-rw-r--r--
iperf
2.06
KB
-rw-r--r--
iperf3
2.06
KB
-rw-r--r--
ipmitool
5.53
KB
-rw-r--r--
ipsec
3.05
KB
-rw-r--r--
ipset
66.49
KB
-rw-r--r--
iptables
1.92
KB
-rw-r--r--
ipv6calc
1.01
KB
-rw-r--r--
iscsiadm
1.87
KB
-rw-r--r--
isort
1.32
KB
-rw-r--r--
isosize
529
B
-rw-r--r--
isql
352
B
-rw-r--r--
iwconfig
2.7
KB
-rw-r--r--
iwlist
607
B
-rw-r--r--
iwpriv
725
B
-rw-r--r--
iwspy
478
B
-rw-r--r--
jar
497
B
-rw-r--r--
jarsigner
1.66
KB
-rw-r--r--
java
8.81
KB
-rw-r--r--
javac
8.81
KB
-rw-r--r--
javadoc
8.81
KB
-rw-r--r--
javaws
795
B
-rw-r--r--
journalctl
6.12
KB
-rw-r--r--
jpegoptim
891
B
-rw-r--r--
jps
602
B
-rw-r--r--
jq
1.22
KB
-rw-r--r--
jshint
903
B
-rw-r--r--
json_xs
863
B
-rw-r--r--
jsonschema
642
B
-rw-r--r--
k3b
1.16
KB
-rw-r--r--
kcov
1.72
KB
-rw-r--r--
kernel-install
1.65
KB
-rw-r--r--
kill
577
B
-rw-r--r--
killall
784
B
-rw-r--r--
kldload
473
B
-rw-r--r--
kldunload
372
B
-rw-r--r--
kmod
3.16
KB
-rw-r--r--
koji
6.21
KB
-rw-r--r--
kplayer
11.2
KB
-rw-r--r--
ktutil
2.93
KB
-rw-r--r--
l2ping
9.38
KB
-rw-r--r--
larch
1.93
KB
-rw-r--r--
last
949
B
-rw-r--r--
lastlog
584
B
-rw-r--r--
lbzip2
1.04
KB
-rw-r--r--
ldapadd
4.36
KB
-rw-r--r--
ldapcompare
4.36
KB
-rw-r--r--
ldapdelete
4.36
KB
-rw-r--r--
ldapmodify
4.36
KB
-rw-r--r--
ldapmodrdn
4.36
KB
-rw-r--r--
ldappasswd
4.36
KB
-rw-r--r--
ldapsearch
4.36
KB
-rw-r--r--
ldapvi
1.34
KB
-rw-r--r--
ldapwhoami
4.36
KB
-rw-r--r--
ldattach
1.44
KB
-rw-r--r--
lftp
617
B
-rw-r--r--
lftpget
306
B
-rw-r--r--
lilo
1.58
KB
-rw-r--r--
links
3.21
KB
-rw-r--r--
links2
3.21
KB
-rw-r--r--
lintian
5.25
KB
-rw-r--r--
lintian-info
5.25
KB
-rw-r--r--
lisp
641
B
-rw-r--r--
list-unreleased
389
B
-rw-r--r--
list_admins
385
B
-rw-r--r--
list_lists
463
B
-rw-r--r--
list_members
854
B
-rw-r--r--
list_owners
411
B
-rw-r--r--
locale-gen
715
B
-rw-r--r--
localectl
3.25
KB
-rw-r--r--
logger
1.52
KB
-rw-r--r--
loginctl
3.99
KB
-rw-r--r--
look
683
B
-rw-r--r--
losetup
1.7
KB
-rw-r--r--
lpq
590
B
-rw-r--r--
lpr
901
B
-rw-r--r--
lrzip
1.08
KB
-rw-r--r--
lsblk
2.1
KB
-rw-r--r--
lscpu
1.04
KB
-rw-r--r--
lsipc
1.28
KB
-rw-r--r--
lslocks
1.06
KB
-rw-r--r--
lslogins
1.71
KB
-rw-r--r--
lsmem
1.04
KB
-rw-r--r--
lsns
1.16
KB
-rw-r--r--
lsof
1.38
KB
-rw-r--r--
lsscsi
594
B
-rw-r--r--
lsusb
423
B
-rw-r--r--
lua
438
B
-rw-r--r--
luac
486
B
-rw-r--r--
luseradd
1.03
KB
-rw-r--r--
luserdel
477
B
-rw-r--r--
lusermod
1.03
KB
-rw-r--r--
lvchange
19.01
KB
-rw-r--r--
lvcreate
19.01
KB
-rw-r--r--
lvdisplay
19.01
KB
-rw-r--r--
lvextend
19.01
KB
-rw-r--r--
lvm
19.01
KB
-rw-r--r--
lvmdiskscan
19.01
KB
-rw-r--r--
lvreduce
19.01
KB
-rw-r--r--
lvremove
19.01
KB
-rw-r--r--
lvrename
19.01
KB
-rw-r--r--
lvresize
19.01
KB
-rw-r--r--
lvs
19.01
KB
-rw-r--r--
lvscan
19.01
KB
-rw-r--r--
lz4
1.14
KB
-rw-r--r--
lz4c
1.14
KB
-rw-r--r--
lzip
1.12
KB
-rw-r--r--
lzma
915
B
-rw-r--r--
lzop
1.45
KB
-rw-r--r--
macof
424
B
-rw-r--r--
mailmanctl
463
B
-rw-r--r--
mailsnarf
447
B
-rw-r--r--
make
6.04
KB
-rw-r--r--
makepkg
1.02
KB
-rw-r--r--
man
2.94
KB
-rw-r--r--
mass-bug
732
B
-rw-r--r--
mc
689
B
-rw-r--r--
mcookie
599
B
-rw-r--r--
mcrypt
1.8
KB
-rw-r--r--
mdadm
4.41
KB
-rw-r--r--
mdecrypt
1.8
KB
-rw-r--r--
mdtool
2.07
KB
-rw-r--r--
medusa
672
B
-rw-r--r--
mencoder
11.2
KB
-rw-r--r--
mesg
412
B
-rw-r--r--
micropython
1.73
KB
-rw-r--r--
mii-diag
655
B
-rw-r--r--
mii-tool
852
B
-rw-r--r--
minicom
1.07
KB
-rw-r--r--
mk-build-deps
732
B
-rw-r--r--
mk-origtargz
1.3
KB
-rw-r--r--
mkfs
659
B
-rw-r--r--
mkfs.bfs
677
B
-rw-r--r--
mkfs.cramfs
839
B
-rw-r--r--
mkfs.minix
749
B
-rw-r--r--
mkinitrd
1.2
KB
-rw-r--r--
mkisofs
878
B
-rw-r--r--
mkswap
876
B
-rw-r--r--
mktemp
679
B
-rw-r--r--
mmsitepass
328
B
-rw-r--r--
modinfo
1.21
KB
-rw-r--r--
modprobe
3.99
KB
-rw-r--r--
mogrify
8.7
KB
-rw-r--r--
mokutil
1.16
KB
-rw-r--r--
monodevelop
445
B
-rw-r--r--
montage
8.7
KB
-rw-r--r--
more
752
B
-rw-r--r--
mount
2.05
KB
-rw-r--r--
mountpoint
498
B
-rw-r--r--
mozilla-firefox
1.18
KB
-rw-r--r--
mplayer
11.2
KB
-rw-r--r--
mplayer2
11.2
KB
-rw-r--r--
mr
2.57
KB
-rw-r--r--
msgsnarf
447
B
-rw-r--r--
msynctool
1.31
KB
-rw-r--r--
mtr
1.9
KB
-rw-r--r--
mtx
1.15
KB
-rw-r--r--
munin-node-configure
752
B
-rw-r--r--
munin-run
645
B
-rw-r--r--
munin-update
652
B
-rw-r--r--
munindoc
320
B
-rw-r--r--
mussh
1.16
KB
-rw-r--r--
mutt
4.35
KB
-rw-r--r--
muttng
4.35
KB
-rw-r--r--
mypy
1.4
KB
-rw-r--r--
mysql
2.6
KB
-rw-r--r--
mysqladmin
1.72
KB
-rw-r--r--
namei
500
B
-rw-r--r--
nc
1.2
KB
-rw-r--r--
ncal
926
B
-rw-r--r--
ncftp
627
B
-rw-r--r--
nethogs
556
B
-rw-r--r--
netplan
2.72
KB
-rw-r--r--
networkctl
2.47
KB
-rw-r--r--
newlist
586
B
-rw-r--r--
newusers
658
B
-rw-r--r--
ngrep
849
B
-rw-r--r--
nmap
1.58
KB
-rw-r--r--
nmh
5.94
KB
-rw-r--r--
nproc
499
B
-rw-r--r--
nsenter
1.16
KB
-rw-r--r--
nslookup
1.97
KB
-rw-r--r--
nsupdate
881
B
-rw-r--r--
ntpdate
711
B
-rw-r--r--
oggdec
872
B
-rw-r--r--
op
1.47
KB
-rw-r--r--
openssl
4.88
KB
-rw-r--r--
opera
1.39
KB
-rw-r--r--
optipng
1.15
KB
-rw-r--r--
p4
1.37
KB
-rw-r--r--
pack200
2.21
KB
-rw-r--r--
partx
1.27
KB
-rw-r--r--
passwd
551
B
-rw-r--r--
patch
1.74
KB
-rw-r--r--
pbzip2
1.04
KB
-rw-r--r--
pccardctl
378
B
-rw-r--r--
pdftotext
978
B
-rw-r--r--
pdlzip
1.12
KB
-rw-r--r--
perl
4.18
KB
-rw-r--r--
perlcritic
1.32
KB
-rw-r--r--
perldoc
4.18
KB
-rw-r--r--
perltidy
1.88
KB
-rw-r--r--
pgrep
1.61
KB
-rw-r--r--
phing
2.73
KB
-rw-r--r--
pidof
530
B
-rw-r--r--
pigz
1.13
KB
-rw-r--r--
pine
899
B
-rw-r--r--
pinfo
1.88
KB
-rw-r--r--
ping
1.95
KB
-rw-r--r--
ping6
1.95
KB
-rw-r--r--
pivot_root
387
B
-rw-r--r--
pkcon
2.67
KB
-rwxr-xr-x
pkg-config
1.28
KB
-rw-r--r--
pkg-get
2.2
KB
-rw-r--r--
pkg_deinstall
483
B
-rw-r--r--
pkg_delete
483
B
-rw-r--r--
pkg_info
483
B
-rw-r--r--
pkgadd
1.72
KB
-rw-r--r--
pkgnames
732
B
-rw-r--r--
pkgrm
1.03
KB
-rw-r--r--
pkgtool
846
B
-rw-r--r--
pkgutil
3.86
KB
-rw-r--r--
pkill
1.61
KB
-rw-r--r--
plague-client
409
B
-rw-r--r--
plotchangelog
878
B
-rw-r--r--
plzip
1.12
KB
-rw-r--r--
pm-hibernate
321
B
-rw-r--r--
pm-is-supported
336
B
-rw-r--r--
pm-powersave
282
B
-rw-r--r--
pm-suspend
321
B
-rw-r--r--
pm-suspend-hybrid
321
B
-rw-r--r--
pmake
6.04
KB
-rw-r--r--
pngfix
814
B
-rw-r--r--
portinstall
895
B
-rw-r--r--
portsnap
498
B
-rw-r--r--
portupgrade
469
B
-rw-r--r--
postalias
956
B
-rw-r--r--
postcat
869
B
-rw-r--r--
postconf
811
B
-rw-r--r--
postfix
761
B
-rw-r--r--
postmap
956
B
-rw-r--r--
postsuper
1.51
KB
-rw-r--r--
povray
2.01
KB
-rw-r--r--
ppc-koji
6.21
KB
-rw-r--r--
prelink
938
B
-rw-r--r--
printenv
466
B
-rw-r--r--
prlimit
1.3
KB
-rw-r--r--
pro
1.98
KB
-rw-r--r--
protoc
1.47
KB
-rw-r--r--
psql
4.27
KB
-rw-r--r--
pts-subscribe
732
B
-rw-r--r--
pts-unsubscribe
732
B
-rw-r--r--
puppet
9.77
KB
-rw-r--r--
puppetca
9.77
KB
-rw-r--r--
puppetd
9.77
KB
-rw-r--r--
puppetdoc
9.77
KB
-rw-r--r--
puppetmasterd
9.77
KB
-rw-r--r--
puppetqd
9.77
KB
-rw-r--r--
puppetrun
9.77
KB
-rw-r--r--
pv
755
B
-rw-r--r--
pvchange
19.01
KB
-rw-r--r--
pvcreate
19.01
KB
-rw-r--r--
pvdisplay
19.01
KB
-rw-r--r--
pvmove
19.01
KB
-rw-r--r--
pvremove
19.01
KB
-rw-r--r--
pvs
19.01
KB
-rw-r--r--
pvscan
19.01
KB
-rw-r--r--
pwck
386
B
-rw-r--r--
pwd
448
B
-rw-r--r--
pwdx
489
B
-rw-r--r--
pwgen
603
B
-rw-r--r--
pxz
1.48
KB
-rw-r--r--
py.test
4.16
KB
-rw-r--r--
py.test-2
4.16
KB
-rw-r--r--
py.test-3
4.16
KB
-rw-r--r--
pycodestyle
733
B
-rw-r--r--
pydoc
1.02
KB
-rw-r--r--
pydoc3
1.02
KB
-rw-r--r--
pydocstyle
839
B
-rw-r--r--
pyflakes
447
B
-rw-r--r--
pygmentize
1.03
KB
-rw-r--r--
pylint
3.25
KB
-rw-r--r--
pylint-2
3.25
KB
-rw-r--r--
pylint-3
3.25
KB
-rw-r--r--
pypy
1.73
KB
-rw-r--r--
pypy3
1.73
KB
-rw-r--r--
pytest
4.16
KB
-rw-r--r--
pytest-2
4.16
KB
-rw-r--r--
pytest-3
4.16
KB
-rw-r--r--
python
1.73
KB
-rw-r--r--
python2
1.73
KB
-rw-r--r--
python2.7
1.73
KB
-rw-r--r--
python3
1.73
KB
-rw-r--r--
python3.3
1.73
KB
-rw-r--r--
python3.4
1.73
KB
-rw-r--r--
python3.5
1.73
KB
-rw-r--r--
python3.6
1.73
KB
-rw-r--r--
python3.7
1.73
KB
-rw-r--r--
python3.8
1.73
KB
-rw-r--r--
python3.9
1.73
KB
-rw-r--r--
pyvenv
432
B
-rw-r--r--
pyvenv-3.4
432
B
-rw-r--r--
pyvenv-3.5
432
B
-rw-r--r--
pyvenv-3.6
432
B
-rw-r--r--
pyvenv-3.7
432
B
-rw-r--r--
pyvenv-3.8
432
B
-rw-r--r--
pyvenv-3.9
432
B
-rw-r--r--
qdbus
383
B
-rw-r--r--
qemu
3.25
KB
-rw-r--r--
qemu-kvm
3.25
KB
-rw-r--r--
qemu-system-i386
3.25
KB
-rw-r--r--
qemu-system-x86_64
3.25
KB
-rw-r--r--
qrunner
391
B
-rw-r--r--
querybts
1.23
KB
-rw-r--r--
quota
3.62
KB
-rw-r--r--
quotacheck
3.62
KB
-rw-r--r--
quotaoff
3.62
KB
-rw-r--r--
quotaon
3.62
KB
-rw-r--r--
radvdump
500
B
-rw-r--r--
rake
1.5
KB
-rw-r--r--
ralsh
9.77
KB
-rw-r--r--
rc-alert
732
B
-rw-r--r--
rcs
857
B
-rw-r--r--
rcsdiff
857
B
-rw-r--r--
rdesktop
1.6
KB
-rw-r--r--
rdict
1.76
KB
-rw-r--r--
readprofile
679
B
-rw-r--r--
remove_members
571
B
-rw-r--r--
removepkg
557
B
-rw-r--r--
renice
784
B
-rw-r--r--
reportbug
3.32
KB
-rw-r--r--
repquota
3.62
KB
-rw-r--r--
resizepart
605
B
-rw-r--r--
resolvconf
428
B
-rw-r--r--
resolvectl
5.72
KB
-rw-r--r--
rev
432
B
-rw-r--r--
rfcomm
9.38
KB
-rw-r--r--
ri
3.65
KB
-rw-r--r--
rlog
857
B
-rw-r--r--
rmadison
732
B
-rw-r--r--
rmlist
363
B
-rw-r--r--
rmmod
527
B
-rw-r--r--
route
781
B
-rw-r--r--
rpcdebug
994
B
-rw-r--r--
rpm
10.12
KB
-rw-r--r--
rpm2targz
368
B
-rw-r--r--
rpm2tgz
368
B
-rw-r--r--
rpm2txz
368
B
-rw-r--r--
rpmbuild
10.12
KB
-rw-r--r--
rpmbuild-md5
10.12
KB
-rw-r--r--
rpmcheck
512
B
-rw-r--r--
rrdtool
436
B
-rw-r--r--
rsync
3.48
KB
-rw-r--r--
rtcwake
1.06
KB
-rw-r--r--
runuser
892
B
-rw-r--r--
s390-koji
6.21
KB
-rw-r--r--
salsa
1.95
KB
-rw-r--r--
sbcl
675
B
-rw-r--r--
sbcl-mt
675
B
-rw-r--r--
sbopkg
1.73
KB
-rw-r--r--
scp
16.11
KB
-rw-r--r--
screen
3.29
KB
-rw-r--r--
script
1.04
KB
-rw-r--r--
scriptlive
762
B
-rw-r--r--
scriptreplay
917
B
-rw-r--r--
scrub
885
B
-rw-r--r--
sdptool
9.38
KB
-rw-r--r--
secret-tool
1.43
KB
-rw-r--r--
setarch
790
B
-rw-r--r--
setpriv
2.77
KB
-rw-r--r--
setquota
3.62
KB
-rw-r--r--
setsid
440
B
-rw-r--r--
setterm
2.53
KB
-rw-r--r--
sfdisk
2.07
KB
-rw-r--r--
sftp
16.11
KB
-rw-r--r--
sh
879
B
-rw-r--r--
shellcheck
1.63
KB
-rw-r--r--
sidedoor
16.11
KB
-rw-r--r--
sitecopy
1.29
KB
-rw-r--r--
slackpkg
3.41
KB
-rw-r--r--
slapt-get
2.44
KB
-rw-r--r--
slapt-src
1.85
KB
-rw-r--r--
slogin
16.11
KB
-rw-r--r--
smartctl
4.27
KB
-rw-r--r--
smbcacls
7.06
KB
-rw-r--r--
smbclient
7.06
KB
-rw-r--r--
smbcquotas
7.06
KB
-rw-r--r--
smbget
7.06
KB
-rw-r--r--
smbpasswd
7.06
KB
-rw-r--r--
smbtar
7.06
KB
-rw-r--r--
smbtree
7.06
KB
-rw-r--r--
snownews
363
B
-rw-r--r--
sparc-koji
6.21
KB
-rw-r--r--
spovray
2.01
KB
-rw-r--r--
sqlite3
902
B
-rw-r--r--
ss
1.11
KB
-rw-r--r--
ssh
16.11
KB
-rw-r--r--
ssh-add
677
B
-rw-r--r--
ssh-copy-id
684
B
-rw-r--r--
ssh-keygen
3.77
KB
-rw-r--r--
sshfs
567
B
-rw-r--r--
sshmitm
364
B
-rw-r--r--
sshow
498
B
-rw-r--r--
star
18.23
KB
-rw-r--r--
strace
3.23
KB
-rw-r--r--
stream
8.7
KB
-rw-r--r--
strings
1.13
KB
-rw-r--r--
su
892
B
-rw-r--r--
sudo
1.47
KB
-rw-r--r--
sudoedit
1.47
KB
-rw-r--r--
sv
843
B
-rw-r--r--
svcadm
4.99
KB
-rw-r--r--
svk
8.62
KB
-rw-r--r--
svn
48.39
KB
-rw-r--r--
svnadmin
48.39
KB
-rw-r--r--
svndumpfilter
48.39
KB
-rw-r--r--
svnlook
48.39
KB
-rw-r--r--
svnversion
48.39
KB
-rw-r--r--
swaplabel
635
B
-rw-r--r--
swapoff
743
B
-rw-r--r--
swapon
1.96
KB
-rw-r--r--
sync_members
735
B
-rw-r--r--
synclient
592
B
-rw-r--r--
sysbench
4.01
KB
-rw-r--r--
sysctl
813
B
-rw-r--r--
systemctl
13.81
KB
-rw-r--r--
systemd-analyze
5.24
KB
-rw-r--r--
systemd-cat
1.68
KB
-rw-r--r--
systemd-cgls
2.1
KB
-rw-r--r--
systemd-cgtop
1.86
KB
-rw-r--r--
systemd-delta
1.75
KB
-rw-r--r--
systemd-detect-virt
1.3
KB
-rw-r--r--
systemd-id128
2.1
KB
-rw-r--r--
systemd-path
1.7
KB
-rw-r--r--
systemd-resolve
2.66
KB
-rw-r--r--
systemd-run
5.31
KB
-rw-r--r--
tar
18.23
KB
-rw-r--r--
taskset
1.18
KB
-rw-r--r--
tc
26.82
KB
-rw-r--r--
tcpdump
1.62
KB
-rw-r--r--
tcpkill
440
B
-rw-r--r--
tcpnice
431
B
-rw-r--r--
tightvncviewer
2.91
KB
-rw-r--r--
timedatectl
2.87
KB
-rw-r--r--
timeout
1008
B
-rw-r--r--
tipc
8.09
KB
-rw-r--r--
tox
1.4
KB
-rw-r--r--
tracepath
564
B
-rw-r--r--
tracepath6
564
B
-rw-r--r--
transition-check
732
B
-rw-r--r--
tshark
4.12
KB
-rw-r--r--
tsig-keygen
644
B
-rw-r--r--
tune2fs
1.71
KB
-rw-r--r--
typeset
1.24
KB
-rw-r--r--
ua
1.98
KB
-rw-r--r--
uclampset
665
B
-rw-r--r--
udevadm
7.99
KB
-rw-r--r--
ufw
2.44
KB
-rw-r--r--
ul
655
B
-rw-r--r--
ulimit
879
B
-rw-r--r--
umount
1.67
KB
-rw-r--r--
unace
472
B
-rw-r--r--
unpack200
1.22
KB
-rw-r--r--
unrar
615
B
-rw-r--r--
unshare
936
B
-rw-r--r--
unshunt
347
B
-rw-r--r--
update-alternatives
2.4
KB
-rw-r--r--
update-initramfs
581
B
-rw-r--r--
update-java-alternatives
2.01
KB
-rw-r--r--
update-rc.d
1.86
KB
-rw-r--r--
upgradepkg
803
B
-rw-r--r--
urlsnarf
507
B
-rw-r--r--
uscan
1.76
KB
-rw-r--r--
useradd
1.25
KB
-rw-r--r--
userdel
545
B
-rw-r--r--
usermod
1.36
KB
-rw-r--r--
utmpdump
475
B
-rw-r--r--
uuidd
862
B
-rw-r--r--
uuidgen
657
B
-rw-r--r--
uuidparse
727
B
-rw-r--r--
uupdate
1.24
KB
-rw-r--r--
valgrind
3.42
KB
-rw-r--r--
vgcfgbackup
19.01
KB
-rw-r--r--
vgcfgrestore
19.01
KB
-rw-r--r--
vgchange
19.01
KB
-rw-r--r--
vgck
19.01
KB
-rw-r--r--
vgconvert
19.01
KB
-rw-r--r--
vgcreate
19.01
KB
-rw-r--r--
vgdisplay
19.01
KB
-rw-r--r--
vgexport
19.01
KB
-rw-r--r--
vgextend
19.01
KB
-rw-r--r--
vgimport
19.01
KB
-rw-r--r--
vgmerge
19.01
KB
-rw-r--r--
vgmknodes
19.01
KB
-rw-r--r--
vgreduce
19.01
KB
-rw-r--r--
vgremove
19.01
KB
-rw-r--r--
vgrename
19.01
KB
-rw-r--r--
vgs
19.01
KB
-rw-r--r--
vgscan
19.01
KB
-rw-r--r--
vgsplit
19.01
KB
-rw-r--r--
vigr
444
B
-rw-r--r--
vipw
444
B
-rw-r--r--
vmstat
701
B
-rw-r--r--
vncviewer
2.91
KB
-rw-r--r--
vpnc
2.27
KB
-rw-r--r--
wall
634
B
-rw-r--r--
watch
1.15
KB
-rw-r--r--
wdctl
1.34
KB
-rw-r--r--
webmitm
364
B
-rw-r--r--
wget
6.48
KB
-rw-r--r--
what-patch
371
B
-rw-r--r--
whatis
2.94
KB
-rw-r--r--
whereis
535
B
-rw-r--r--
whiptail
345
B
-rw-r--r--
who-uploads
732
B
-rw-r--r--
whodepends
732
B
-rw-r--r--
wine
535
B
-rw-r--r--
wine-development
535
B
-rw-r--r--
wine-stable
535
B
-rw-r--r--
wipefs
1.21
KB
-rw-r--r--
withlist
411
B
-rw-r--r--
wnpp-alert
732
B
-rw-r--r--
wnpp-check
732
B
-rw-r--r--
wodim
3.5
KB
-rw-r--r--
wol
1.16
KB
-rw-r--r--
wsimport
1.1
KB
-rw-r--r--
wtf
937
B
-rw-r--r--
wvdial
1.25
KB
-rw-r--r--
xdg-mime
2.17
KB
-rw-r--r--
xdg-settings
757
B
-rw-r--r--
xfreerdp
2.05
KB
-rw-r--r--
xgamma
2.01
KB
-rw-r--r--
xhost
378
B
-rw-r--r--
xmllint
1.24
KB
-rw-r--r--
xmlwf
694
B
-rw-r--r--
xmms
695
B
-rw-r--r--
xmodmap
437
B
-rw-r--r--
xpovray
2.01
KB
-rw-r--r--
xrandr
2.18
KB
-rw-r--r--
xrdb
512
B
-rw-r--r--
xsltproc
1.2
KB
-rw-r--r--
xvfb-run
886
B
-rw-r--r--
xvnc4viewer
2.91
KB
-rw-r--r--
xxd
491
B
-rw-r--r--
xz
1.48
KB
-rw-r--r--
xzdec
639
B
-rw-r--r--
ypcat
759
B
-rw-r--r--
ypmatch
759
B
-rw-r--r--
yum-arch
357
B
-rw-r--r--
zopfli
677
B
-rw-r--r--
zopflipng
920
B
-rw-r--r--
zramctl
1.26
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : svndumpfilter
# ------------------------------------------------------------ # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # ------------------------------------------------------------ # Programmable completion for the Subversion svn command under bash. Source # this file (or on some systems add it to ~/.bash_completion and start a new # shell) and bash's completion mechanism will know all about svn's options! # Provides completion for the svnadmin, svndumpfilter, svnlook and svnsync # commands as well. Who wants to read man pages/help text... # Known to work with bash 3.* with programmable completion and extended # pattern matching enabled (use 'shopt -s extglob progcomp' to enable # these if they are not already enabled). shopt -s extglob # Tree helper functions which only use bash, to ease readability. # look for value associated to key from stdin in K/V hash file format # val=$(_svn_read_hashfile svn:realmstring < some/file) function _svn_read_hashfile() { local tkey=$1 key= val= while true; do read tag len [ $tag = 'END' ] && break [ $tag != 'K' ] && { #echo "unexpected tag '$tag' instead of 'K'" >&2 return } read -r -n $len key ; read read tag len [ $tag != 'V' ] && { #echo "unexpected tag '$tag' instead of 'V'" >&2 return } read -r -n $len val ; read if [[ $key = $tkey ]] ; then echo "$val" return fi done #echo "target key '$tkey' not found" >&2 } # _svn_grcut shell-regular-expression # extract filenames from 'svn status' output function _svn_grcut() { local re=$1 line= old_IFS # fix IFS, so that leading spaces are not ignored by next read. # (there is a leading space in svn status output if only a prop is changed) old_IFS="$IFS" IFS=$'\n' while read -r line ; do [[ ! $re || $line == $re ]] && echo "${line/????????/}" done IFS="$old_IFS" } # extract stuff from svn info output # _svn_info (URL|Repository Root) function _svn_info() { local what=$1 line= LANG=C LC_MESSAGES=C svn info --non-interactive 2> /dev/null | \ while read line ; do [[ $line == *"$what: "* ]] && echo ${line#*: } done } # broken since svn 1.7 | FIXME: change to svn status -v ? # _svn_lls (dir|file|all) files... # list svn-managed files from list # some 'svn status --all-files' would be welcome here? function _svn_lls() { local opt=$1 f= shift for f in "$@" ; do # could try to check in .svn/entries? hmmm... if [[ $opt == @(dir|all) && -d "$f" ]] ; then echo "$f/" elif [[ $opt == @(file|all) ]] ; then # split f in directory/file names local dn= fn="$f" [[ "$f" == */* ]] && dn=${f%\/*}/ fn=${f##*\/} # ??? this does not work for just added files, because they # do not have a content reference yet... [ -f "${dn}.svn/text-base/${fn}.svn-base" ] && echo "$f" fi done } # try to complete TARGET # 1. [nothing] lists available protocols # 2. svn+ssh:// lists servers from .ssh/known_hosts # 3. http[s]:// lists already used svn servers # 4. file:// lists files from dir # 5. ^/ or protocol except file:/ triggers svn ls # this code expects bash 4, $cur is split by : too # # $1 'all' | 'remote_only' # return true if found something function _svn_complete_target() { # echo -e "\n_svn_complete_target: [$cur] 1:[${COMP_WORDS[COMP_CWORD]}] 2:[${COMP_WORDS[COMP_CWORD-1]}] 3:[${COMP_WORDS[COMP_CWORD-2]}] | [${COMP_WORDS[@]}] [$COMP_WORDBREAKS]" local prefix=${COMP_WORDS[COMP_CWORD-2]} local colon=${COMP_WORDS[COMP_CWORD-1]} # see about COMP_WORDBREAKS workaround in prop completion if [[ $prefix == "file" && "$colon" == ":" ]] then # file completion for file:// urls COMPREPLY=( $(compgen -d -S '/' -X '*/.*' -- $cur ) ) return elif [[ ( $1 == "all" && $cur == ^/* ) || ( "$colon" == ":" && $cur == //*/* ) ]] then # we already have a protocol and host: autocomplete for svn ls ^/bla | svn ls remote_url | svn checkout remote_url local p if [ "$colon" == ":" ] ; then p="$prefix$colon" fi if [[ $cur =~ ((.*/)([^/]*)) ]] # url = everything up to the last / then local url="${BASH_REMATCH[2]}" local path="${BASH_REMATCH[3]}" local remote_files="$(svn ls --non-interactive "$p$url" 2> /dev/null )" COMPREPLY=( $(compgen -P "$url" -W "$remote_files" -- "$path" ) ) compopt -o nospace return 0 fi elif [[ "$colon" == ":" ]] then # get known servers # svn+ssh:// if [[ $prefix == "svn+ssh" && $cur =~ (^//(.*)) ]] ; then local server_start=${BASH_REMATCH[2]} # debian & suse: /usr/share/bash-completion/bash_completion local suffix=/ _known_hosts_real -p // "$server_start" else local urls= file= for file in ~/.subversion/auth/svn.simple/* ; do if [ -r $file ] ; then local url=$(_svn_read_hashfile svn:realmstring < $file) url=${url/*</} url=${url/>*/} urls="$urls $url" fi done # only suggest/show possible suffixes local suffix=$cur c= choices= for c in $urls ; do [[ $c == $prefix:* ]] && choices="$choices ${c#*:}" done COMPREPLY=( $(compgen -W "$choices" -- $suffix ) ) fi compopt -o nospace return else # show schemas if [ $1 == 'all' ] ; then COMPREPLY=( $(compgen -W "^/ $urlSchemas" -- $cur) ) else COMPREPLY=( $(compgen -W "$urlSchemas" -- $cur) ) fi compopt -o nospace return fi #echo "nothing found" return 1 } # This completion guides the command/option order along the one suggested # by "svn help", although other syntaxes are allowed. # # - there is a "real" parser to check for what is available and deduce what # can be suggested further. # - the syntax should be coherent with subversion/svn/{cl.h,main.c} # - although it is not a good practice, mixed options and arguments # is supported by the completion as it is by the svn command. # - the completion works in the middle of a line, # but not really in the middle of an argument or option. # - property names are completed: see comments about issues related to handling # ":" within property names although it is a word completion separator. # - unknown properties are assumed to be simple file properties. # - --revprop and --revision options are forced to revision properties # as they are mandatory in this case. # - argument values are suggested to some other options, eg directory names # for --config-dir. # - values for some options can be extended with environment variables: # SVN_BASH_FILE_PROPS: other properties on files/directories # SVN_BASH_REV_PROPS: other properties on revisions # SVN_BASH_ENCODINGS: encodings to be suggested # SVN_BASH_MIME_TYPE: mime types to be suggested # SVN_BASH_KEYWORDS: "svn:keywords" substitutions to be suggested # SVN_BASH_USERNAME: usernames suggested for --username # SVN_BASH_COMPL_EXT: completion extensions for file arguments, based on the # current subcommand, so that for instance only modified files are # suggested for 'revert', only not svn-managed files for 'add', and so on. # Possible values are: # - username: guess usernames from ~/.subversion/auth/... # - urls: guess urls from ~/.subversion/auth/... or others # - svnstatus: use 'svn status' for completion # - recurse: allow recursion (expensive) # - externals: recurse into externals (very expensive) # Former options are reasonable, but beware that both later options # may be unadvisable if used on large working copies. # None of these costly completions are activated by default. # Argument completion outside a working copy results in an error message. # Filenames with spaces are not completed properly. # # TODO # - other options? # - obsolete options could be removed from auto-comp? (e.g. -N) # - obsolete commands could be removed? (e.g. resolved) # - completion does not work properly when editing in the middle of the line # status/previous are those at the end of the line, not at the entry position # - url completion should select more cases where it is relevant # - url completion of http:// schemas could suggest sub directories? # - add completion for experimental 'obliterate' feature? _svn() { local cur cmds cmdOpts pOpts mOpts rOpts qOpts nOpts optsParam opt COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} # Possible expansions, without pure-prefix abbreviations such as "up". cmds='add auth blame annotate praise cat changelist cl checkout co cleanup' cmds="$cmds commit ci copy cp delete remove rm diff export help import" cmds="$cmds info list ls lock log merge mergeinfo mkdir move mv rename" cmds="$cmds patch propdel pdel propedit pedit propget pget proplist" cmds="$cmds plist propset pset relocate resolve resolved revert status" cmds="$cmds switch unlock update upgrade" cmds="$cmds x-shelf-diff x-shelf-drop x-shelf-list x-shelf-list-by-paths" cmds="$cmds x-shelf-log x-shelf-save x-shelve x-shelves x-unshelve" # help options have a strange command status... local helpOpts='--help -h' # all special options that have a command status local specOpts="--version $helpOpts" # options that require a parameter # note: continued lines must end '|' continuing lines must start '|' optsParam="-r|--revision|--username|--password|--targets" optsParam="$optsParam|-x|--extensions|-m|--message|-F|--file" optsParam="$optsParam|--encoding|--diff-cmd|--diff3-cmd|--editor-cmd" optsParam="$optsParam|--old|--new|--config-dir|--config-option" optsParam="$optsParam|--native-eol|-l|--limit|-c|--change" optsParam="$optsParam|--depth|--set-depth|--with-revprop" optsParam="$optsParam|--cl|--changelist|--accept|--show-revs" optsParam="$optsParam|--show-item" # svn:* and other (env SVN_BASH_*_PROPS) properties local svnProps revProps allProps psCmds propCmds # svn and user configured "file" (or directory) properties # the "svn:mergeinfo" prop is not included by default because it is # managed automatically, so there should be no need to edit it by hand. svnProps="svn:keywords svn:executable svn:needs-lock svn:externals svn:ignore svn:eol-style svn:mime-type $SVN_BASH_FILE_PROPS" # svn and user configured revision properties revProps="svn:author svn:log svn:date $SVN_BASH_REV_PROPS" # all properties as an array variable allProps=( $svnProps $revProps ) # subcommands that expect property names psCmds='propset|pset|ps' propCmds="$psCmds|propget|pget|pg|propedit|pedit|pe|propdel|pdel|pd" # possible URL schemas to access a subversion server local urlSchemas='file:/// http:// https:// svn:// svn+ssh://' # Parse arguments and set various variables about what was found. # # cmd: the current command if available # isPropCmd: whether it expects a property name argument # isPsCmd: whether it also expects a property value argument # isHelpCmd: whether it is about help # nExpectArgs: how many arguments are expected by the command # help: help requested about this command (if cmd=='help') # prop: property name (if appropriate) # isRevProp: is it a special revision property # val: property value (if appropriate, under pset) # options: all options encountered # hasRevPropOpt: is --revprop set # hasRevisionOpt: is --revision set # hasRelocateOpt: is --relocate set # hasReintegrateOpt: is --reintegrate set # acceptOpt: the value of --accept # nargs: how many arguments were found # stat: status of parsing at the 'current' word # # prev: previous command in the loop # last: status of last parameter analyzed # i: index local cmd= isPropCmd= isPsCmd= isHelpCmd= nExpectArgs= isCur= i=0 local prev= help= prop= val= isRevProp= last='none' nargs=0 stat= local options= hasRevPropOpt= hasRevisionOpt= hasRelocateOpt= local acceptOpt= URL= hasReintegrateOpt= for opt in "${COMP_WORDS[@]}" do # get status of current word (from previous iteration) [[ $isCur ]] && stat=$last # are we processing the current word isCur= [[ $i -eq $COMP_CWORD ]] && isCur=1 let i++ # FIRST must be the "svn" command [ $last = 'none' ] && { last='first'; continue ; } # SKIP option arguments if [[ $prev == @($optsParam) ]] ; then # record accept value [[ $prev = '--accept' ]] && acceptOpt=$opt prev='' last='skip' continue ; fi # Argh... This looks like a bash bug... # Redirections are passed to the completion function # although it is managed by the shell directly... # It matters because we want to tell the user when no more # completion is available, so it does not necessary # fallback to the default case. if [[ $prev == @(<|>|>>|[12]>|[12]>>) ]] ; then prev='' last='skip' continue ; fi prev=$opt # get the subCoMmanD if [[ ! $cmd && $opt \ && ( $opt != -* || $opt == @(${specOpts// /|}) ) ]] then cmd=$opt [[ $cmd == @($propCmds) ]] && isPropCmd=1 [[ $cmd == @($psCmds) ]] && isPsCmd=1 [[ $cmd == @(${helpOpts// /|}) ]] && cmd='help' [[ $cmd = 'help' ]] && isHelpCmd=1 # HELP about a command asked with an option if [[ $isHelpCmd && $cmd && $cmd != 'help' && ! $help ]] then help=$cmd cmd='help' fi last='cmd' continue fi # HELP about a command if [[ $isHelpCmd && ! $help && $opt && $opt != -* ]] then help=$opt last='help' continue fi # PROPerty name if [[ $isPropCmd && ! $prop && $opt && $opt != -* ]] then prop=$opt [[ $prop == @(${revProps// /|}) ]] && isRevProp=1 last='prop' continue fi # property VALue if [[ $isPsCmd && $prop && ! $val && $opt != -* ]] ; then val=$opt last='val' continue fi if [[ $last != 'onlyarg' ]] then # more OPTions case $opt in -r|--revision|--revision=*) hasRevisionOpt=1 ;; --revprop) hasRevPropOpt=1 # restrict to revision properties! allProps=( $revProps ) # on revprops, only one URL is expected nExpectArgs=1 ;; -h|--help) isHelpCmd=1 ;; -F|--file) val='-F' ;; --relocate) hasRelocateOpt=1 ;; --reintegrate) hasReintegrateOpt=1 ;; esac # no more options, only arguments, whatever they look like. if [[ $opt = '--' && ! $isCur ]] ; then last='onlyarg' continue fi # options are recorded... if [[ $opt == -* ]] ; then # but not the current one! [[ ! $isCur ]] && options="$options $opt " last='opt' continue fi else # onlyarg let nargs++ continue fi # then we have an argument if [[ $cmd = 'merge' && ! $URL ]] ; then # first argument is the source URL for the merge URL=$opt fi last='arg' let nargs++ done # end opt option processing... [[ $stat ]] || stat=$last # suggest all subcommands, including special help if [[ ! $cmd || $stat = 'cmd' ]] then COMPREPLY=( $( compgen -W "$cmds $specOpts" -- $cur ) ) return 0 fi # suggest all subcommands if [[ $stat = 'help' || ( $isHelpCmd && ! $help ) ]] then COMPREPLY=( $( compgen -W "$cmds" -- $cur ) ) return 0 fi # URL completion if [[ $cmd == @(co|checkout|ls|list) && $stat = 'arg' && \ $SVN_BASH_COMPL_EXT == *urls* ]] then if [[ $cmd == @(ls|list) ]] ; then _svn_complete_target 'all' && return else _svn_complete_target 'remote_only' && return fi fi if [[ $cmd = 'merge' || $cmd = 'mergeinfo' ]] then local here=$(_svn_info URL) # suggest a possible URL for merging if [[ ! $URL && $stat = 'arg' ]] ; then # we assume a 'standard' repos with branches and trunk if [[ "$here" == */branches/* ]] ; then # we guess that it is a merge from the trunk COMPREPLY=( $(compgen -W ${here/\/branches\/*/\/trunk} -- $cur ) ) return 0 elif [[ "$here" == */trunk* ]] ; then # we guess that it is a merge from a branch COMPREPLY=( $(compgen -W ${here/\/trunk*/\/branches\/} -- $cur ) ) compopt -o nospace return 0 else # no se, let us suggest the repository root... COMPREPLY=( $(compgen -W $(_svn_info Root)/ -- $cur ) ) compopt -o nospace return 0 fi # this part is broken with bash 4 URL contains https only elif [[ $URL == */branches/* && $here == */trunk* && \ ! $hasReintegrateOpt && $cur = '' && $stat = 'arg' ]] ; then # force --reintegrate only if the current word is empty COMPREPLY=( $(compgen -W '--reintegrate' -- $cur ) ) return 0 # autocomplete for svn merge ^/bla else _svn_complete_target 'all' && return fi fi # help about option arguments if [[ $stat = 'skip' ]] then local previous=${COMP_WORDS[COMP_CWORD-1]} local values= dirs= beep= exes= [[ $previous = '--config-dir' ]] && dirs=1 # external editor, diff, diff3... [[ $previous = --*-cmd ]] && exes=1 [[ $previous = '--native-eol' ]] && values='LF CR CRLF' # just to suggest that a number is expected. hummm. [[ $previous = '--limit' ]] && values='0 1 2 3 4 5 6 7 8 9' # some special partial help about --revision option. [[ $previous = '--revision' || $previous = '-r' ]] && \ values='HEAD BASE PREV COMMITTED 0 {' [[ $previous = '--encoding' ]] && \ values="latin1 utf8 $SVN_BASH_ENCODINGS" [[ $previous = '--extensions' || $previous = '-x' ]] && \ values="--unified --ignore-space-change \ --ignore-all-space --ignore-eol-style --show-c-functions" [[ $previous = '--depth' ]] && \ values='empty files immediates infinity' [[ $previous = '--set-depth' ]] && \ values='empty exclude files immediates infinity' [[ $previous = '--accept' ]] && \ { # the list is different for 'resolve' if [[ $cmd = 'resolve' ]] ; then # from svn help resolve values='base working mine-full theirs-full' else # checkout merge switch update values="postpone base mine-full theirs-full edit launch \ mine-conflict theirs-conflict" fi } [[ $previous = '--show-revs' ]] && values='merged eligible' [[ $previous = '--show-item' ]] && values="kind url relative-url \ repos-root-url repos-uuid revision last-changed-revision \ last-changed-date last-changed-author wc-root" if [[ $previous = '--username' ]] ; then values="$SVN_BASH_USERNAME" if [[ $SVN_BASH_COMPL_EXT == *username* ]] ; then local file= # digest? others? for file in ~/.subversion/auth/svn.simple/* ; do if [ -r $file ] ; then values="$values $(_svn_read_hashfile username < $file)" fi done fi [[ ! "$values" ]] && beep=1 fi # could look at ~/.subversion/ ? # hmmm... this option should not exist [[ $previous = '--password' ]] && beep=1 # TODO: provide help about other options such as: # --old --new --with-revprop # if the previous option required a parameter, do something # or fallback on ordinary filename expansion [[ $values ]] && COMPREPLY=( $( compgen -W "$values" -- $cur ) ) [[ $dirs ]] && COMPREPLY=( $( compgen -o dirnames -- $cur ) ) [[ $exes ]] && COMPREPLY=( $( compgen -c -- $cur ) ) [[ $beep ]] && { # 'no known completion'. hummm. echo -en "\a" COMPREPLY=( '' ) } return 0 fi # provide allowed property names after property commands if [[ $isPropCmd && ( ! $prop || $stat = 'prop' ) && $cur != -* ]] then # # Ok, this part is pretty ugly. # # The issue is that ":" is a completion word separator, # which is a good idea for file:// urls but not within # property names... # # The first idea was to remove locally ":" from COMP_WORDBREAKS # and then put it back in all cases but in property name # completion. It does not always work. There is a strange bug # where one may get "svn:svn:xxx" in some unclear cases. # # Thus the handling is reprogrammed here... # The code assumes that property names look like *:*, # but it also works reasonably well with simple names. # # This hack is broken in bash4... not sure what to do about it, # especially while keeping the bash3 compatibility:-( local choices= if [[ $cur == *:* ]] then # only suggest/show possible suffixes local prefix=${cur%:*} suffix=${cur#*:} c= for c in ${allProps[@]} ; do [[ $c == $prefix:* ]] && choices="$choices ${c#*:}" done # everything will be appended to the prefix because ':' is # a separator, so cur is restricted to the suffix part. cur=$suffix else # only one choice is fine COMPREPLY=( $( compgen -W "${allProps[*]}" -- $cur ) ) [ ${#COMPREPLY[@]} -eq 1 ] && return 0 # no ':' so only suggest prefixes? local seen= n=0 last= c= for c in ${allProps[@]%:*} ; do # do not put the same prefix twice... if [[ $c == $cur* && ( ! $seen || $c != @($seen) ) ]] then let n++ last=$c choices="$choices $c:" if [[ $seen ]] then seen="$seen|$c*" else seen="$c*" fi fi done # supply two choices to force a partial completion and a beep [[ $n -eq 1 ]] && choices="$last:1 $last:2" fi COMPREPLY=( $( compgen -W "$choices" -- $cur ) ) return 0 fi # force mandatory --revprop option on revision properties if [[ $isRevProp && ! $hasRevPropOpt ]] then COMPREPLY=( $( compgen -W '--revprop' -- $cur ) ) return 0 fi # force mandatory --revision option on revision properties if [[ $isRevProp && $hasRevPropOpt && ! $hasRevisionOpt ]] then COMPREPLY=( $( compgen -W '--revision' -- $cur ) ) return 0 fi # possible completion when setting property values if [[ $isPsCmd && $prop && ( ! $val || $stat = 'val' ) ]] then # ' is a reminder for an arbitrary value local values="\' --file" case $prop in svn:keywords) # just a subset? values="Id Rev URL Date Author Header \' $SVN_BASH_KEYWORDS" ;; svn:executable|svn:needs-lock) # hmmm... canonical value * is special to the shell. values='\\*' ;; svn:eol-style) values='native LF CR CRLF' ;; svn:mime-type) # could read /etc/mime.types if available. overkill. values="text/ text/plain text/html text/xml text/rtf image/ image/png image/gif image/jpeg image/tiff audio/ audio/midi audio/mpeg video/ video/mpeg video/mp4 application/ application/octet-stream $SVN_BASH_MIME_TYPE" ;; esac COMPREPLY=( $( compgen -W "$values" -- $cur ) ) # special case for --file... return even if within an option [[ ${COMPREPLY} ]] && return 0 fi # maximum number of additional arguments expected in various forms case $cmd in merge) nExpectArgs=3 ;; mergeinfo) nExpectArgs=1 ;; copy|cp|move|mv|rename|ren|export|import) nExpectArgs=2 ;; switch|sw) [[ ! $hasRelocateOpt ]] && nExpectArgs=2 ;; help|h) nExpectArgs=0 ;; --version) nExpectArgs=0 ;; esac # the maximum number of arguments is reached for a command if [[ $nExpectArgs && $nargs -gt $nExpectArgs ]] then # some way to tell 'no completion at all'... is there a better one? # Do not say 'file completion' here. echo -en "\a" COMPREPLY=( '' ) return 0 fi # if not typing an option, # then fallback on filename expansion... if [[ $cur != -* || $stat = 'onlyarg' ]] ; then # do we allow possible expensive completion here? if [[ $SVN_BASH_COMPL_EXT == *svnstatus* ]] ; then # build status command and options # "--quiet" removes 'unknown' files local status='svn status --non-interactive' [[ $SVN_BASH_COMPL_EXT == *recurse* ]] || \ status="$status --non-recursive" # I'm not sure that it can work with externals in call cases # the output contains translatable sentences (even with quiet) [[ $SVN_BASH_COMPL_EXT == *externals* ]] || \ status="$status --ignore-externals" local cs= files= # subtlety: must not set $cur* if $cur is empty in some cases [[ $cur ]] && cs=$cur* # 'files' is set according to the current subcommand case $cmd in st*) # status completion must include all files files=$cur* ;; ci|commit|revert|di*) # anything edited files=$($status $cs| _svn_grcut '@([MADR!]*| M*|_M*)') ;; add) # unknown files files=$($status $cs| _svn_grcut '\?*') ;; unlock) # unlock locked files files=$($status $cs| _svn_grcut '@(??L*|?????[KOTB]*)') ;; resolve*) # files in conflict files=$($status $cs| _svn_grcut '@(?C*|C*)') ;; praise|blame|ann*) # any svn file but added files=$( _svn_lls all $cur* ) ;; p*) # prop commands if [[ $cmd == @($propCmds) && \ $prop == @(svn:ignore|svn:externals) ]] ; then # directory specific props files=$( _svn_lls dir . $cur* ) else # ??? added directories appear twice: foo foo/ files="$( _svn_lls all $cur* ) $($status $cs | _svn_grcut 'A*' )" fi ;; info) # information on any file files="$( _svn_lls all $cur* ) $($status $cs | _svn_grcut 'A*' )" ;; remove|rm|del*|move|mv|rename) # changing existing files files=$( _svn_lls all $cur* ) ;; mkdir) # completion in mkdir can only be for subdirs? files=$( _svn_lls dir $cur* ) ;; log|lock|up*|cl*|switch) # misc, all but added files files=$( _svn_lls all $cur* ) ;; merge) # may do a better job? URL/WCPATH files=$( _svn_lls all $cur* ) ;; ls|list) # better job? what about URLs? files=$( _svn_lls all $cur* ) ;; *) # other commands: changelist export import cat mergeinfo local fallback=1 ;; esac # when not recursive, some relevant files may exist # within subdirectories, so they are added here. # should it be restricted to svn-managed subdirs? no?? if [[ $SVN_BASH_COMPL_EXT != *recurse* ]] ; then files="$files $( _svn_lls dir $cur* )" fi # set completion depending on computed 'files' if [[ $files ]] ; then COMPREPLY=( $( compgen -W "$files" -- $cur ) ) # if empty, set to nope? [[ "${COMPREPLY[*]}" ]] || COMPREPLY=( '' ) elif [[ ! $fallback ]] ; then # this suggests no completion... echo -en "\a" COMPREPLY=( '' ) fi fi # else fallback to ordinary filename completion... return 0 fi # otherwise build possible options for the command pOpts="--username --password --no-auth-cache --non-interactive \ --password-from-stdin \ --trust-server-cert-failures \ --force-interactive" mOpts="-m --message -F --file --encoding --force-log --with-revprop \ --editor-cmd" rOpts="-r --revision" qOpts="-q --quiet" nOpts="-N --non-recursive --depth" gOpts="-g --use-merge-history" cOpts="--cl --changelist" cmdOpts= case $cmd in --version) cmdOpts="$qOpts" ;; add) cmdOpts="--auto-props --no-auto-props --force --targets \ --no-ignore --parents $nOpts $qOpts $pOpts" ;; auth) cmdOpts="--remove --show-passwords $pOpts" ;; blame|annotate|ann|praise) cmdOpts="$rOpts $pOpts -v --verbose --incremental --xml \ -x --extensions --force $gOpts" ;; cat) cmdOpts="$rOpts $pOpts --ignore-keywords" ;; changelist|cl) cmdOpts="--targets $pOpts $qOpts $cOpts \ -R --recursive --depth --remove" ;; checkout|co) cmdOpts="$rOpts $qOpts $nOpts $pOpts --ignore-externals \ --force" ;; cleanup) cmdOpts="$pOpts --include-externals -q --quiet\ --remove-ignored --remove-unversioned --vacuum-pristines" ;; commit|ci) cmdOpts="$mOpts $qOpts $nOpts --targets $pOpts \ --no-unlock $cOpts --keep-changelists \ --include-externals" ;; copy|cp) cmdOpts="$mOpts $rOpts $qOpts $pOpts --parents \ --ignore-externals --pin-externals" ;; delete|del|remove|rm) cmdOpts="--force $mOpts $qOpts --targets $pOpts \ --keep-local" ;; diff|di) cmdOpts="$rOpts -x --extensions --diff-cmd --no-diff-deleted \ $nOpts $pOpts --force --old --new --notice-ancestry \ -c --change --summarize $cOpts --xml --git \ --internal-diff --show-copies-as-adds \ --ignore-properties --properties-only --no-diff-added \ --patch-compatible" ;; export) cmdOpts="$rOpts $qOpts $pOpts $nOpts --force --native-eol \ --ignore-externals --ignore-keywords" ;; help|h|\?) cmdOpts= ;; import) cmdOpts="--auto-props --no-auto-props $mOpts $qOpts $nOpts \ --no-ignore $pOpts --force" ;; info) cmdOpts="$pOpts $rOpts --targets -R --recursive --depth \ --include-externals --incremental --xml \ --show-item --no-newline $cOpts" ;; list|ls) cmdOpts="$rOpts -v --verbose -R --recursive $pOpts \ --incremental --search --xml --depth \ --include-externals" ;; lock) cmdOpts="-m --message -F --file --encoding --force-log \ $qOpts --targets --force $pOpts" ;; log) cmdOpts="$rOpts -v --verbose --targets $pOpts --stop-on-copy \ --incremental --xml $qOpts -l --limit -c --change \ $gOpts --with-all-revprops --with-revprop --depth \ --diff --diff-cmd -x --extensions --internal-diff \ --with-no-revprops --search --search-and" ;; merge) cmdOpts="$rOpts $nOpts $qOpts --force --dry-run --diff3-cmd \ $pOpts --ignore-ancestry -c --change -x --extensions \ --record-only --accept \ --allow-mixed-revisions -v --verbose" ;; mergeinfo) cmdOpts="$rOpts $pOpts --depth --show-revs -R --recursive \ $qOpts -v --verbose --incremental --log" ;; mkdir) cmdOpts="$mOpts $qOpts $pOpts --parents" ;; move|mv|rename|ren) cmdOpts="$mOpts $qOpts --force $pOpts \ --parents --allow-mixed-revisions" ;; patch) cmdOpts="$qOpts $pOpts --dry-run --ignore-whitespace \ --reverse-diff --strip" ;; propdel|pdel|pd) cmdOpts="$qOpts -R --recursive $rOpts $pOpts $cOpts \ --depth" [[ $isRevProp || ! $prop ]] && cmdOpts="$cmdOpts --revprop" ;; propedit|pedit|pe) cmdOpts="$pOpts $mOpts --force" [[ $isRevProp || ! $prop ]] && \ cmdOpts="$cmdOpts --revprop $rOpts" ;; propget|pget|pg) cmdOpts="-v --verbose -R --recursive $rOpts --no-newline \ $pOpts $cOpts --depth --xml --show-inherited-props" [[ $isRevProp || ! $prop ]] && cmdOpts="$cmdOpts --revprop" ;; proplist|plist|pl) cmdOpts="-v --verbose -R --recursive $rOpts --revprop $qOpts \ $pOpts $cOpts --depth --xml --show-inherited-props" ;; propset|pset|ps) cmdOpts="$qOpts --targets -R --recursive \ --encoding $pOpts --force $cOpts --depth" [[ $isRevProp || ! $prop ]] && \ cmdOpts="$cmdOpts --revprop $rOpts" [[ $val ]] || cmdOpts="$cmdOpts -F --file" ;; relocate) cmdOpts="--ignore-externals $pOpts" ;; resolve) cmdOpts="--targets -R --recursive $qOpts $pOpts --accept \ --depth" ;; resolved) cmdOpts="--targets -R --recursive $qOpts $pOpts --depth" ;; revert) cmdOpts="--targets -R --recursive $qOpts $cOpts \ --depth $pOpts" ;; status|stat|st) cmdOpts="-u --show-updates -v --verbose $nOpts $qOpts $pOpts \ --no-ignore --ignore-externals --incremental --xml \ $rOpts $cOpts" ;; switch|sw) cmdOpts="$rOpts $nOpts $qOpts $pOpts --diff3-cmd \ --force --accept --ignore-externals --set-depth \ --ignore-ancestry" ;; unlock) cmdOpts="$qOpts --targets --force $pOpts" ;; update|up) cmdOpts="$rOpts $nOpts $qOpts $pOpts --diff3-cmd \ --ignore-externals --force --accept $cOpts \ --parents --editor-cmd --set-depth \ --adds-as-modification" ;; upgrade) cmdOpts="$qOpts $pOpts" ;; x-shelf-list-by-paths) cmdOpts="$pOpts" ;; x-shelf-diff) cmdOpts="$pOpts --summarize" ;; x-shelf-drop) cmdOpts="$pOpts" ;; x-shelf-list|x-shelves) cmdOpts="$qOpts $pOpts" ;; x-shelf-log) cmdOpts="$qOpts $pOpts" ;; x-shelf-save) cmdOpts="--dry-run \ --depth --targets $cOpts \ $mOpts \ $qOpts $pOpts" ;; x-shelve) cmdOpts="--keep-local --dry-run \ --depth --targets $cOpts \ $mOpts \ $qOpts $pOpts" ;; x-unshelve) cmdOpts="--drop --dry-run \ $qOpts $pOpts" ;; *) ;; esac # add options that are nearly always available [[ "$cmd" != "--version" ]] && cmdOpts="$cmdOpts $helpOpts" cmdOpts="$cmdOpts --config-dir --config-option" # --accept (edit|launch) incompatible with --non-interactive if [[ $acceptOpt == @(edit|launch) ]] ; then cmdOpts=${cmdOpts/ --non-interactive / } fi # take out options already given for opt in $options do local optBase # remove leading dashes and arguments case $opt in --*) optBase=${opt/=*/} ;; -*) optBase=${opt:0:2} ;; esac cmdOpts=" $cmdOpts " cmdOpts=${cmdOpts/ ${optBase} / } # take out alternatives and mutually exclusives case $optBase in -v) cmdOpts=${cmdOpts/ --verbose / } ;; --verbose) cmdOpts=${cmdOpts/ -v / } ;; -N) cmdOpts=${cmdOpts/ --non-recursive / } ;; --non-recursive) cmdOpts=${cmdOpts/ -N / } ;; -R) cmdOpts=${cmdOpts/ --recursive / } ;; --recursive) cmdOpts=${cmdOpts/ -R / } ;; -x) cmdOpts=${cmdOpts/ --extensions / } ;; --extensions) cmdOpts=${cmdOpts/ -x / } ;; -q) cmdOpts=${cmdOpts/ --quiet / } ;; --quiet) cmdOpts=${cmdOpts/ -q / } ;; -h) cmdOpts=${cmdOpts/ --help / } ;; --help) cmdOpts=${cmdOpts/ -h / } ;; -l) cmdOpts=${cmdOpts/ --limit / } ;; --limit) cmdOpts=${cmdOpts/ -l / } ;; -r) cmdOpts=${cmdOpts/ --revision / } ;; --revision) cmdOpts=${cmdOpts/ -r / } ;; -c) cmdOpts=${cmdOpts/ --change / } ;; --change) cmdOpts=${cmdOpts/ -c / } ;; --auto-props) cmdOpts=${cmdOpts/ --no-auto-props / } ;; --no-auto-props) cmdOpts=${cmdOpts/ --auto-props / } ;; -g) cmdOpts=${cmdOpts/ --use-merge-history / } ;; --use-merge-history) cmdOpts=${cmdOpts/ -g / } ;; -m|--message|-F|--file) cmdOpts=${cmdOpts/ --message / } cmdOpts=${cmdOpts/ -m / } cmdOpts=${cmdOpts/ --file / } cmdOpts=${cmdOpts/ -F / } ;; esac # remove help options within help subcommand if [ $isHelpCmd ] ; then cmdOpts=${cmdOpts/ -h / } cmdOpts=${cmdOpts/ --help / } fi done # provide help about available options COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) ) return 0 } complete -F _svn -o default -X '@(*/.svn|*/.svn/|.svn|.svn/)' svn _svnadmin () { local cur cmds cmdOpts optsParam opt helpCmds optBase i COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} # Possible expansions, without pure-prefix abbreviations such as "h". cmds='build-repcache crashtest create delrevprop deltify dump dump-revprops freeze \ help hotcopy info list-dblogs list-unused-dblogs \ load load-revprops lock lslocks lstxns pack recover rev-size rmlocks \ rmtxns setlog setrevprop setuuid unlock upgrade verify --version' if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( compgen -W "$cmds" -- $cur ) ) return 0 fi # options that require a parameter # note: continued lines must end '|' continuing lines must start '|' optsParam="-r|--revision|--parent-dir|--fs-type|-M|--memory-cache-size" optsParam="$optsParam|-F|--file|--exclude|--include" # if not typing an option, or if the previous option required a # parameter, then fallback on ordinary filename expansion helpCmds='help|--help|h|\?' if [[ ${COMP_WORDS[1]} != @($helpCmds) ]] && \ [[ "$cur" != -* ]] || \ [[ ${COMP_WORDS[COMP_CWORD-1]} == @($optsParam) ]] ; then return 0 fi cmdOpts= case ${COMP_WORDS[1]} in build-repcache) cmdOpts="-r --revision -q --quiet -M --memory-cache-size" ;; create) cmdOpts="--bdb-txn-nosync --bdb-log-keep --config-dir \ --fs-type --compatible-version" ;; deltify) cmdOpts="-r --revision -q --quiet -M --memory-cache-size" ;; dump) cmdOpts="-r --revision --incremental -q --quiet --deltas \ -M --memory-cache-size -F --file \ --exclude --include --pattern" ;; dump-revprops) cmdOpts="-r --revision -q --quiet -F --file" ;; freeze) cmdOpts="-F --file" ;; help|h|\?) cmdOpts="$cmds" ;; hotcopy) cmdOpts="--clean-logs --incremental -q --quiet" ;; load) cmdOpts="--ignore-uuid --force-uuid --parent-dir -q --quiet \ --use-pre-commit-hook --use-post-commit-hook \ --bypass-prop-validation -M --memory-cache-size \ --no-flush-to-disk --normalize-props -F --file \ --ignore-dates -r --revision" ;; load-revprops) cmdOpts="-r --revision -q --quiet -F --file \ --bypass-prop-validation --normalize-props \ --force-uuid --no-flush-to-disk" ;; lstxns) cmdOpts="-r --revision" ;; lock|unlock) cmdOpts="--bypass-hooks -q --quiet" ;; pack) cmdOpts="-M --memory-cache-size -q --quiet" ;; recover) cmdOpts="--wait" ;; rev-size) cmdOpts="-r --revision -M --memory-cache-size -q --quiet" ;; rmlocks) cmdOpts="-q --quiet" ;; rmtxns) cmdOpts="-q --quiet" ;; setlog) cmdOpts="-r --revision --bypass-hooks" ;; setrevprop|delrevprop) cmdOpts="-r --revision -t --transaction \ --use-pre-revprop-change-hook \ --use-post-revprop-change-hook" ;; verify) cmdOpts="-r --revision -t --transaction -q --quiet \ --check-normalization --keep-going \ -M --memory-cache-size --metadata-only" ;; *) ;; esac cmdOpts="$cmdOpts --help -h" # take out options already given for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do opt=${COMP_WORDS[$i]} case $opt in --*) optBase=${opt/=*/} ;; -*) optBase=${opt:0:2} ;; esac cmdOpts=" $cmdOpts " cmdOpts=${cmdOpts/ ${optBase} / } # take out alternatives case $optBase in -q) cmdOpts=${cmdOpts/ --quiet / } ;; --quiet) cmdOpts=${cmdOpts/ -q / } ;; -h) cmdOpts=${cmdOpts/ --help / } ;; --help) cmdOpts=${cmdOpts/ -h / } ;; -r) cmdOpts=${cmdOpts/ --revision / } ;; --revision) cmdOpts=${cmdOpts/ -r / } ;; -t) cmdOpts=${cmdOpts/ --transaction / } ;; --transaction) cmdOpts=${cmdOpts/ -t / } ;; -F) cmdOpts=${cmdOpts/ --file / } ;; --file) cmdOpts=${cmdOpts/ -F / } ;; -M) cmdOpts=${cmdOpts/ --memory-cache-size / } ;; --memory-cache-size) cmdOpts=${cmdOpts/ --M / } ;; esac # skip next option if this one requires a parameter if [[ $opt == @($optsParam) ]] ; then ((++i)) fi done COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) ) return 0 } complete -F _svnadmin -o default svnadmin _svndumpfilter () { local cur cmds cmdOpts optsParam opt helpCmds optBase i COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} # Possible expansions, without pure-prefix abbreviations such as "h". cmds='exclude help include --version' if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( compgen -W "$cmds" -- $cur ) ) return 0 fi # options that require a parameter # note: continued lines must end '|' continuing lines must start '|' optsParam="--targets" # if not typing an option, or if the previous option required a # parameter, then fallback on ordinary filename expansion helpCmds='help|--help|h|\?' if [[ ${COMP_WORDS[1]} != @($helpCmds) ]] && \ [[ "$cur" != -* ]] || \ [[ ${COMP_WORDS[COMP_CWORD-1]} == @($optsParam) ]] ; then return 0 fi cmdOpts= case ${COMP_WORDS[1]} in exclude|include) cmdOpts="--drop-empty-revs --drop-all-empty-revs --renumber-revs --skip-missing-merge-sources --targets --preserve-revprops --quiet --pattern" ;; help|h|\?) cmdOpts="$cmds" ;; *) ;; esac cmdOpts="$cmdOpts --help -h" # take out options already given for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do opt=${COMP_WORDS[$i]} case $opt in --*) optBase=${opt/=*/} ;; -*) optBase=${opt:0:2} ;; esac cmdOpts=" $cmdOpts " cmdOpts=${cmdOpts/ ${optBase} / } # take out alternatives case $optBase in -h) cmdOpts=${cmdOpts/ --help / } ;; --help) cmdOpts=${cmdOpts/ -h / } ;; esac # skip next option if this one requires a parameter if [[ $opt == @($optsParam) ]] ; then ((++i)) fi done COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) ) return 0 } complete -F _svndumpfilter -o default svndumpfilter _svnlook () { local cur cmds cmdOpts optsParam opt helpCmds optBase i COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} # Possible expansions, without pure-prefix abbreviations such as "h". cmds='author cat changed date diff dirs-changed filesize help history \ info lock log propget proplist tree uuid youngest --version' if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( compgen -W "$cmds" -- $cur ) ) return 0 fi # options that require a parameter # note: continued lines must end '|' continuing lines must start '|' optsParam="-r|--revision|-t|--transaction|-l|--limit|-x|--extensions" # if not typing an option, or if the previous option required a # parameter, then fallback on ordinary filename expansion helpCmds='help|--help|h|\?' if [[ ${COMP_WORDS[1]} != @($helpCmds) ]] && \ [[ "$cur" != -* ]] || \ [[ ${COMP_WORDS[COMP_CWORD-1]} == @($optsParam) ]] ; then return 0 fi cmdOpts= case ${COMP_WORDS[1]} in author) cmdOpts="-r --revision -t --transaction" ;; cat) cmdOpts="-r --revision -t --transaction" ;; changed) cmdOpts="-r --revision -t --transaction --copy-info" ;; date) cmdOpts="-r --revision -t --transaction" ;; diff) cmdOpts="-r --revision -t --transaction --diff-copy-from \ --no-diff-added --no-diff-deleted -x --extensions" ;; dirs-changed) cmdOpts="-r --revision -t --transaction" ;; filesize) cmdOpts="-r --revision -t --transaction" ;; help|h|\?) cmdOpts="$cmds" ;; history) cmdOpts="-r --revision -l --limit --show-ids" ;; info) cmdOpts="-r --revision -t --transaction" ;; lock) cmdOpts= ;; log) cmdOpts="-r --revision -t --transaction" ;; propget|pget|pg) cmdOpts="-r --revision -t --transaction --revprop" ;; proplist|plist|pl) cmdOpts="-r --revision -t --transaction --revprop -v --verbose --xml" ;; tree) cmdOpts="-r --revision -t --transaction --full-paths -N --non-recursive --show-ids" ;; uuid) cmdOpts= ;; youngest) cmdOpts= ;; *) ;; esac cmdOpts="$cmdOpts --help -h" # take out options already given for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do opt=${COMP_WORDS[$i]} case $opt in --*) optBase=${opt/=*/} ;; -*) optBase=${opt:0:2} ;; esac cmdOpts=" $cmdOpts " cmdOpts=${cmdOpts/ ${optBase} / } # take out alternatives case $optBase in -N) cmdOpts=${cmdOpts/ --non-recursive / } ;; --non-recursive) cmdOpts=${cmdOpts/ -N / } ;; -h) cmdOpts=${cmdOpts/ --help / } ;; --help) cmdOpts=${cmdOpts/ -h / } ;; -l) cmdOpts=${cmdOpts/ --limit / } ;; --limit) cmdOpts=${cmdOpts/ -l / } ;; -r) cmdOpts=${cmdOpts/ --revision / } ;; --revision) cmdOpts=${cmdOpts/ -r / } ;; -t) cmdOpts=${cmdOpts/ --transaction / } ;; --transaction) cmdOpts=${cmdOpts/ -t / } ;; -v) cmdOpts=${cmdOpts/ --verbose / } ;; --verbose) cmdOpts=${cmdOpts/ -v / } ;; -x) cmdOpts=${cmdOpts/ --extensions / } ;; --extensions) cmdOpts=${cmdOpts/ -x / } ;; esac # skip next option if this one requires a parameter if [[ $opt == @($optsParam) ]] ; then ((++i)) fi done COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) ) return 0 } complete -F _svnlook -o default svnlook _svnsync () { local cur cmds cmdOpts optsParam opt helpCmds optBase i COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} # Possible expansions, without pure-prefix abbreviations such as "h". cmds='copy-revprops help info initialize synchronize --version' if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( compgen -W "$cmds" -- $cur ) ) return 0 fi # options that require a parameter # note: continued lines must end '|' continuing lines must start '|' optsParam="--config-dir|--config-option|--source-username|--source-password" optsParam="$optsParam|--sync-username|--sync-password" # if not typing an option, or if the previous option required a # parameter, then fallback on ordinary filename expansion helpCmds='help|--help|h|\?' if [[ ${COMP_WORDS[1]} != @($helpCmds) ]] && \ [[ "$cur" != -* ]] || \ [[ ${COMP_WORDS[COMP_CWORD-1]} == @($optsParam) ]] ; then return 0 fi cmdOpts= case ${COMP_WORDS[1]} in copy-revprops|initialize|init|synchronize|sync) cmdOpts="--non-interactive --no-auth-cache --trust-server-cert \ --source-username --source-password --sync-username \ --sync-password --config-dir --config-option \ -q --quiet -M --memory-cache-size" ;; help|h|\?) cmdOpts="$cmds" ;; info) cmdOpts="--non-interactive --no-auth-cache --trust-server-cert \ --source-username --source-password --sync-username \ --sync-password --config-dir --config-option" ;; *) ;; esac cmdOpts="$cmdOpts --help -h" # take out options already given for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do opt=${COMP_WORDS[$i]} case $opt in --*) optBase=${opt/=*/} ;; -*) optBase=${opt:0:2} ;; esac cmdOpts=" $cmdOpts " cmdOpts=${cmdOpts/ ${optBase} / } # take out alternatives case $optBase in -h) cmdOpts=${cmdOpts/ --help / } ;; --help) cmdOpts=${cmdOpts/ -h / } ;; -q) cmdOpts=${cmdOpts/ --quiet / } ;; --quiet) cmdOpts=${cmdOpts/ -q / } ;; esac # skip next option if this one requires a parameter if [[ $opt == @($optsParam) ]] ; then ((++i)) fi done COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) ) return 0 } complete -F _svnsync -o default svnsync # reasonable completion for 'svnversion' _svnversion () { local cmdOpts=" -n --no-newline -c --committed -h --help --version " local cur=${COMP_WORDS[COMP_CWORD]} COMPREPLY=() # parse current options local options= wcpath= trailurl= last='none' stat= opt= i=-1 isCur= for opt in ${COMP_WORDS[@]} do [[ $i -eq $COMP_CWORD ]] && stat=$last let i++ # are we processing the current word? isCur= [[ $i -eq $COMP_CWORD ]] && isCur=1 # skip first command, should be 'svnversion' if [ $last = 'none' ] ; then last='first' continue fi # get options if [[ $last != 'arg' && $opt == -* ]] then # if '--' is at the current position, it means that we are looking # for '--*' options, and not the end of option processing. if [[ $opt = '--' && ! $isCur ]] then last='arg' else options="$options $opt " last='opt' fi continue fi # get arguments if [[ $opt != -* ]] then last='arg' if [[ ! $wcpath ]] then wcpath=$opt elif [[ ! $trailurl ]] then trailurl=$opt fi fi done [[ $stat ]] || stat=$last # argument part if [[ $cur != -* || $stat = 'arg' ]] then [[ $wcpath && $trailurl ]] && COMPREPLY=( '' ) return 0 fi # suggest options, and take out already given options for opt in $options do # take out options cmdOpts=${cmdOpts/ $opt / } # take out alternatives case $opt in -n) cmdOpts=${cmdOpts/ --no-newline / } ;; --no-newline) cmdOpts=${cmdOpts/ -n / } ;; -h) cmdOpts=${cmdOpts/ --help / } ;; --help) cmdOpts=${cmdOpts/ -h / } ;; -c) cmdOpts=${cmdOpts/ --committed / } ;; --committed) cmdOpts=${cmdOpts/ -c / } ;; esac done COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) ) return 0 } # -X option does not seem to work? complete -F _svnversion -o dirnames -X '*.svn*' svnversion
Close