SM0 She11
Path:
/
/
usr
/
bin
Full Path (server): /usr/bin
Create Fil3
Upl04d Fil3
📄 7z
[E]
[D]
[R]
📄 7za
[E]
[D]
[R]
📄 GET
[E]
[D]
[R]
📄 HEAD
[E]
[D]
[R]
📄 Magick-config
[E]
[D]
[R]
📄 MagickCore-config
[E]
[D]
[R]
📄 MagickWand-config
[E]
[D]
[R]
📄 POST
[E]
[D]
[R]
📄 Wand-config
[E]
[D]
[R]
📄 [
[E]
[D]
[R]
📄 a2p
[E]
[D]
[R]
📄 ab
[E]
[D]
[R]
📄 aclocal
[E]
[D]
[R]
📄 aclocal-1.13
[E]
[D]
[R]
📄 addr2line
[E]
[D]
[R]
📄 agentxtrap
[E]
[D]
[R]
📄 alias
[E]
[D]
[R]
📄 altermime
[E]
[D]
[R]
📄 amavisd-agent
[E]
[D]
[R]
📄 amavisd-nanny
[E]
[D]
[R]
📄 amavisd-release
[E]
[D]
[R]
📄 amavisd-signer
[E]
[D]
[R]
📄 amavisd-submit
[E]
[D]
[R]
📄 animate
[E]
[D]
[R]
📄 apr-1-config
[E]
[D]
[R]
📄 apropos
[E]
[D]
[R]
📄 apu-1-config
[E]
[D]
[R]
📄 ar
[E]
[D]
[R]
📄 arch
[E]
[D]
[R]
📄 aria_chk
[E]
[D]
[R]
📄 aria_dump_log
[E]
[D]
[R]
📄 aria_ftdump
[E]
[D]
[R]
📄 aria_pack
[E]
[D]
[R]
📄 aria_read_log
[E]
[D]
[R]
📄 arj
[E]
[D]
[R]
📄 arjdisp
[E]
[D]
[R]
📄 arpaname
[E]
[D]
[R]
📄 as
[E]
[D]
[R]
📄 aspell
[E]
[D]
[R]
📄 at
[E]
[D]
[R]
📄 atq
[E]
[D]
[R]
📄 atrm
[E]
[D]
[R]
📄 audit2allow
[E]
[D]
[R]
📄 audit2why
[E]
[D]
[R]
📄 aulast
[E]
[D]
[R]
📄 aulastlog
[E]
[D]
[R]
📄 ausyscall
[E]
[D]
[R]
📄 autoconf
[E]
[D]
[R]
📄 autoheader
[E]
[D]
[R]
📄 autom4te
[E]
[D]
[R]
📄 automake
[E]
[D]
[R]
📄 automake-1.13
[E]
[D]
[R]
📄 autoreconf
[E]
[D]
[R]
📄 autoscan
[E]
[D]
[R]
📄 autoupdate
[E]
[D]
[R]
📄 auvirt
[E]
[D]
[R]
📄 awk
[E]
[D]
[R]
📄 base64
[E]
[D]
[R]
📄 basename
[E]
[D]
[R]
📄 bash
[E]
[D]
[R]
📄 bashbug
[E]
[D]
[R]
📄 bashbug-64
[E]
[D]
[R]
📄 batch
[E]
[D]
[R]
📄 bc
[E]
[D]
[R]
📄 bdftopcf
[E]
[D]
[R]
📄 bdftruncate
[E]
[D]
[R]
📄 bg
[E]
[D]
[R]
📄 bison
[E]
[D]
[R]
📄 bond2team
[E]
[D]
[R]
📄 bootctl
[E]
[D]
[R]
📄 bunzip2
[E]
[D]
[R]
📄 busctl
[E]
[D]
[R]
📄 bzcat
[E]
[D]
[R]
📄 bzcmp
[E]
[D]
[R]
📄 bzdiff
[E]
[D]
[R]
📄 bzgrep
[E]
[D]
[R]
📄 bzip2
[E]
[D]
[R]
📄 bzip2recover
[E]
[D]
[R]
📄 bzless
[E]
[D]
[R]
📄 bzmore
[E]
[D]
[R]
📄 c++
[E]
[D]
[R]
📄 c++filt
[E]
[D]
[R]
📄 c2ph
[E]
[D]
[R]
📄 c89
[E]
[D]
[R]
📄 c99
[E]
[D]
[R]
📄 ca-legacy
[E]
[D]
[R]
📄 cabextract
[E]
[D]
[R]
📄 cairo-sphinx
[E]
[D]
[R]
📄 cal
[E]
[D]
[R]
📄 captoinfo
[E]
[D]
[R]
📄 cat
[E]
[D]
[R]
📄 catchsegv
[E]
[D]
[R]
📄 catman
[E]
[D]
[R]
📄 cc
[E]
[D]
[R]
📄 ccmake
[E]
[D]
[R]
📄 ccmake3
[E]
[D]
[R]
📄 cd
[E]
[D]
[R]
📄 centrino-decode
[E]
[D]
[R]
📄 certutil
[E]
[D]
[R]
📄 certwatch
[E]
[D]
[R]
📄 chacl
[E]
[D]
[R]
📄 chage
[E]
[D]
[R]
📄 chardetect
[E]
[D]
[R]
📄 chattr
[E]
[D]
[R]
📄 chcat
[E]
[D]
[R]
📄 chcon
[E]
[D]
[R]
📄 checkmodule
[E]
[D]
[R]
📄 checkpolicy
[E]
[D]
[R]
📄 chfn
[E]
[D]
[R]
📄 chgrp
[E]
[D]
[R]
📄 chmem
[E]
[D]
[R]
📄 chmod
[E]
[D]
[R]
📄 chown
[E]
[D]
[R]
📄 chronyc
[E]
[D]
[R]
📄 chrt
[E]
[D]
[R]
📄 chsh
[E]
[D]
[R]
📄 chvt
[E]
[D]
[R]
📄 cifsiostat
[E]
[D]
[R]
📄 cksum
[E]
[D]
[R]
📄 clambc
[E]
[D]
[R]
📄 clamconf
[E]
[D]
[R]
📄 clamdscan
[E]
[D]
[R]
📄 clamdtop
[E]
[D]
[R]
📄 clamscan
[E]
[D]
[R]
📄 clamsubmit
[E]
[D]
[R]
📄 clear
[E]
[D]
[R]
📄 cloud-id
[E]
[D]
[R]
📄 cloud-init
[E]
[D]
[R]
📄 cloud-init-per
[E]
[D]
[R]
📄 clusterdb
[E]
[D]
[R]
📄 cmake
[E]
[D]
[R]
📄 cmake3
[E]
[D]
[R]
📄 cmp
[E]
[D]
[R]
📄 cmsutil
[E]
[D]
[R]
📄 col
[E]
[D]
[R]
📄 colcrt
[E]
[D]
[R]
📄 colrm
[E]
[D]
[R]
📄 column
[E]
[D]
[R]
📄 comm
[E]
[D]
[R]
📄 command
[E]
[D]
[R]
📄 compare
[E]
[D]
[R]
📄 compile_et
[E]
[D]
[R]
📄 composite
[E]
[D]
[R]
📄 conjure
[E]
[D]
[R]
📄 consolehelper
[E]
[D]
[R]
📄 convert
[E]
[D]
[R]
📄 coredumpctl
[E]
[D]
[R]
📄 cp
[E]
[D]
[R]
📄 cpack
[E]
[D]
[R]
📄 cpack3
[E]
[D]
[R]
📄 cpio
[E]
[D]
[R]
📄 cpp
[E]
[D]
[R]
📄 cpulimit
[E]
[D]
[R]
📄 cpupower
[E]
[D]
[R]
📄 crc32
[E]
[D]
[R]
📄 createdb
[E]
[D]
[R]
📄 createlang
[E]
[D]
[R]
📄 createuser
[E]
[D]
[R]
📄 crlutil
[E]
[D]
[R]
📄 crontab
[E]
[D]
[R]
📄 csplit
[E]
[D]
[R]
📄 csslint-0.6
[E]
[D]
[R]
📄 ctest
[E]
[D]
[R]
📄 ctest3
[E]
[D]
[R]
📄 curl
[E]
[D]
[R]
📄 curl-config
[E]
[D]
[R]
📄 cut
[E]
[D]
[R]
📄 cvtsudoers
[E]
[D]
[R]
📄 cxpm
[E]
[D]
[R]
📄 date
[E]
[D]
[R]
📄 db_archive
[E]
[D]
[R]
📄 db_checkpoint
[E]
[D]
[R]
📄 db_deadlock
[E]
[D]
[R]
📄 db_dump
[E]
[D]
[R]
📄 db_dump185
[E]
[D]
[R]
📄 db_hotbackup
[E]
[D]
[R]
📄 db_load
[E]
[D]
[R]
📄 db_log_verify
[E]
[D]
[R]
📄 db_printlog
[E]
[D]
[R]
📄 db_recover
[E]
[D]
[R]
📄 db_replicate
[E]
[D]
[R]
📄 db_stat
[E]
[D]
[R]
📄 db_tuner
[E]
[D]
[R]
📄 db_upgrade
[E]
[D]
[R]
📄 db_verify
[E]
[D]
[R]
📄 dbilogstrip
[E]
[D]
[R]
📄 dbinfo
[E]
[D]
[R]
📄 dbiprof
[E]
[D]
[R]
📄 dbiproxy
[E]
[D]
[R]
📄 dbus-binding-tool
[E]
[D]
[R]
📄 dbus-cleanup-sockets
[E]
[D]
[R]
📄 dbus-daemon
[E]
[D]
[R]
📄 dbus-monitor
[E]
[D]
[R]
📄 dbus-run-session
[E]
[D]
[R]
📄 dbus-send
[E]
[D]
[R]
📄 dbus-test-tool
[E]
[D]
[R]
📄 dbus-update-activation-environment
[E]
[D]
[R]
📄 dbus-uuidgen
[E]
[D]
[R]
📄 dc
[E]
[D]
[R]
📄 dd
[E]
[D]
[R]
📄 deallocvt
[E]
[D]
[R]
📄 debuginfo-install
[E]
[D]
[R]
📄 defunct
[E]
[D]
[R]
📄 delv
[E]
[D]
[R]
📄 derb
[E]
[D]
[R]
📄 df
[E]
[D]
[R]
📄 dgawk
[E]
[D]
[R]
📄 diff
[E]
[D]
[R]
📄 diff3
[E]
[D]
[R]
📄 dig
[E]
[D]
[R]
📄 dir
[E]
[D]
[R]
📄 dircolors
[E]
[D]
[R]
📄 dirname
[E]
[D]
[R]
📄 display
[E]
[D]
[R]
📄 dm_date
[E]
[D]
[R]
📄 dm_zdump
[E]
[D]
[R]
📄 dmesg
[E]
[D]
[R]
📄 dnsdomainname
[E]
[D]
[R]
📄 domainname
[E]
[D]
[R]
📄 doveadm
[E]
[D]
[R]
📄 doveconf
[E]
[D]
[R]
📄 dracut
[E]
[D]
[R]
📄 dropdb
[E]
[D]
[R]
📄 droplang
[E]
[D]
[R]
📄 dropuser
[E]
[D]
[R]
📄 dsync
[E]
[D]
[R]
📄 dtrace
[E]
[D]
[R]
📄 du
[E]
[D]
[R]
📄 dumpkeys
[E]
[D]
[R]
📄 dumpsexp
[E]
[D]
[R]
📄 dwp
[E]
[D]
[R]
📄 easy_install
[E]
[D]
[R]
📄 easy_install-2.7
[E]
[D]
[R]
📄 easy_install-3.6
[E]
[D]
[R]
📄 echo
[E]
[D]
[R]
📄 ecpg
[E]
[D]
[R]
📄 ed2k-link
[E]
[D]
[R]
📄 egrep
[E]
[D]
[R]
📄 eject
[E]
[D]
[R]
📄 elfedit
[E]
[D]
[R]
📄 enchant
[E]
[D]
[R]
📄 enchant-lsmod
[E]
[D]
[R]
📄 env
[E]
[D]
[R]
📄 envsubst
[E]
[D]
[R]
📄 eqn
[E]
[D]
[R]
📄 ex
[E]
[D]
[R]
📄 expand
[E]
[D]
[R]
📄 expr
[E]
[D]
[R]
📄 factor
[E]
[D]
[R]
📄 fallocate
[E]
[D]
[R]
📄 false
[E]
[D]
[R]
📄 fc
[E]
[D]
[R]
📄 fc-cache
[E]
[D]
[R]
📄 fc-cache-64
[E]
[D]
[R]
📄 fc-cat
[E]
[D]
[R]
📄 fc-conflist
[E]
[D]
[R]
📄 fc-list
[E]
[D]
[R]
📄 fc-match
[E]
[D]
[R]
📄 fc-pattern
[E]
[D]
[R]
📄 fc-query
[E]
[D]
[R]
📄 fc-scan
[E]
[D]
[R]
📄 fc-validate
[E]
[D]
[R]
📄 fcat
[E]
[D]
[R]
📄 fg
[E]
[D]
[R]
📄 fgconsole
[E]
[D]
[R]
📄 fgrep
[E]
[D]
[R]
📄 file
[E]
[D]
[R]
📄 find
[E]
[D]
[R]
📄 find-repos-of-install
[E]
[D]
[R]
📄 find2perl
[E]
[D]
[R]
📄 findmnt
[E]
[D]
[R]
📄 fipscheck
[E]
[D]
[R]
📄 fipshmac
[E]
[D]
[R]
📄 flex
[E]
[D]
[R]
📄 flex++
[E]
[D]
[R]
📄 flock
[E]
[D]
[R]
📄 fmt
[E]
[D]
[R]
📄 fold
[E]
[D]
[R]
📄 fonttosfnt
[E]
[D]
[R]
📄 formail
[E]
[D]
[R]
📄 free
[E]
[D]
[R]
📄 freetype-config
[E]
[D]
[R]
📄 freeze
[E]
[D]
[R]
📄 freshclam
[E]
[D]
[R]
📄 fribidi
[E]
[D]
[R]
📄 funzip
[E]
[D]
[R]
📄 g++
[E]
[D]
[R]
📄 galera_new_cluster
[E]
[D]
[R]
📄 galera_recovery
[E]
[D]
[R]
📄 gapplication
[E]
[D]
[R]
📄 garb-systemd
[E]
[D]
[R]
📄 garbd
[E]
[D]
[R]
📄 gawk
[E]
[D]
[R]
📄 gcc
[E]
[D]
[R]
📄 gcc-ar
[E]
[D]
[R]
📄 gcc-nm
[E]
[D]
[R]
📄 gcc-ranlib
[E]
[D]
[R]
📄 gcov
[E]
[D]
[R]
📄 gdbus
[E]
[D]
[R]
📄 gdbus-codegen
[E]
[D]
[R]
📄 gdk-pixbuf-query-loaders-64
[E]
[D]
[R]
📄 gdk-pixbuf-thumbnailer
[E]
[D]
[R]
📄 genbrk
[E]
[D]
[R]
📄 gencat
[E]
[D]
[R]
📄 gencfu
[E]
[D]
[R]
📄 gencnval
[E]
[D]
[R]
📄 gendict
[E]
[D]
[R]
📄 genkey
[E]
[D]
[R]
📄 genl-ctrl-list
[E]
[D]
[R]
📄 genrb
[E]
[D]
[R]
📄 geoiplookup
[E]
[D]
[R]
📄 geoiplookup6
[E]
[D]
[R]
📄 geoipupdate
[E]
[D]
[R]
📄 geqn
[E]
[D]
[R]
📄 getconf
[E]
[D]
[R]
📄 getent
[E]
[D]
[R]
📄 getfacl
[E]
[D]
[R]
📄 getkeycodes
[E]
[D]
[R]
📄 getopt
[E]
[D]
[R]
📄 getopts
[E]
[D]
[R]
📄 gettext
[E]
[D]
[R]
📄 gettext.sh
[E]
[D]
[R]
📄 gio
[E]
[D]
[R]
📄 gio-querymodules-64
[E]
[D]
[R]
📄 git
[E]
[D]
[R]
📄 git-receive-pack
[E]
[D]
[R]
📄 git-shell
[E]
[D]
[R]
📄 git-upload-archive
[E]
[D]
[R]
📄 git-upload-pack
[E]
[D]
[R]
📄 glib-compile-resources
[E]
[D]
[R]
📄 glib-compile-schemas
[E]
[D]
[R]
📄 glib-genmarshal
[E]
[D]
[R]
📄 glib-gettextize
[E]
[D]
[R]
📄 glib-mkenums
[E]
[D]
[R]
📄 gmake
[E]
[D]
[R]
📄 gneqn
[E]
[D]
[R]
📄 gnroff
[E]
[D]
[R]
📄 goaccess
[E]
[D]
[R]
📄 gobject-query
[E]
[D]
[R]
📄 gost-hash
[E]
[D]
[R]
📄 gpasswd
[E]
[D]
[R]
📄 gpg
[E]
[D]
[R]
📄 gpg-agent
[E]
[D]
[R]
📄 gpg-connect-agent
[E]
[D]
[R]
📄 gpg-error
[E]
[D]
[R]
📄 gpg-error-config
[E]
[D]
[R]
📄 gpg-zip
[E]
[D]
[R]
📄 gpg2
[E]
[D]
[R]
📄 gpgconf
[E]
[D]
[R]
📄 gpgparsemail
[E]
[D]
[R]
📄 gpgsplit
[E]
[D]
[R]
📄 gpgv
[E]
[D]
[R]
📄 gpgv2
[E]
[D]
[R]
📄 gpic
[E]
[D]
[R]
📄 gprof
[E]
[D]
[R]
📄 gr2fonttest
[E]
[D]
[R]
📄 grep
[E]
[D]
[R]
📄 gresource
[E]
[D]
[R]
📄 groff
[E]
[D]
[R]
📄 grops
[E]
[D]
[R]
📄 grotty
[E]
[D]
[R]
📄 groups
[E]
[D]
[R]
📄 growpart
[E]
[D]
[R]
📄 grub2-editenv
[E]
[D]
[R]
📄 grub2-file
[E]
[D]
[R]
📄 grub2-fstest
[E]
[D]
[R]
📄 grub2-glue-efi
[E]
[D]
[R]
📄 grub2-kbdcomp
[E]
[D]
[R]
📄 grub2-menulst2cfg
[E]
[D]
[R]
📄 grub2-mkfont
[E]
[D]
[R]
📄 grub2-mkimage
[E]
[D]
[R]
📄 grub2-mklayout
[E]
[D]
[R]
📄 grub2-mknetdir
[E]
[D]
[R]
📄 grub2-mkpasswd-pbkdf2
[E]
[D]
[R]
📄 grub2-mkrelpath
[E]
[D]
[R]
📄 grub2-mkrescue
[E]
[D]
[R]
📄 grub2-mkstandalone
[E]
[D]
[R]
📄 grub2-render-label
[E]
[D]
[R]
📄 grub2-script-check
[E]
[D]
[R]
📄 grub2-syslinux2cfg
[E]
[D]
[R]
📄 gsettings
[E]
[D]
[R]
📄 gsoelim
[E]
[D]
[R]
📄 gss-client
[E]
[D]
[R]
📄 gtar
[E]
[D]
[R]
📄 gtbl
[E]
[D]
[R]
📄 gtester
[E]
[D]
[R]
📄 gtester-report
[E]
[D]
[R]
📄 gtroff
[E]
[D]
[R]
📄 gunzip
[E]
[D]
[R]
📄 gzexe
[E]
[D]
[R]
📄 gzip
[E]
[D]
[R]
📄 h2ph
[E]
[D]
[R]
📄 h2xs
[E]
[D]
[R]
📄 has160-hash
[E]
[D]
[R]
📄 head
[E]
[D]
[R]
📄 hexdump
[E]
[D]
[R]
📄 hmac256
[E]
[D]
[R]
📄 host
[E]
[D]
[R]
📄 hostid
[E]
[D]
[R]
📄 hostname
[E]
[D]
[R]
📄 hostnamectl
[E]
[D]
[R]
📄 htdbm
[E]
[D]
[R]
📄 htdigest
[E]
[D]
[R]
📄 htpasswd
[E]
[D]
[R]
📄 httxt2dbm
[E]
[D]
[R]
📄 hunspell
[E]
[D]
[R]
📄 i386
[E]
[D]
[R]
📄 iceauth
[E]
[D]
[R]
📄 iconv
[E]
[D]
[R]
📄 icu-config
[E]
[D]
[R]
📄 icu-config-64
[E]
[D]
[R]
📄 icuinfo
[E]
[D]
[R]
📄 id
[E]
[D]
[R]
📄 identify
[E]
[D]
[R]
📄 idiag-socket-details
[E]
[D]
[R]
📄 idn
[E]
[D]
[R]
📄 ifnames
[E]
[D]
[R]
📄 igawk
[E]
[D]
[R]
📄 imapsync
[E]
[D]
[R]
📄 import
[E]
[D]
[R]
📄 info
[E]
[D]
[R]
📄 infocmp
[E]
[D]
[R]
📄 infokey
[E]
[D]
[R]
📄 infotocap
[E]
[D]
[R]
📄 innochecksum
[E]
[D]
[R]
📄 install
[E]
[D]
[R]
📄 instmodsh
[E]
[D]
[R]
📄 ionice
[E]
[D]
[R]
📄 iostat
[E]
[D]
[R]
📄 ipcalc
[E]
[D]
[R]
📄 ipcmk
[E]
[D]
[R]
📄 ipcrm
[E]
[D]
[R]
📄 ipcs
[E]
[D]
[R]
📄 iptables-xml
[E]
[D]
[R]
📄 isosize
[E]
[D]
[R]
📄 ispell
[E]
[D]
[R]
📄 jemalloc.sh
[E]
[D]
[R]
📄 jobs
[E]
[D]
[R]
📄 join
[E]
[D]
[R]
📄 journalctl
[E]
[D]
[R]
📄 jsonpointer
[E]
[D]
[R]
📄 kbd_mode
[E]
[D]
[R]
📄 kbdinfo
[E]
[D]
[R]
📄 kbdrate
[E]
[D]
[R]
📄 kdumpctl
[E]
[D]
[R]
📄 kernel-install
[E]
[D]
[R]
📄 keyrand
[E]
[D]
[R]
📄 keyutil
[E]
[D]
[R]
📄 kill
[E]
[D]
[R]
📄 killall
[E]
[D]
[R]
📄 kmod
[E]
[D]
[R]
📄 krb5-config
[E]
[D]
[R]
📄 l4p-tmpl
[E]
[D]
[R]
📄 last
[E]
[D]
[R]
📄 lastb
[E]
[D]
[R]
📄 lastlog
[E]
[D]
[R]
📄 lchfn
[E]
[D]
[R]
📄 lchsh
[E]
[D]
[R]
📄 ld
[E]
[D]
[R]
📄 ld.bfd
[E]
[D]
[R]
📄 ld.gold
[E]
[D]
[R]
📄 ldd
[E]
[D]
[R]
📄 less
[E]
[D]
[R]
📄 lessecho
[E]
[D]
[R]
📄 lesskey
[E]
[D]
[R]
📄 lesspipe.sh
[E]
[D]
[R]
📄 lex
[E]
[D]
[R]
📄 lexgrog
[E]
[D]
[R]
📄 libgcrypt-config
[E]
[D]
[R]
📄 libmcrypt-config
[E]
[D]
[R]
📄 libnetcfg
[E]
[D]
[R]
📄 libpng-config
[E]
[D]
[R]
📄 libpng15-config
[E]
[D]
[R]
📄 link
[E]
[D]
[R]
📄 links
[E]
[D]
[R]
📄 links2
[E]
[D]
[R]
📄 linux-boot-prober
[E]
[D]
[R]
📄 linux32
[E]
[D]
[R]
📄 linux64
[E]
[D]
[R]
📄 ln
[E]
[D]
[R]
📄 loadkeys
[E]
[D]
[R]
📄 loadunimap
[E]
[D]
[R]
📄 locale
[E]
[D]
[R]
📄 localectl
[E]
[D]
[R]
📄 localedef
[E]
[D]
[R]
📄 locate
[E]
[D]
[R]
📄 lockfile
[E]
[D]
[R]
📄 logger
[E]
[D]
[R]
📄 login
[E]
[D]
[R]
📄 loginctl
[E]
[D]
[R]
📄 logname
[E]
[D]
[R]
📄 logresolve
[E]
[D]
[R]
📄 look
[E]
[D]
[R]
📄 ls
[E]
[D]
[R]
📄 lsattr
[E]
[D]
[R]
📄 lsblk
[E]
[D]
[R]
📄 lscpu
[E]
[D]
[R]
📄 lsinitrd
[E]
[D]
[R]
📄 lsipc
[E]
[D]
[R]
📄 lslocks
[E]
[D]
[R]
📄 lslogins
[E]
[D]
[R]
📄 lsmem
[E]
[D]
[R]
📄 lsns
[E]
[D]
[R]
📄 lua
[E]
[D]
[R]
📄 luac
[E]
[D]
[R]
📄 lwp-download
[E]
[D]
[R]
📄 lwp-dump
[E]
[D]
[R]
📄 lwp-mirror
[E]
[D]
[R]
📄 lwp-request
[E]
[D]
[R]
📄 lz4
[E]
[D]
[R]
📄 lz4c
[E]
[D]
[R]
📄 lz4cat
[E]
[D]
[R]
📄 lzop
[E]
[D]
[R]
📄 m4
[E]
[D]
[R]
📄 machinectl
[E]
[D]
[R]
📄 magnet-link
[E]
[D]
[R]
📄 mailq
[E]
[D]
[R]
📄 mailq.postfix
[E]
[D]
[R]
📄 mailstat
[E]
[D]
[R]
📄 make
[E]
[D]
[R]
📄 makeconv
[E]
[D]
[R]
📄 makedb
[E]
[D]
[R]
📄 man
[E]
[D]
[R]
📄 mandb
[E]
[D]
[R]
📄 manpath
[E]
[D]
[R]
📄 mapscrn
[E]
[D]
[R]
📄 mariadb-service-convert
[E]
[D]
[R]
📄 mariadb_config
[E]
[D]
[R]
📄 mcookie
[E]
[D]
[R]
📄 md5sum
[E]
[D]
[R]
📄 mdig
[E]
[D]
[R]
📄 melt
[E]
[D]
[R]
📄 mesg
[E]
[D]
[R]
📄 mimedump
[E]
[D]
[R]
📄 mimeencode
[E]
[D]
[R]
📄 mimeexplode
[E]
[D]
[R]
📄 mimepostcard
[E]
[D]
[R]
📄 mimesend
[E]
[D]
[R]
📄 miniterm.py
[E]
[D]
[R]
📄 mkdir
[E]
[D]
[R]
📄 mkfifo
[E]
[D]
[R]
📄 mkfontdir
[E]
[D]
[R]
📄 mkfontscale
[E]
[D]
[R]
📄 mkinitrd
[E]
[D]
[R]
📄 mknod
[E]
[D]
[R]
📄 mktemp
[E]
[D]
[R]
📄 modutil
[E]
[D]
[R]
📄 mogrify
[E]
[D]
[R]
📄 montage
[E]
[D]
[R]
📄 more
[E]
[D]
[R]
📄 mount
[E]
[D]
[R]
📄 mountpoint
[E]
[D]
[R]
📄 mpstat
[E]
[D]
[R]
📄 msgattrib
[E]
[D]
[R]
📄 msgcat
[E]
[D]
[R]
📄 msgcmp
[E]
[D]
[R]
📄 msgcomm
[E]
[D]
[R]
📄 msgconv
[E]
[D]
[R]
📄 msgen
[E]
[D]
[R]
📄 msgexec
[E]
[D]
[R]
📄 msgfilter
[E]
[D]
[R]
📄 msgfmt
[E]
[D]
[R]
📄 msggrep
[E]
[D]
[R]
📄 msghack
[E]
[D]
[R]
📄 msginit
[E]
[D]
[R]
📄 msgmerge
[E]
[D]
[R]
📄 msgunfmt
[E]
[D]
[R]
📄 msguniq
[E]
[D]
[R]
📄 msql2mysql
[E]
[D]
[R]
📄 mv
[E]
[D]
[R]
📄 my_print_defaults
[E]
[D]
[R]
📄 myisam_ftdump
[E]
[D]
[R]
📄 myisamchk
[E]
[D]
[R]
📄 myisamlog
[E]
[D]
[R]
📄 myisampack
[E]
[D]
[R]
📄 mysql
[E]
[D]
[R]
📄 mysql_config
[E]
[D]
[R]
📄 mysql_convert_table_format
[E]
[D]
[R]
📄 mysql_embedded
[E]
[D]
[R]
📄 mysql_find_rows
[E]
[D]
[R]
📄 mysql_fix_extensions
[E]
[D]
[R]
📄 mysql_install_db
[E]
[D]
[R]
📄 mysql_plugin
[E]
[D]
[R]
📄 mysql_secure_installation
[E]
[D]
[R]
📄 mysql_setpermission
[E]
[D]
[R]
📄 mysql_tzinfo_to_sql
[E]
[D]
[R]
📄 mysql_upgrade
[E]
[D]
[R]
📄 mysql_waitpid
[E]
[D]
[R]
📄 mysql_zap
[E]
[D]
[R]
📄 mysqlaccess
[E]
[D]
[R]
📄 mysqladmin
[E]
[D]
[R]
📄 mysqlbinlog
[E]
[D]
[R]
📄 mysqlbug
[E]
[D]
[R]
📄 mysqlcheck
[E]
[D]
[R]
📄 mysqld_multi
[E]
[D]
[R]
📄 mysqld_safe
[E]
[D]
[R]
📄 mysqld_safe_helper
[E]
[D]
[R]
📄 mysqldump
[E]
[D]
[R]
📄 mysqldumpslow
[E]
[D]
[R]
📄 mysqlhotcopy
[E]
[D]
[R]
📄 mysqlimport
[E]
[D]
[R]
📄 mysqlshow
[E]
[D]
[R]
📄 mysqlslap
[E]
[D]
[R]
📄 named-rrchecker
[E]
[D]
[R]
📄 namei
[E]
[D]
[R]
📄 nano
[E]
[D]
[R]
📄 ncurses5-config
[E]
[D]
[R]
📄 ncursesw5-config
[E]
[D]
[R]
📄 ndptool
[E]
[D]
[R]
📄 needs-restarting
[E]
[D]
[R]
📄 neqn
[E]
[D]
[R]
📄 net-server
[E]
[D]
[R]
📄 net-snmp-config
[E]
[D]
[R]
📄 net-snmp-config-x86_64
[E]
[D]
[R]
📄 net-snmp-create-v3-user
[E]
[D]
[R]
📄 netstat
[E]
[D]
[R]
📄 nettle-hash
[E]
[D]
[R]
📄 nettle-lfib-stream
[E]
[D]
[R]
📄 newaliases
[E]
[D]
[R]
📄 newaliases.postfix
[E]
[D]
[R]
📄 newgidmap
[E]
[D]
[R]
📄 newgrp
[E]
[D]
[R]
📄 newuidmap
[E]
[D]
[R]
📄 nf-ct-add
[E]
[D]
[R]
📄 nf-ct-list
[E]
[D]
[R]
📄 nf-exp-add
[E]
[D]
[R]
📄 nf-exp-delete
[E]
[D]
[R]
📄 nf-exp-list
[E]
[D]
[R]
📄 nf-log
[E]
[D]
[R]
📄 nf-monitor
[E]
[D]
[R]
📄 nf-queue
[E]
[D]
[R]
📄 nfsiostat-sysstat
[E]
[D]
[R]
📄 ngettext
[E]
[D]
[R]
📄 nice
[E]
[D]
[R]
📄 nisdomainname
[E]
[D]
[R]
📄 nl
[E]
[D]
[R]
📄 nl-addr-add
[E]
[D]
[R]
📄 nl-addr-delete
[E]
[D]
[R]
📄 nl-addr-list
[E]
[D]
[R]
📄 nl-class-add
[E]
[D]
[R]
📄 nl-class-delete
[E]
[D]
[R]
📄 nl-class-list
[E]
[D]
[R]
📄 nl-classid-lookup
[E]
[D]
[R]
📄 nl-cls-add
[E]
[D]
[R]
📄 nl-cls-delete
[E]
[D]
[R]
📄 nl-cls-list
[E]
[D]
[R]
📄 nl-fib-lookup
[E]
[D]
[R]
📄 nl-link-enslave
[E]
[D]
[R]
📄 nl-link-ifindex2name
[E]
[D]
[R]
📄 nl-link-list
[E]
[D]
[R]
📄 nl-link-name2ifindex
[E]
[D]
[R]
📄 nl-link-release
[E]
[D]
[R]
📄 nl-link-set
[E]
[D]
[R]
📄 nl-link-stats
[E]
[D]
[R]
📄 nl-list-caches
[E]
[D]
[R]
📄 nl-list-sockets
[E]
[D]
[R]
📄 nl-monitor
[E]
[D]
[R]
📄 nl-neigh-add
[E]
[D]
[R]
📄 nl-neigh-delete
[E]
[D]
[R]
📄 nl-neigh-list
[E]
[D]
[R]
📄 nl-neightbl-list
[E]
[D]
[R]
📄 nl-pktloc-lookup
[E]
[D]
[R]
📄 nl-qdisc-add
[E]
[D]
[R]
📄 nl-qdisc-delete
[E]
[D]
[R]
📄 nl-qdisc-list
[E]
[D]
[R]
📄 nl-route-add
[E]
[D]
[R]
📄 nl-route-delete
[E]
[D]
[R]
📄 nl-route-get
[E]
[D]
[R]
📄 nl-route-list
[E]
[D]
[R]
📄 nl-rule-list
[E]
[D]
[R]
📄 nl-tctree-list
[E]
[D]
[R]
📄 nl-util-addr
[E]
[D]
[R]
📄 nm
[E]
[D]
[R]
📄 nohup
[E]
[D]
[R]
📄 nomarch
[E]
[D]
[R]
📄 nproc
[E]
[D]
[R]
📄 nroff
[E]
[D]
[R]
📄 nsenter
[E]
[D]
[R]
📄 nslookup
[E]
[D]
[R]
📄 nss-policy-check
[E]
[D]
[R]
📄 nsupdate
[E]
[D]
[R]
📄 numfmt
[E]
[D]
[R]
📄 objcopy
[E]
[D]
[R]
📄 objdump
[E]
[D]
[R]
📄 od
[E]
[D]
[R]
📄 offlineimap
[E]
[D]
[R]
📄 oldfind
[E]
[D]
[R]
📄 onig-config
[E]
[D]
[R]
📄 opax
[E]
[D]
[R]
📄 open
[E]
[D]
[R]
📄 openssl
[E]
[D]
[R]
📄 openvt
[E]
[D]
[R]
📄 os-prober
[E]
[D]
[R]
📄 p11-kit
[E]
[D]
[R]
📄 package-cleanup
[E]
[D]
[R]
📄 package-stash-conflicts
[E]
[D]
[R]
📄 page_owner_sort
[E]
[D]
[R]
📄 pango-list
[E]
[D]
[R]
📄 pango-querymodules-64
[E]
[D]
[R]
📄 pango-view
[E]
[D]
[R]
📄 paperconf
[E]
[D]
[R]
📄 passwd
[E]
[D]
[R]
📄 paste
[E]
[D]
[R]
📄 pathchk
[E]
[D]
[R]
📄 pax
[E]
[D]
[R]
📄 pchrt
[E]
[D]
[R]
📄 pcre-config
[E]
[D]
[R]
📄 peekfd
[E]
[D]
[R]
📄 perl
[E]
[D]
[R]
📄 perl5.16.3
[E]
[D]
[R]
📄 perlbug
[E]
[D]
[R]
📄 perldoc
[E]
[D]
[R]
📄 perlivp
[E]
[D]
[R]
📄 perlthanks
[E]
[D]
[R]
📄 perror
[E]
[D]
[R]
📄 pflags
[E]
[D]
[R]
📄 pg_config
[E]
[D]
[R]
📄 pg_dump
[E]
[D]
[R]
📄 pg_dumpall
[E]
[D]
[R]
📄 pg_restore
[E]
[D]
[R]
📄 pgawk
[E]
[D]
[R]
📄 pgrep
[E]
[D]
[R]
📄 php
[E]
[D]
[R]
📄 pic
[E]
[D]
[R]
📄 piconv
[E]
[D]
[R]
📄 pidstat
[E]
[D]
[R]
📄 pinentry
[E]
[D]
[R]
📄 pinentry-curses
[E]
[D]
[R]
📄 ping
[E]
[D]
[R]
📄 ping6
[E]
[D]
[R]
📄 pinky
[E]
[D]
[R]
📄 pip-3
[E]
[D]
[R]
📄 pip-3.6
[E]
[D]
[R]
📄 pip3
[E]
[D]
[R]
📄 pip3.6
[E]
[D]
[R]
📄 pk12util
[E]
[D]
[R]
📄 pkaction
[E]
[D]
[R]
📄 pkcheck
[E]
[D]
[R]
📄 pkcs1-conv
[E]
[D]
[R]
📄 pkexec
[E]
[D]
[R]
📄 pkg-config
[E]
[D]
[R]
📄 pkgdata
[E]
[D]
[R]
📄 pkill
[E]
[D]
[R]
📄 pkla-admin-identities
[E]
[D]
[R]
📄 pkla-check-authorization
[E]
[D]
[R]
📄 pkttyagent
[E]
[D]
[R]
📄 pl2pm
[E]
[D]
[R]
📄 pldd
[E]
[D]
[R]
📄 pmap
[E]
[D]
[R]
📄 pod2html
[E]
[D]
[R]
📄 pod2man
[E]
[D]
[R]
📄 pod2text
[E]
[D]
[R]
📄 pod2usage
[E]
[D]
[R]
📄 post-grohtml
[E]
[D]
[R]
📄 powernow-k8-decode
[E]
[D]
[R]
📄 pr
[E]
[D]
[R]
📄 pre-grohtml
[E]
[D]
[R]
📄 precat
[E]
[D]
[R]
📄 preconv
[E]
[D]
[R]
📄 preunzip
[E]
[D]
[R]
📄 prezip
[E]
[D]
[R]
📄 prezip-bin
[E]
[D]
[R]
📄 printenv
[E]
[D]
[R]
📄 printf
[E]
[D]
[R]
📄 prlimit
[E]
[D]
[R]
📄 procmail
[E]
[D]
[R]
📄 prove
[E]
[D]
[R]
📄 prtstat
[E]
[D]
[R]
📄 ps
[E]
[D]
[R]
📄 psed
[E]
[D]
[R]
📄 psfaddtable
[E]
[D]
[R]
📄 psfgettable
[E]
[D]
[R]
📄 psfstriptable
[E]
[D]
[R]
📄 psfxtable
[E]
[D]
[R]
📄 pspell-config
[E]
[D]
[R]
📄 psql
[E]
[D]
[R]
📄 pstree
[E]
[D]
[R]
📄 pstree.x11
[E]
[D]
[R]
📄 pstruct
[E]
[D]
[R]
📄 ptar
[E]
[D]
[R]
📄 ptardiff
[E]
[D]
[R]
📄 ptargrep
[E]
[D]
[R]
📄 ptaskset
[E]
[D]
[R]
📄 ptx
[E]
[D]
[R]
📄 pure-ftpwho
[E]
[D]
[R]
📄 pure-pw
[E]
[D]
[R]
📄 pure-pwconvert
[E]
[D]
[R]
📄 pure-statsdecode
[E]
[D]
[R]
📄 pwd
[E]
[D]
[R]
📄 pwdx
[E]
[D]
[R]
📄 pwmake
[E]
[D]
[R]
📄 pwscore
[E]
[D]
[R]
📄 pydoc
[E]
[D]
[R]
📄 pydoc3
[E]
[D]
[R]
📄 pydoc3.6
[E]
[D]
[R]
📄 python
[E]
[D]
[R]
📄 python2
[E]
[D]
[R]
📄 python2.7
[E]
[D]
[R]
📄 python3
[E]
[D]
[R]
📄 python3.6
[E]
[D]
[R]
📄 python3.6m
[E]
[D]
[R]
📄 pyvenv
[E]
[D]
[R]
📄 pyvenv-3.6
[E]
[D]
[R]
📄 qemu-ga
[E]
[D]
[R]
📄 quota
[E]
[D]
[R]
📄 quotasync
[E]
[D]
[R]
📄 ranlib
[E]
[D]
[R]
📄 raw
[E]
[D]
[R]
📄 razor-admin
[E]
[D]
[R]
📄 razor-check
[E]
[D]
[R]
📄 razor-client
[E]
[D]
[R]
📄 razor-report
[E]
[D]
[R]
📄 razor-revoke
[E]
[D]
[R]
📄 read
[E]
[D]
[R]
📄 readelf
[E]
[D]
[R]
📄 readlink
[E]
[D]
[R]
📄 realpath
[E]
[D]
[R]
📄 rearj
[E]
[D]
[R]
📄 recode
[E]
[D]
[R]
📄 recode-sr-latin
[E]
[D]
[R]
📄 reindexdb
[E]
[D]
[R]
📄 rename
[E]
[D]
[R]
📄 renice
[E]
[D]
[R]
📄 replace
[E]
[D]
[R]
📄 repo-graph
[E]
[D]
[R]
📄 repo-rss
[E]
[D]
[R]
📄 repoclosure
[E]
[D]
[R]
📄 repodiff
[E]
[D]
[R]
📄 repomanage
[E]
[D]
[R]
📄 repoquery
[E]
[D]
[R]
📄 reposync
[E]
[D]
[R]
📄 repotrack
[E]
[D]
[R]
📄 reset
[E]
[D]
[R]
📄 resizecons
[E]
[D]
[R]
📄 resolve_stack_dump
[E]
[D]
[R]
📄 resolveip
[E]
[D]
[R]
📄 rev
[E]
[D]
[R]
📄 rhash
[E]
[D]
[R]
📄 rm
[E]
[D]
[R]
📄 rmail
[E]
[D]
[R]
📄 rmail.postfix
[E]
[D]
[R]
📄 rmdir
[E]
[D]
[R]
📄 rnano
[E]
[D]
[R]
📄 rpcgen
[E]
[D]
[R]
📄 rpm
[E]
[D]
[R]
📄 rpm2cpio
[E]
[D]
[R]
📄 rpmdb
[E]
[D]
[R]
📄 rpmgraph
[E]
[D]
[R]
📄 rpmkeys
[E]
[D]
[R]
📄 rpmquery
[E]
[D]
[R]
📄 rpmverify
[E]
[D]
[R]
📄 rrdcached
[E]
[D]
[R]
📄 rrdcgi
[E]
[D]
[R]
📄 rrdcreate
[E]
[D]
[R]
📄 rrdinfo
[E]
[D]
[R]
📄 rrdtool
[E]
[D]
[R]
📄 rrdupdate
[E]
[D]
[R]
📄 rsync
[E]
[D]
[R]
📄 rsyslog-recover-qi.pl
[E]
[D]
[R]
📄 run-parts
[E]
[D]
[R]
📄 run-with-aspell
[E]
[D]
[R]
📄 runcon
[E]
[D]
[R]
📄 rvi
[E]
[D]
[R]
📄 rview
[E]
[D]
[R]
📄 s2p
[E]
[D]
[R]
📄 sa-awl
[E]
[D]
[R]
📄 sa-check_spamd
[E]
[D]
[R]
📄 sa-compile
[E]
[D]
[R]
📄 sa-learn
[E]
[D]
[R]
📄 sa-update
[E]
[D]
[R]
📄 sadf
[E]
[D]
[R]
📄 sandbox
[E]
[D]
[R]
📄 sar
[E]
[D]
[R]
📄 sasl2-sample-client
[E]
[D]
[R]
📄 sasl2-sample-server
[E]
[D]
[R]
📄 scp
[E]
[D]
[R]
📄 screen
[E]
[D]
[R]
📄 script
[E]
[D]
[R]
📄 scriptreplay
[E]
[D]
[R]
📄 sdiff
[E]
[D]
[R]
📄 secon
[E]
[D]
[R]
📄 sed
[E]
[D]
[R]
📄 sedismod
[E]
[D]
[R]
📄 sedispol
[E]
[D]
[R]
📄 semodule_package
[E]
[D]
[R]
📄 seq
[E]
[D]
[R]
📄 sessreg
[E]
[D]
[R]
📄 setarch
[E]
[D]
[R]
📄 setfacl
[E]
[D]
[R]
📄 setfont
[E]
[D]
[R]
📄 setkeycodes
[E]
[D]
[R]
📄 setleds
[E]
[D]
[R]
📄 setmetamode
[E]
[D]
[R]
📄 setpriv
[E]
[D]
[R]
📄 setsid
[E]
[D]
[R]
📄 setterm
[E]
[D]
[R]
📄 setup-nsssysinit
[E]
[D]
[R]
📄 setup-nsssysinit.sh
[E]
[D]
[R]
📄 setvtrgb
[E]
[D]
[R]
📄 sexp-conv
[E]
[D]
[R]
📄 sftp
[E]
[D]
[R]
📄 sfv-hash
[E]
[D]
[R]
📄 sg
[E]
[D]
[R]
📄 sh
[E]
[D]
[R]
📄 sha1sum
[E]
[D]
[R]
📄 sha224sum
[E]
[D]
[R]
📄 sha256sum
[E]
[D]
[R]
📄 sha384sum
[E]
[D]
[R]
📄 sha512sum
[E]
[D]
[R]
📄 shasum
[E]
[D]
[R]
📄 show-changed-rco
[E]
[D]
[R]
📄 show-installed
[E]
[D]
[R]
📄 showconsolefont
[E]
[D]
[R]
📄 showkey
[E]
[D]
[R]
📄 showrgb
[E]
[D]
[R]
📄 shred
[E]
[D]
[R]
📄 shuf
[E]
[D]
[R]
📄 sieve-dump
[E]
[D]
[R]
📄 sieve-filter
[E]
[D]
[R]
📄 sieve-test
[E]
[D]
[R]
📄 sievec
[E]
[D]
[R]
📄 signver
[E]
[D]
[R]
📄 sigtool
[E]
[D]
[R]
📄 sim_client
[E]
[D]
[R]
📄 size
[E]
[D]
[R]
📄 skill
[E]
[D]
[R]
📄 slabinfo
[E]
[D]
[R]
📄 slabtop
[E]
[D]
[R]
📄 sleep
[E]
[D]
[R]
📄 slogin
[E]
[D]
[R]
📄 snice
[E]
[D]
[R]
📄 snmpconf
[E]
[D]
[R]
📄 soelim
[E]
[D]
[R]
📄 sort
[E]
[D]
[R]
📄 sotruss
[E]
[D]
[R]
📄 spamassassin
[E]
[D]
[R]
📄 spamc
[E]
[D]
[R]
📄 spamd
[E]
[D]
[R]
📄 spell
[E]
[D]
[R]
📄 splain
[E]
[D]
[R]
📄 split
[E]
[D]
[R]
📄 sprof
[E]
[D]
[R]
📄 sqlite3
[E]
[D]
[R]
📄 ssh
[E]
[D]
[R]
📄 ssh-add
[E]
[D]
[R]
📄 ssh-agent
[E]
[D]
[R]
📄 ssh-copy-id
[E]
[D]
[R]
📄 ssh-keygen
[E]
[D]
[R]
📄 ssh-keyscan
[E]
[D]
[R]
📄 ssltap
[E]
[D]
[R]
📄 stat
[E]
[D]
[R]
📄 statist
[E]
[D]
[R]
📄 stdbuf
[E]
[D]
[R]
📄 stream
[E]
[D]
[R]
📄 strings
[E]
[D]
[R]
📄 strip
[E]
[D]
[R]
📄 stty
[E]
[D]
[R]
📄 su
[E]
[D]
[R]
📄 sudo
[E]
[D]
[R]
📄 sudoedit
[E]
[D]
[R]
📄 sudoreplay
[E]
[D]
[R]
📄 sum
[E]
[D]
[R]
📄 svn
[E]
[D]
[R]
📄 svnadmin
[E]
[D]
[R]
📄 svndumpfilter
[E]
[D]
[R]
📄 svnlook
[E]
[D]
[R]
📄 svnrdump
[E]
[D]
[R]
📄 svnserve
[E]
[D]
[R]
📄 svnsync
[E]
[D]
[R]
📄 svnversion
[E]
[D]
[R]
📄 sxpm
[E]
[D]
[R]
📄 sync
[E]
[D]
[R]
📄 systemctl
[E]
[D]
[R]
📄 systemd-analyze
[E]
[D]
[R]
📄 systemd-ask-password
[E]
[D]
[R]
📄 systemd-cat
[E]
[D]
[R]
📄 systemd-cgls
[E]
[D]
[R]
📄 systemd-cgtop
[E]
[D]
[R]
📄 systemd-coredumpctl
[E]
[D]
[R]
📄 systemd-delta
[E]
[D]
[R]
📄 systemd-detect-virt
[E]
[D]
[R]
📄 systemd-escape
[E]
[D]
[R]
📄 systemd-firstboot
[E]
[D]
[R]
📄 systemd-hwdb
[E]
[D]
[R]
📄 systemd-inhibit
[E]
[D]
[R]
📄 systemd-loginctl
[E]
[D]
[R]
📄 systemd-machine-id-setup
[E]
[D]
[R]
📄 systemd-notify
[E]
[D]
[R]
📄 systemd-nspawn
[E]
[D]
[R]
📄 systemd-path
[E]
[D]
[R]
📄 systemd-run
[E]
[D]
[R]
📄 systemd-stdio-bridge
[E]
[D]
[R]
📄 systemd-sysv-convert
[E]
[D]
[R]
📄 systemd-tmpfiles
[E]
[D]
[R]
📄 systemd-tty-ask-password-agent
[E]
[D]
[R]
📄 tabs
[E]
[D]
[R]
📄 tac
[E]
[D]
[R]
📄 tail
[E]
[D]
[R]
📄 tailf
[E]
[D]
[R]
📄 tapestat
[E]
[D]
[R]
📄 tar
[E]
[D]
[R]
📄 taskset
[E]
[D]
[R]
📄 tbl
[E]
[D]
[R]
📄 tcamgr
[E]
[D]
[R]
📄 tcamttest
[E]
[D]
[R]
📄 tcatest
[E]
[D]
[R]
📄 tcbmgr
[E]
[D]
[R]
📄 tcbmttest
[E]
[D]
[R]
📄 tcbtest
[E]
[D]
[R]
📄 tcfmgr
[E]
[D]
[R]
📄 tcfmttest
[E]
[D]
[R]
📄 tcftest
[E]
[D]
[R]
📄 tchmgr
[E]
[D]
[R]
📄 tchmttest
[E]
[D]
[R]
📄 tchtest
[E]
[D]
[R]
📄 tctmgr
[E]
[D]
[R]
📄 tctmttest
[E]
[D]
[R]
📄 tcttest
[E]
[D]
[R]
📄 tcucodec
[E]
[D]
[R]
📄 tcumttest
[E]
[D]
[R]
📄 tcutest
[E]
[D]
[R]
📄 teamd
[E]
[D]
[R]
📄 teamdctl
[E]
[D]
[R]
📄 teamnl
[E]
[D]
[R]
📄 tee
[E]
[D]
[R]
📄 test
[E]
[D]
[R]
📄 testgdbm
[E]
[D]
[R]
📄 tic
[E]
[D]
[R]
📄 tiger-hash
[E]
[D]
[R]
📄 timedatectl
[E]
[D]
[R]
📄 timeout
[E]
[D]
[R]
📄 tload
[E]
[D]
[R]
📄 tmon
[E]
[D]
[R]
📄 tmpwatch
[E]
[D]
[R]
📄 toe
[E]
[D]
[R]
📄 tokuft_logprint
[E]
[D]
[R]
📄 tokuftdump
[E]
[D]
[R]
📄 top
[E]
[D]
[R]
📄 touch
[E]
[D]
[R]
📄 tput
[E]
[D]
[R]
📄 tr
[E]
[D]
[R]
📄 tracepath
[E]
[D]
[R]
📄 tracepath6
[E]
[D]
[R]
📄 troff
[E]
[D]
[R]
📄 true
[E]
[D]
[R]
📄 truncate
[E]
[D]
[R]
📄 trust
[E]
[D]
[R]
📄 tset
[E]
[D]
[R]
📄 tsort
[E]
[D]
[R]
📄 tth-hash
[E]
[D]
[R]
📄 tty
[E]
[D]
[R]
📄 turbostat
[E]
[D]
[R]
📄 tzselect
[E]
[D]
[R]
📄 uconv
[E]
[D]
[R]
📄 ucs2any
[E]
[D]
[R]
📄 udevadm
[E]
[D]
[R]
📄 ul
[E]
[D]
[R]
📄 umask
[E]
[D]
[R]
📄 umount
[E]
[D]
[R]
📄 unalias
[E]
[D]
[R]
📄 uname
[E]
[D]
[R]
📄 unarj
[E]
[D]
[R]
📄 unexpand
[E]
[D]
[R]
📄 unfreeze
[E]
[D]
[R]
📄 unicode_start
[E]
[D]
[R]
📄 unicode_stop
[E]
[D]
[R]
📄 uniq
[E]
[D]
[R]
📄 unlink
[E]
[D]
[R]
📄 unlz4
[E]
[D]
[R]
📄 unshare
[E]
[D]
[R]
📄 unxz
[E]
[D]
[R]
📄 unzip
[E]
[D]
[R]
📄 unzipsfx
[E]
[D]
[R]
📄 unzoo
[E]
[D]
[R]
📄 update-ca-trust
[E]
[D]
[R]
📄 update-mime-database
[E]
[D]
[R]
📄 updatedb
[E]
[D]
[R]
📄 uptime
[E]
[D]
[R]
📄 urlgrabber
[E]
[D]
[R]
📄 users
[E]
[D]
[R]
📄 usleep
[E]
[D]
[R]
📄 utmpdump
[E]
[D]
[R]
📄 uuclient
[E]
[D]
[R]
📄 uuidgen
[E]
[D]
[R]
📄 vacuumdb
[E]
[D]
[R]
📄 vdir
[E]
[D]
[R]
📄 verifytree
[E]
[D]
[R]
📄 vi
[E]
[D]
[R]
📄 view
[E]
[D]
[R]
📄 vlock
[E]
[D]
[R]
📄 vmstat
[E]
[D]
[R]
📄 w
[E]
[D]
[R]
📄 wait
[E]
[D]
[R]
📄 wall
[E]
[D]
[R]
📄 watch
[E]
[D]
[R]
📄 watchgnupg
[E]
[D]
[R]
📄 wc
[E]
[D]
[R]
📄 wdctl
[E]
[D]
[R]
📄 wget
[E]
[D]
[R]
📄 whatis
[E]
[D]
[R]
📄 whereis
[E]
[D]
[R]
📄 which
[E]
[D]
[R]
📄 whiptail
[E]
[D]
[R]
📄 whirlpool-hash
[E]
[D]
[R]
📄 who
[E]
[D]
[R]
📄 whoami
[E]
[D]
[R]
📄 word-list-compress
[E]
[D]
[R]
📄 write
[E]
[D]
[R]
📄 wsrep_sst_common
[E]
[D]
[R]
📄 wsrep_sst_mariabackup
[E]
[D]
[R]
📄 wsrep_sst_mysqldump
[E]
[D]
[R]
📄 wsrep_sst_rsync
[E]
[D]
[R]
📄 wsrep_sst_rsync_wan
[E]
[D]
[R]
📄 wsrep_sst_xtrabackup
[E]
[D]
[R]
📄 wsrep_sst_xtrabackup-v2
[E]
[D]
[R]
📄 x86_64
[E]
[D]
[R]
📄 x86_64-redhat-linux-c++
[E]
[D]
[R]
📄 x86_64-redhat-linux-g++
[E]
[D]
[R]
📄 x86_64-redhat-linux-gcc
[E]
[D]
[R]
📄 x86_energy_perf_policy
[E]
[D]
[R]
📄 xargs
[E]
[D]
[R]
📄 xgamma
[E]
[D]
[R]
📄 xgettext
[E]
[D]
[R]
📄 xhost
[E]
[D]
[R]
📄 xinput
[E]
[D]
[R]
📄 xkill
[E]
[D]
[R]
📄 xml2-config
[E]
[D]
[R]
📄 xmlcatalog
[E]
[D]
[R]
📄 xmllint
[E]
[D]
[R]
📄 xmlwf
[E]
[D]
[R]
📄 xmodmap
[E]
[D]
[R]
📄 xorg-x11-fonts-update-dirs
[E]
[D]
[R]
📄 xrandr
[E]
[D]
[R]
📄 xrdb
[E]
[D]
[R]
📄 xrefresh
[E]
[D]
[R]
📄 xset
[E]
[D]
[R]
📄 xsetmode
[E]
[D]
[R]
📄 xsetpointer
[E]
[D]
[R]
📄 xsetroot
[E]
[D]
[R]
📄 xslt-config
[E]
[D]
[R]
📄 xsltproc
[E]
[D]
[R]
📄 xstdcmap
[E]
[D]
[R]
📄 xsubpp
[E]
[D]
[R]
📄 xz
[E]
[D]
[R]
📄 xzcat
[E]
[D]
[R]
📄 xzcmp
[E]
[D]
[R]
📄 xzdec
[E]
[D]
[R]
📄 xzdiff
[E]
[D]
[R]
📄 xzegrep
[E]
[D]
[R]
📄 xzfgrep
[E]
[D]
[R]
📄 xzgrep
[E]
[D]
[R]
📄 xzless
[E]
[D]
[R]
📄 xzmore
[E]
[D]
[R]
📄 yes
[E]
[D]
[R]
📄 ypdomainname
[E]
[D]
[R]
📄 yum
[E]
[D]
[R]
📄 yum-builddep
[E]
[D]
[R]
📄 yum-config-manager
[E]
[D]
[R]
📄 yum-debug-dump
[E]
[D]
[R]
📄 yum-debug-restore
[E]
[D]
[R]
📄 yum-groups-manager
[E]
[D]
[R]
📄 yumdownloader
[E]
[D]
[R]
📄 zcat
[E]
[D]
[R]
📄 zcmp
[E]
[D]
[R]
📄 zdiff
[E]
[D]
[R]
📄 zegrep
[E]
[D]
[R]
📄 zfgrep
[E]
[D]
[R]
📄 zforce
[E]
[D]
[R]
📄 zgrep
[E]
[D]
[R]
📄 zip
[E]
[D]
[R]
📄 zipcloak
[E]
[D]
[R]
📄 zipdetails
[E]
[D]
[R]
📄 zipgrep
[E]
[D]
[R]
📄 zipinfo
[E]
[D]
[R]
📄 zipnote
[E]
[D]
[R]
📄 zipsplit
[E]
[D]
[R]
📄 zless
[E]
[D]
[R]
📄 zmore
[E]
[D]
[R]
📄 znew
[E]
[D]
[R]
📄 zsoelim
[E]
[D]
[R]
Editing: glib-mkenums
#!/usr/bin/env /usr/bin/python # If the code below looks horrible and unpythonic, do not panic. # # It is. # # This is a manual conversion from the original Perl script to # Python. Improvements are welcome. # from __future__ import print_function, unicode_literals import argparse import os import re import sys import tempfile import io import errno import codecs import locale VERSION_STR = '''glib-mkenums version 2.56.1 glib-mkenums comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of glib-mkenums under the terms of the GNU General Public License which can be found in the GLib source package. Sources, examples and contact information are available at http://www.gtk.org''' # pylint: disable=too-few-public-methods class Color: '''ANSI Terminal colors''' GREEN = '\033[1;32m' BLUE = '\033[1;34m' YELLOW = '\033[1;33m' RED = '\033[1;31m' END = '\033[0m' def print_color(msg, color=Color.END, prefix='MESSAGE'): '''Print a string with a color prefix''' if os.isatty(sys.stderr.fileno()): real_prefix = '{start}{prefix}{end}'.format(start=color, prefix=prefix, end=Color.END) else: real_prefix = prefix print('{prefix}: {msg}'.format(prefix=real_prefix, msg=msg), file=sys.stderr) def print_error(msg): '''Print an error, and terminate''' print_color(msg, color=Color.RED, prefix='ERROR') sys.exit(1) def print_warning(msg, fatal=False): '''Print a warning, and optionally terminate''' if fatal: color = Color.RED prefix = 'ERROR' else: color = Color.YELLOW prefix = 'WARNING' print_color(msg, color, prefix) if fatal: sys.exit(1) def print_info(msg): '''Print a message''' print_color(msg, color=Color.GREEN, prefix='INFO') def write_output(output): global output_stream print(output, file=output_stream) # Python 2 defaults to ASCII in case stdout is redirected. # This should make it match Python 3, which uses the locale encoding. if sys.stdout.encoding is None: output_stream = codecs.getwriter( locale.getpreferredencoding())(sys.stdout) else: output_stream = sys.stdout # Some source files aren't UTF-8 and the old perl version didn't care. # Replace invalid data with a replacement character to keep things working. # https://bugzilla.gnome.org/show_bug.cgi?id=785113#c20 def replace_and_warn(err): # 7 characters of context either side of the offending character print_warning('UnicodeWarning: {} at {} ({})'.format( err.reason, err.start, err.object[err.start - 7:err.end + 7])) return ('?', err.end) codecs.register_error('replace_and_warn', replace_and_warn) # glib-mkenums.py # Information about the current enumeration flags = None # Is enumeration a bitmask? option_underscore_name = '' # Overriden underscore variant of the enum name # for example to fix the cases we don't get the # mixed-case -> underscorized transform right. option_lowercase_name = '' # DEPRECATED. A lower case name to use as part # of the *_get_type() function, instead of the # one that we guess. For instance, when an enum # uses abnormal capitalization and we can not # guess where to put the underscores. seenbitshift = 0 # Have we seen bitshift operators? enum_prefix = None # Prefix for this enumeration enumname = '' # Name for this enumeration enumshort = '' # $enumname without prefix enumname_prefix = '' # prefix of $enumname enumindex = 0 # Global enum counter firstenum = 1 # Is this the first enumeration per file? entries = [] # [ name, val ] for each entry sandbox = None # sandbox for safe evaluation of expressions output = '' # Filename to write result into def parse_trigraph(opts): result = {} for opt in re.split(r'\s*,\s*', opts): opt = re.sub(r'^\s*', '', opt) opt = re.sub(r'\s*$', '', opt) m = re.search(r'(\w+)(?:=(.+))?', opt) assert m is not None groups = m.groups() key = groups[0] if len(groups) > 1: val = groups[1] else: val = 1 result[key] = val return result def parse_entries(file, file_name): global entries, enumindex, enumname, seenbitshift, flags looking_for_name = False while True: line = file.readline() if not line: break line = line.strip() # read lines until we have no open comments while re.search(r'/\*([^*]|\*(?!/))*$', line): line += file.readline() # strip comments w/o options line = re.sub(r'''/\*(?!<) ([^*]+|\*(?!/))* \*/''', '', line, flags=re.X) line = line.rstrip() # skip empty lines if len(line.strip()) == 0: continue if looking_for_name: m = re.match(r'\s*(\w+)', line) if m: enumname = m.group(1) return True # Handle include files m = re.match(r'\#include\s*<([^>]*)>', line) if m: newfilename = os.path.join("..", m.group(1)) newfile = io.open(newfilename, encoding="utf-8", errors="replace_and_warn") if not parse_entries(newfile, newfilename): return False else: continue m = re.match(r'\s*\}\s*(\w+)', line) if m: enumname = m.group(1) enumindex += 1 return 1 m = re.match(r'\s*\}', line) if m: enumindex += 1 looking_for_name = True continue m = re.match(r'''\s* (\w+)\s* # name (?:=( # value \s*\w+\s*\(.*\)\s* # macro with multiple args | # OR (?:[^,/]|/(?!\*))* # anything but a comma or comment ))?,?\s* (?:/\*< # options (([^*]|\*(?!/))*) >\s*\*/)?,? \s*$''', line, flags=re.X) if m: groups = m.groups() name = groups[0] value = None options = None if len(groups) > 1: value = groups[1] if len(groups) > 2: options = groups[2] if flags is None and value is not None and '<<' in value: seenbitshift = 1 if options is not None: options = parse_trigraph(options) if 'skip' not in options: entries.append((name, value, options['nick'])) else: entries.append((name, value)) elif re.match(r's*\#', line): pass else: print_warning('Failed to parse "{}" in {}'.format(line, file_name)) return False help_epilog = '''Production text substitutions: \u0040EnumName\u0040 PrefixTheXEnum \u0040enum_name\u0040 prefix_the_xenum \u0040ENUMNAME\u0040 PREFIX_THE_XENUM \u0040ENUMSHORT\u0040 THE_XENUM \u0040ENUMPREFIX\u0040 PREFIX \u0040VALUENAME\u0040 PREFIX_THE_XVALUE \u0040valuenick\u0040 the-xvalue \u0040valuenum\u0040 the integer value (limited support, Since: 2.26) \u0040type\u0040 either enum or flags \u0040Type\u0040 either Enum or Flags \u0040TYPE\u0040 either ENUM or FLAGS \u0040filename\u0040 name of current input file \u0040basename\u0040 base name of the current input file (Since: 2.22) ''' # production variables: idprefix = "" # "G", "Gtk", etc symprefix = "" # "g", "gtk", etc, if not just lc($idprefix) fhead = "" # output file header fprod = "" # per input file production ftail = "" # output file trailer eprod = "" # per enum text (produced prior to value itarations) vhead = "" # value header, produced before iterating over enum values vprod = "" # value text, produced for each enum value vtail = "" # value tail, produced after iterating over enum values comment_tmpl = "" # comment template def read_template_file(file): global idprefix, symprefix, fhead, fprod, ftail, eprod, vhead, vprod, vtail, comment_tmpl tmpl = {'file-header': fhead, 'file-production': fprod, 'file-tail': ftail, 'enumeration-production': eprod, 'value-header': vhead, 'value-production': vprod, 'value-tail': vtail, 'comment': comment_tmpl, } in_ = 'junk' ifile = io.open(file, encoding="utf-8", errors="replace_and_warn") for line in ifile: m = re.match(r'\/\*\*\*\s+(BEGIN|END)\s+([\w-]+)\s+\*\*\*\/', line) if m: if in_ == 'junk' and m.group(1) == 'BEGIN' and m.group(2) in tmpl: in_ = m.group(2) continue elif in_ == m.group(2) and m.group(1) == 'END' and m.group(2) in tmpl: in_ = 'junk' continue else: sys.exit("Malformed template file " + file) if in_ != 'junk': tmpl[in_] += line if in_ != 'junk': sys.exit("Malformed template file " + file) fhead = tmpl['file-header'] fprod = tmpl['file-production'] ftail = tmpl['file-tail'] eprod = tmpl['enumeration-production'] vhead = tmpl['value-header'] vprod = tmpl['value-production'] vtail = tmpl['value-tail'] comment_tmpl = tmpl['comment'] parser = argparse.ArgumentParser(epilog=help_epilog, formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument('--identifier-prefix', default='', dest='idprefix', help='Identifier prefix') parser.add_argument('--symbol-prefix', default='', dest='symprefix', help='symbol-prefix') parser.add_argument('--fhead', default=[], dest='fhead', action='append', help='Output file header') parser.add_argument('--ftail', default=[], dest='ftail', action='append', help='Per input file production') parser.add_argument('--fprod', default=[], dest='fprod', action='append', help='Put out TEXT everytime a new input file is being processed.') parser.add_argument('--eprod', default=[], dest='eprod', action='append', help='Per enum text (produced prior to value iterations)') parser.add_argument('--vhead', default=[], dest='vhead', action='append', help='Value header, produced before iterating over enum values') parser.add_argument('--vprod', default=[], dest='vprod', action='append', help='Value text, produced for each enum value.') parser.add_argument('--vtail', default=[], dest='vtail', action='append', help='Value tail, produced after iterating over enum values') parser.add_argument('--comments', default='', dest='comment_tmpl', help='Comment structure') parser.add_argument('--template', default='', dest='template', help='Template file') parser.add_argument('--output', default=None, dest='output') parser.add_argument('--version', '-v', default=False, action='store_true', dest='version', help='Print version informations') parser.add_argument('args', nargs='*') options = parser.parse_args() if options.version: print(VERSION_STR) sys.exit(0) def unescape_cmdline_args(arg): arg = arg.replace('\\n', '\n') arg = arg.replace('\\r', '\r') return arg.replace('\\t', '\t') if options.template != '': read_template_file(options.template) idprefix += options.idprefix symprefix += options.symprefix # This is a hack to maintain some semblance of backward compatibility with # the old, Perl-based glib-mkenums. The old tool had an implicit ordering # on the arguments and templates; each argument was parsed in order, and # all the strings appended. This allowed developers to write: # # glib-mkenums \ # --fhead ... \ # --template a-template-file.c.in \ # --ftail ... # # And have the fhead be prepended to the file-head stanza in the template, # as well as the ftail be appended to the file-tail stanza in the template. # Short of throwing away ArgumentParser and going over sys.argv[] element # by element, we can simulate that behaviour by ensuring some ordering in # how we build the template strings: # # - the head stanzas are always prepended to the template # - the prod stanzas are always appended to the template # - the tail stanzas are always appended to the template # # Within each instance of the command line argument, we append each value # to the array in the order in which it appears on the command line. fhead = ''.join([unescape_cmdline_args(x) for x in options.fhead]) + fhead vhead = ''.join([unescape_cmdline_args(x) for x in options.vhead]) + vhead fprod += ''.join([unescape_cmdline_args(x) for x in options.fprod]) eprod += ''.join([unescape_cmdline_args(x) for x in options.eprod]) vprod += ''.join([unescape_cmdline_args(x) for x in options.vprod]) ftail = ftail + ''.join([unescape_cmdline_args(x) for x in options.ftail]) vtail = vtail + ''.join([unescape_cmdline_args(x) for x in options.vtail]) if options.comment_tmpl != '': comment_tmpl = unescape_cmdline_args(options.comment_tmpl) elif comment_tmpl == "": # default to C-style comments comment_tmpl = "/* \u0040comment\u0040 */" output = options.output if output is not None: (out_dir, out_fn) = os.path.split(options.output) out_suffix = '_' + os.path.splitext(out_fn)[1] if out_dir == '': out_dir = '.' fd, filename = tempfile.mkstemp(dir=out_dir) os.close(fd) tmpfile = io.open(filename, "w", encoding="utf-8") output_stream = tmpfile else: tmpfile = None # put auto-generation comment comment = comment_tmpl.replace('\u0040comment\u0040', 'This file is generated by glib-mkenums, do ' 'not modify it. This code is licensed under ' 'the same license as the containing project. ' 'Note that it links to GLib, so must comply ' 'with the LGPL linking clauses.') write_output("\n" + comment + '\n') def replace_specials(prod): prod = prod.replace(r'\\a', r'\a') prod = prod.replace(r'\\b', r'\b') prod = prod.replace(r'\\t', r'\t') prod = prod.replace(r'\\n', r'\n') prod = prod.replace(r'\\f', r'\f') prod = prod.replace(r'\\r', r'\r') prod = prod.rstrip() return prod if len(fhead) > 0: prod = fhead base = os.path.basename(options.args[0]) prod = prod.replace('\u0040filename\u0040', options.args[0]) prod = prod.replace('\u0040basename\u0040', base) prod = replace_specials(prod) write_output(prod) def process_file(curfilename): global entries, flags, seenbitshift, enum_prefix firstenum = True try: curfile = io.open(curfilename, encoding="utf-8", errors="replace_and_warn") except IOError as e: if e.errno == errno.ENOENT: print_warning('No file "{}" found.'.format(curfilename)) return raise while True: line = curfile.readline() if not line: break line = line.strip() # read lines until we have no open comments while re.search(r'/\*([^*]|\*(?!/))*$', line): line += curfile.readline() # strip comments w/o options line = re.sub(r'''/\*(?!<) ([^*]+|\*(?!/))* \*/''', '', line) # ignore forward declarations if re.match(r'\s*typedef\s+enum.*;', line): continue m = re.match(r'''\s*typedef\s+enum\s*[_A-Za-z]*[_A-Za-z0-9]*\s* ({)?\s* (?:/\*< (([^*]|\*(?!/))*) >\s*\*/)? \s*({)?''', line, flags=re.X) if m: groups = m.groups() if len(groups) >= 2 and groups[1] is not None: options = parse_trigraph(groups[1]) if 'skip' in options: continue enum_prefix = options.get('prefix', None) flags = options.get('flags', None) if 'flags' in options: if flags is None: flags = 1 else: flags = int(flags) option_lowercase_name = options.get('lowercase_name', None) option_underscore_name = options.get('underscore_name', None) else: enum_prefix = None flags = None option_lowercase_name = None option_underscore_name = None if option_lowercase_name is not None: if option_underscore_name is not None: print_warning("lowercase_name overriden with underscore_name") option_lowercase_name = None else: print_warning("lowercase_name is deprecated, use underscore_name") # Didn't have trailing '{' look on next lines if groups[0] is None and (len(groups) < 4 or groups[3] is None): while True: line = curfile.readline() if not line: print_error("Syntax error when looking for opening { in enum") if re.match(r'\s*\{', line): break seenbitshift = 0 entries = [] # Now parse the entries parse_entries(curfile, curfilename) # figure out if this was a flags or enums enumeration if flags is None: flags = seenbitshift # Autogenerate a prefix if enum_prefix is None: for entry in entries: if len(entry) < 3 or entry[2] is None: name = entry[0] if enum_prefix is not None: enum_prefix = os.path.commonprefix([name, enum_prefix]) else: enum_prefix = name if enum_prefix is None: enum_prefix = "" else: # Trim so that it ends in an underscore enum_prefix = re.sub(r'_[^_]*$', '_', enum_prefix) else: # canonicalize user defined prefixes enum_prefix = enum_prefix.upper() enum_prefix = enum_prefix.replace('-', '_') enum_prefix = re.sub(r'(.*)([^_])$', r'\1\2_', enum_prefix) fixed_entries = [] for e in entries: name = e[0] num = e[1] if len(e) < 3 or e[2] is None: nick = re.sub(r'^' + enum_prefix, '', name) nick = nick.replace('_', '-').lower() e = (name, num, nick) fixed_entries.append(e) entries = fixed_entries # Spit out the output if option_underscore_name is not None: enumlong = option_underscore_name.upper() enumsym = option_underscore_name.lower() enumshort = re.sub(r'^[A-Z][A-Z0-9]*_', '', enumlong) enumname_prefix = re.sub('_' + enumshort + '$', '', enumlong) elif symprefix == '' and idprefix == '': # enumname is e.g. GMatchType enspace = re.sub(r'^([A-Z][a-z]*).*$', r'\1', enumname) enumshort = re.sub(r'^[A-Z][a-z]*', '', enumname) enumshort = re.sub(r'([^A-Z])([A-Z])', r'\1_\2', enumshort) enumshort = re.sub(r'([A-Z][A-Z])([A-Z][0-9a-z])', r'\1_\2', enumshort) enumshort = enumshort.upper() enumname_prefix = re.sub(r'^([A-Z][a-z]*).*$', r'\1', enumname).upper() enumlong = enspace.upper() + "_" + enumshort enumsym = enspace.lower() + "_" + enumshort.lower() if option_lowercase_name is not None: enumsym = option_lowercase_name else: enumshort = enumname if idprefix: enumshort = re.sub(r'^' + idprefix, '', enumshort) else: enumshort = re.sub(r'/^[A-Z][a-z]*', '', enumshort) enumshort = re.sub(r'([^A-Z])([A-Z])', r'\1_\2', enumshort) enumshort = re.sub(r'([A-Z][A-Z])([A-Z][0-9a-z])', r'\1_\2', enumshort) enumshort = enumshort.upper() if symprefix: enumname_prefix = symprefix.upper() else: enumname_prefix = idprefix.upper() enumlong = enumname_prefix + "_" + enumshort enumsym = enumlong.lower() if firstenum: firstenum = False if len(fprod) > 0: prod = fprod base = os.path.basename(curfilename) prod = prod.replace('\u0040filename\u0040', curfilename) prod = prod.replace('\u0040basename\u0040', base) prod = replace_specials(prod) write_output(prod) if len(eprod) > 0: prod = eprod prod = prod.replace('\u0040enum_name\u0040', enumsym) prod = prod.replace('\u0040EnumName\u0040', enumname) prod = prod.replace('\u0040ENUMSHORT\u0040', enumshort) prod = prod.replace('\u0040ENUMNAME\u0040', enumlong) prod = prod.replace('\u0040ENUMPREFIX\u0040', enumname_prefix) if flags: prod = prod.replace('\u0040type\u0040', 'flags') else: prod = prod.replace('\u0040type\u0040', 'enum') if flags: prod = prod.replace('\u0040Type\u0040', 'Flags') else: prod = prod.replace('\u0040Type\u0040', 'Enum') if flags: prod = prod.replace('\u0040TYPE\u0040', 'FLAGS') else: prod = prod.replace('\u0040TYPE\u0040', 'ENUM') prod = replace_specials(prod) write_output(prod) if len(vhead) > 0: prod = vhead prod = prod.replace('\u0040enum_name\u0040', enumsym) prod = prod.replace('\u0040EnumName\u0040', enumname) prod = prod.replace('\u0040ENUMSHORT\u0040', enumshort) prod = prod.replace('\u0040ENUMNAME\u0040', enumlong) prod = prod.replace('\u0040ENUMPREFIX\u0040', enumname_prefix) if flags: prod = prod.replace('\u0040type\u0040', 'flags') else: prod = prod.replace('\u0040type\u0040', 'enum') if flags: prod = prod.replace('\u0040Type\u0040', 'Flags') else: prod = prod.replace('\u0040Type\u0040', 'Enum') if flags: prod = prod.replace('\u0040TYPE\u0040', 'FLAGS') else: prod = prod.replace('\u0040TYPE\u0040', 'ENUM') prod = replace_specials(prod) write_output(prod) if len(vprod) > 0: prod = vprod next_num = 0 prod = replace_specials(prod) for name, num, nick in entries: tmp_prod = prod if '\u0040valuenum\u0040' in prod: # only attempt to eval the value if it is requested # this prevents us from throwing errors otherwise if num is not None: # use sandboxed evaluation as a reasonable # approximation to C constant folding inum = eval(num, {}, {}) # make sure it parsed to an integer if not isinstance(inum, int): sys.exit("Unable to parse enum value '%s'" % num) num = inum else: num = next_num tmp_prod = tmp_prod.replace('\u0040valuenum\u0040', str(num)) next_num = int(num) + 1 tmp_prod = tmp_prod.replace('\u0040VALUENAME\u0040', name) tmp_prod = tmp_prod.replace('\u0040valuenick\u0040', nick) if flags: tmp_prod = tmp_prod.replace('\u0040type\u0040', 'flags') else: tmp_prod = tmp_prod.replace('\u0040type\u0040', 'enum') if flags: tmp_prod = tmp_prod.replace('\u0040Type\u0040', 'Flags') else: tmp_prod = tmp_prod.replace('\u0040Type\u0040', 'Enum') if flags: tmp_prod = tmp_prod.replace('\u0040TYPE\u0040', 'FLAGS') else: tmp_prod = tmp_prod.replace('\u0040TYPE\u0040', 'ENUM') tmp_prod = tmp_prod.rstrip() write_output(tmp_prod) if len(vtail) > 0: prod = vtail prod = prod.replace('\u0040enum_name\u0040', enumsym) prod = prod.replace('\u0040EnumName\u0040', enumname) prod = prod.replace('\u0040ENUMSHORT\u0040', enumshort) prod = prod.replace('\u0040ENUMNAME\u0040', enumlong) prod = prod.replace('\u0040ENUMPREFIX\u0040', enumname_prefix) if flags: prod = prod.replace('\u0040type\u0040', 'flags') else: prod = prod.replace('\u0040type\u0040', 'enum') if flags: prod = prod.replace('\u0040Type\u0040', 'Flags') else: prod = prod.replace('\u0040Type\u0040', 'Enum') if flags: prod = prod.replace('\u0040TYPE\u0040', 'FLAGS') else: prod = prod.replace('\u0040TYPE\u0040', 'ENUM') prod = replace_specials(prod) write_output(prod) for fname in sorted(options.args): process_file(fname) if len(ftail) > 0: prod = ftail base = os.path.basename(options.args[-1]) # FIXME, wrong prod = prod.replace('\u0040filename\u0040', 'ARGV') # wrong too prod = prod.replace('\u0040basename\u0040', base) prod = replace_specials(prod) write_output(prod) # put auto-generation comment comment = comment_tmpl comment = comment.replace('\u0040comment\u0040', 'Generated data ends here') write_output("\n" + comment + "\n") if tmpfile is not None: tmpfilename = tmpfile.name tmpfile.close() try: os.unlink(options.output) except OSError as error: if error.errno != errno.ENOENT: raise error os.rename(tmpfilename, options.output)
Save