OXIESEC PANEL
- Current Dir:
/
/
usr
/
sbin
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
10/21/2019 03:48:12 PM
rwxr-xr-x
📄
a2disconf
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2dismod
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2dissite
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2enconf
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2enmod
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2ensite
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2query
9.64 KB
03/08/2023 05:34:33 PM
rwxr-xr-x
📄
aa-remove-unknown
2.85 KB
06/20/2023 11:51:13 PM
rwxr-xr-x
📄
aa-status
8.41 KB
06/20/2023 11:51:13 PM
rwxr-xr-x
📄
accessdb
10.23 KB
08/04/2018 07:16:12 PM
rwxr-xr-x
📄
acpid
50.84 KB
04/28/2017 04:28:10 AM
rwxr-xr-x
📄
add-shell
860 bytes
12/30/2017 06:15:02 PM
rwxr-xr-x
📄
addgnupghome
3.01 KB
07/04/2022 04:20:59 PM
rwxr-xr-x
📄
addgroup
36.45 KB
12/05/2017 04:57:20 PM
rwxr-xr-x
📄
adduser
36.45 KB
12/05/2017 04:57:20 PM
rwxr-xr-x
📄
apache2
659.69 KB
03/08/2023 05:34:33 PM
rwxr-xr-x
📄
apache2ctl
7.06 KB
03/04/2022 10:48:50 AM
rwxr-xr-x
📄
apachectl
7.06 KB
03/04/2022 10:48:50 AM
rwxr-xr-x
📄
apparmor_status
8.41 KB
06/20/2023 11:51:13 PM
rwxr-xr-x
📄
applygnupgdefaults
2.17 KB
07/04/2022 04:20:59 PM
rwxr-xr-x
📄
arp
61.3 KB
01/10/2017 04:25:08 AM
rwxr-xr-x
📄
arpd
54.03 KB
01/26/2021 01:33:08 PM
rwxr-xr-x
📄
atd
26.01 KB
02/20/2018 06:59:43 AM
rwxr-xr-x
📄
bcache-super-show
13.99 KB
08/05/2020 08:44:05 PM
rwxr-xr-x
📄
biosdecode
18.87 KB
01/27/2020 06:09:10 PM
rwxr-xr-x
📄
check_forensic
952 bytes
04/26/2011 03:10:00 PM
rwxr-xr-x
📄
chgpasswd
57.83 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
chmem
42.08 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
chpasswd
53.86 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
chroot
38.18 KB
01/18/2018 09:43:49 AM
rwxr-xr-x
📄
cpgr
55.96 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
cppw
55.96 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
cron
46.3 KB
05/10/2022 08:59:19 PM
rwxr-xr-x
📄
cryptdisks_start
1.11 KB
08/03/2020 09:28:48 PM
rwxr-xr-x
📄
cryptdisks_stop
1.16 KB
08/03/2020 09:28:48 PM
rwxr-xr-x
📄
delgroup
16.11 KB
12/05/2017 04:57:20 PM
rwxr-xr-x
📄
deluser
16.11 KB
12/05/2017 04:57:20 PM
rwxr-xr-x
📄
dmidecode
106.54 KB
01/27/2020 06:09:10 PM
rwxr-xr-x
📄
dnsmasq
379.6 KB
04/18/2023 08:21:55 AM
rwxr-xr-x
📄
dpkg-preconfigure
3.58 KB
05/06/2019 04:30:30 PM
rwxr-xr-x
📄
dpkg-reconfigure
4.34 KB
05/06/2019 04:30:30 PM
rwxr-xr-x
📄
e2freefrag
14.07 KB
06/02/2022 02:37:00 PM
rwxr-xr-x
📄
e4crypt
22.07 KB
06/02/2022 02:37:00 PM
rwxr-xr-x
📄
e4defrag
25.99 KB
06/02/2022 02:37:00 PM
rwxr-xr-x
📄
escapesrc
22.16 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
faillock
13.99 KB
02/02/2023 09:24:07 AM
rwxr-xr-x
📄
fdformat
30.08 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
filefrag
14.02 KB
06/02/2022 02:37:00 PM
rwxr-xr-x
📄
genccode
10.36 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
gencmn
10.44 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
genl
58.05 KB
01/26/2021 01:33:08 PM
rwxr-xr-x
📄
gennorm2
54.59 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
gensprep
18.5 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
groupadd
61.92 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
groupdel
70.37 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
groupmems
57.87 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
groupmod
68.18 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
grpck
53.8 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
grpconv
49.68 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
grpunconv
49.68 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
grub-install
1003.51 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-macbless
780.84 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-mkconfig
8.03 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-mkdevicemap
207.62 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-probe
793.09 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-reboot
4.73 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-set-default
832 bytes
03/24/2018 12:56:45 AM
rwxr-xr-x
📄
grub-set-default-legacy-ec2
3.13 KB
03/24/2018 12:56:45 AM
rwxr-xr-x
📄
grub-set-default.real
3.47 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
httxt2dbm
9.99 KB
03/08/2023 05:34:33 PM
rwxr-xr-x
📄
iconvconfig
30.25 KB
05/03/2022 10:19:39 AM
rwxr-xr-x
📄
icupkg
18.77 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
init.lxc
38.5 KB
05/05/2023 12:06:12 PM
rwxr-xr-x
📄
init.lxc.static
1005.91 KB
05/05/2023 12:06:12 PM
rwxr-xr-x
📄
invoke-rc.d
15.66 KB
10/25/2017 03:38:42 PM
rwxr-xr-x
📄
ip6tables-apply
6.85 KB
05/09/2023 06:42:18 PM
rwxr-xr-x
📄
iptables-apply
6.85 KB
05/09/2023 06:42:18 PM
rwxr-xr-x
📄
irqbalance
62.68 KB
01/09/2019 10:38:44 AM
rwxr-xr-x
📄
irqbalance-ui
34.06 KB
01/09/2019 10:38:44 AM
rwxr-xr-x
📄
iscsi-iname
9.99 KB
04/06/2022 07:19:56 PM
rwxr-xr-x
📄
iscsi_discovery
5.16 KB
09/29/2016 06:33:24 PM
rwxr-xr-x
📄
iscsid
398.15 KB
04/06/2022 07:19:56 PM
rwxr-xr-x
📄
iscsistart
358.13 KB
04/06/2022 07:19:56 PM
rwxr-xr-x
📄
ldattach
30.08 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
locale-gen
4.3 KB
12/07/2020 04:38:09 PM
rwxr-xr-x
📄
logrotate
74.09 KB
08/21/2017 11:01:27 PM
rwxr-xr-x
📄
luksformat
3.32 KB
08/03/2020 09:28:48 PM
rwxr-xr-x
📄
maidag
69.88 KB
11/07/2017 09:06:00 PM
rwxr-xr-x
📄
make-bcache
18.07 KB
08/05/2020 08:44:05 PM
rwxr-xr-x
📄
make-ssl-cert
3.78 KB
04/28/2017 07:58:22 PM
rwxr-xr-x
📄
mkinitramfs
10.89 KB
07/01/2021 01:11:48 PM
rwxr-xr-x
📄
mklost+found
9.99 KB
06/02/2022 02:37:00 PM
rwxr-xr-x
📄
mysqld
23.16 MB
04/23/2023 02:08:47 PM
rwxr-xr-x
📄
netplan
798 bytes
09/07/2021 03:19:37 PM
rwxr-xr-x
📄
newusers
82.39 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
nfnl_osf
13.99 KB
05/09/2023 06:42:18 PM
rwxr-xr-x
📄
nologin
5.99 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
overlayroot-chroot
2.45 KB
09/20/2018 01:29:41 PM
rwxr-xr-x
📄
ownership
10.13 KB
01/27/2020 06:09:10 PM
rwxr-xr-x
📄
pam-auth-update
19.38 KB
07/21/2020 11:40:59 PM
rwxr-xr-x
📄
pam_getenv
2.82 KB
08/23/2018 11:37:53 PM
rwxr-xr-x
📄
pam_timestamp_check
9.99 KB
02/02/2023 09:24:07 AM
rwxr-xr-x
📄
paperconfig
4.07 KB
04/28/2017 05:17:56 AM
rwxr-xr-x
📄
php-fpm7.2
4.65 MB
02/23/2023 01:29:25 PM
rwxr-xr-x
📄
phpdismod
7.11 KB
01/17/2018 11:50:00 PM
rwxr-xr-x
📄
phpenmod
7.11 KB
01/17/2018 11:50:00 PM
rwxr-xr-x
📄
phpquery
6.24 KB
01/17/2018 11:50:00 PM
rwxr-xr-x
📄
popcon-largest-unused
543 bytes
02/22/2018 05:15:22 AM
rwxr-xr-x
📄
popularity-contest
4.92 KB
02/22/2018 05:15:22 AM
rwxr-xr-x
📄
postalias
17.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postcat
18.06 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postconf
179.47 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postdrop
14.12 KB
08/12/2021 12:43:19 PM
r-xr-xr-x
📄
postfix
14.07 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postfix-add-filter
4.9 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postfix-add-policy
3.83 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postkick
9.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postlock
9.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postlog
10.15 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postmap
17.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postmulti
26.38 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postqueue
22.07 KB
08/12/2021 12:43:19 PM
r-xr-xr-x
📄
postsuper
22.32 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
posttls-finger
34.09 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
pwck
49.8 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
pwconv
45.7 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
pwunconv
45.68 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
qmqp-sink
13.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
qmqp-source
18.01 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
qshape
12.55 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
readprofile
18.11 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
remove-shell
904 bytes
12/30/2017 06:15:02 PM
rwxr-xr-x
📄
rmail
13.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
rmt
58.39 KB
02/15/2023 02:55:10 PM
rwxr-xr-x
📄
rmt-tar
58.39 KB
02/15/2023 02:55:10 PM
rwxr-xr-x
📄
rsyslogd
668.54 KB
05/03/2022 09:20:37 AM
rwxr-xr-x
📄
rtcwake
42.08 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
sendmail
26.15 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
service
9.04 KB
10/25/2017 03:38:42 PM
rwxr-xr-x
📄
setvesablank
14.07 KB
01/22/2018 01:49:48 PM
rwxr-xr-x
📄
slapacl
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapadd
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapauth
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapcat
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapd
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapdn
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapindex
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slappasswd
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapschema
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slaptest
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
smtp-sink
30.93 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
smtp-source
22.02 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
split-logfile
2.36 KB
03/08/2023 05:34:33 PM
rwxr-xr-x
📄
sshd
772.41 KB
03/30/2022 01:17:14 PM
rwxr-xr-x
📄
tarcat
936 bytes
02/15/2023 02:55:10 PM
rwxr-xr-x
📄
tcpdump
999.6 KB
02/10/2023 06:11:16 PM
rwxr-xr-x
📄
tzconfig
106 bytes
04/03/2023 11:03:22 AM
rwxr-xr-x
📄
ufw
4.82 KB
10/25/2021 05:30:24 PM
rwxr-xr-x
📄
update-ca-certificates
5.27 KB
05/18/2023 01:09:37 PM
rwxr-xr-x
📄
update-grub
64 bytes
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
update-grub-legacy-ec2
43.96 KB
03/24/2018 12:56:45 AM
rwxr-xr-x
📄
update-grub2
64 bytes
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
update-gsfontmap
450 bytes
04/13/2023 01:09:22 PM
rwxr-xr-x
📄
update-icon-caches
596 bytes
04/02/2019 03:46:36 PM
rwxr-xr-x
📄
update-info-dir
1.66 KB
02/05/2018 02:48:18 PM
rwxr-xr-x
📄
update-initramfs
8.04 KB
03/18/2021 06:48:17 PM
rwxr-xr-x
📄
update-java-alternatives
3.09 KB
01/06/2017 12:03:20 PM
rwxr-xr-x
📄
update-locale
2.99 KB
05/03/2022 04:27:41 AM
rwxr-xr-x
📄
update-mime
8.84 KB
07/15/2016 12:06:12 PM
rwxr-xr-x
📄
update-passwd
30.41 KB
09/12/2017 09:48:16 PM
rwxr-xr-x
📄
update-pciids
2.84 KB
02/10/2019 06:25:12 PM
rwxr-xr-x
📄
update-rc.d
16.12 KB
10/25/2017 03:38:42 PM
rwxr-xr-x
📄
update-secureboot-policy
7.43 KB
01/31/2023 11:57:37 AM
rwxr-xr-x
📄
update-usbids
1.05 KB
04/21/2017 08:59:17 PM
rwxr-xr-x
📄
useradd
123.28 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
userdel
82.48 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
usermod
123.06 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
uuidd
34.16 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
validlocale
1.73 KB
12/07/2020 04:38:09 PM
rwxr-xr-x
📄
vcstime
9.99 KB
01/22/2018 01:49:48 PM
rwxr-xr-x
📄
vigr
60.18 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
vipw
60.18 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
visudo
208.8 KB
04/04/2023 12:44:58 PM
rwxr-xr-x
📄
vpddecode
14.27 KB
01/27/2020 06:09:10 PM
rwxr-xr-x
📄
xfs_admin
1.35 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_bmap
638 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_copy
394.31 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_db
667.63 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_estimate
10.01 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_freeze
767 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_fsr
30.02 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_growfs
382.27 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_info
472 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_io
130.93 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_logprint
414.27 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_mdrestore
370.28 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_metadump
747 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_mkfile
1007 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_ncheck
650 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_quota
86.01 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_rtcp
13.99 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
zerofree
9.99 KB
11/14/2016 02:44:00 PM
rwxr-xr-x
📄
zic
54.14 KB
05/03/2022 10:19:39 AM
rwxr-xr-x
Editing: update-mime
Close
#! /usr/bin/perl ############################################################################### # # Update-MIME: Install programs into "/etc/mailcap", resolve conflicts, # auto-uninstall, make dinner, and wash dishes. # # Written by Brian White <bcwhite@pobox.com>. # # This program has been placed in the public domain (the only true "free"). # Do whatever you wish with it, though I'd appreciate it if my name stayed # on it as the original author. # ############################################################################### umask(022); # # Program Constants # $debug = 0; $conffile = "/etc/update-mime.conf"; $mailcap = "/etc/mailcap"; $mailcapdef = "/usr/lib/mime/mailcap"; $mimedir = "/usr/lib/mime/packages"; $appsdir = "/usr/share/applications"; $orderfile = "/etc/mailcap.order"; $defpriority = 5; $localgen = 0; # If the call comes from dpkg, only accept it if --triggered is passed # This is so that we don't get useless calls from packages' postinsts # that call update-mime due to dh_installmime adding that call for # when there was no triggers support. # # When this 'hack' is removed, mime-support's postinst should be updated # to not pass --triggered anymore in 'triggered'. if ($ENV{"DPKG_RUNNING_VERSION"} ne "" && $ARGV[0] ne "--triggered") { exit (0); } # Allow local run if ($ARGV[0] eq "--local") { $conffile = "$ENV{HOME}/.update-mime.conf"; $mailcap = "$ENV{HOME}/.mailcap"; $orderfile = "$ENV{HOME}/.mailcap.order"; $localgen = 1; } # # Allow local customizations # do $conffile if -f $conffile; # # Global Variables # %entries; %packages; %priorities; @order; $counter=1; sub ReadEntries { my($pkg,$priority); # foreach $file (glob "$mimedir/*") { foreach $file (map { glob $_.'/*' } split ':',$mimedir) { next if ($file =~ m!(^|/)(\.|\#)|(\~)$!); ($pkg) = ($file =~ m|/([^/]*)$|); print STDERR "$pkg:\n" if $debug; if (!defined $packages{$pkg}) { $packages{$pkg} = []; } if (open(FILE,"<$file")) { while (<FILE>) { chomp; next if m/^\s*$|^\s*\#/; if (! m(^[a-zA-Z0-9*][a-zA-Z0-9!#\$&^_.+-]*/[a-zA-Z0-9*][a-zA-Z0-9!#\$&^_.+-]*;) ) { print STDERR "Warning: mailcap line not starting with a media type in $pkg\n"; print STDERR "Problematic line: $_\n"; } if (m/priority\s*=\s*(\d+)\s*($|;)/i) { $priority=$1; } else { $priority=$defpriority; } if ($priority < 0 || $priority > 9) { print STDERR "Error: priority of $priority is out of range (0 <= pri <= 9)\n"; print STDERR " $_\n"; $priority=$defpriority; } $entries{$counter} = $_; push @{$packages{$pkg}},$counter; push @{$priorities{$priority}},$counter; print STDERR "$counter: $_\n" if $debug; $counter++; } close(FILE); } else { print STDERR "Warning: could not open file '$file' -- $!\n"; } } } sub RecurseIntoDirectories { my @files; foreach my $dir (@_) { next if ($dir =~ m!(^|/)(\.|\#)|(\~)$!); my @entries = glob "$dir/*"; push @files, RecurseIntoDirectories(grep { -d $_ } @entries); push @files, grep { -f $_ } @entries; } return @files; } sub ReadDesktopEntries { my($pkg,$priority); foreach $file (RecurseIntoDirectories(split ':',$appsdir)) { next if ($file =~ m!(^|/)(\.|\#)|(\~)$!); next unless ($file =~ m/\.desktop$/); ($pkg) = ($file =~ m|/([^/]*)\.desktop$|); print STDERR "$pkg:\n" if $debug; next if (defined $packages{$pkg}); $packages{$pkg} = []; if (open(FILE,"<$file")) { my($terminal, $name, $icon, $exec, @types) = ("test=test -n \"\$DISPLAY\"", $pkg); while (<FILE>) { chomp; next if (m/^\s*$|^\s*\#/); if (m/^Terminal=(\w+)/i) { $terminal = "needsterminal" if ($1 eq "true"); } elsif (m/^Name=(.+)/i) { $name = $1; } elsif (m/^Icon=(.+)/i) { $icon = $1; } elsif (m/Exec=(.*)$/i) { $exec = $1; $exec =~ s/%[fFuU]/%s/g; $exec .= " %s" if ($exec !~ m/%s/); } elsif (m/MimeType=(.*)/i) { push @types, split(/;/, $1); } } if (!defined($exec) || !scalar(@types)) { close(FILE); next; } $exec =~ s/%c/$name/g; $exec =~ s/%i/--icon $icon/g; foreach $type (@types) { my $entry = "$type; $exec; $terminal"; $priority=$defpriority; $entries{$counter} = $entry; push @{$packages{$pkg}},$counter; push @{$priorities{$priority}},$counter; print STDERR "$counter: $entry\n" if $debug; $counter++; } close(FILE); } else { print STDERR "Warning: could not open file '$file' -- $!\n"; } } } sub ReadOrder { if (-e $orderfile) { if (open(FILE,"<$orderfile")) { while (<FILE>) { chomp; s/\s*\#.*$//; next if m/^\s*$/; push @order,$_; /(.*):/; my $pkg = $1; unless( grep {/^$pkg$/} keys(%packages)) { print STDERR "Warning: package $pkg listed in /etc/mailcap.order does not have mailcap entries.\n"; } } close(FILE); } else { print STDERR "Warning: could not open file '$orderfile' -- $!\n"; } } } sub OrderEntries { my(@entrylist,@orderlist,@templist,$priority,$entrycode,$ordercode); foreach $priority (sort {$b <=> $a} keys %priorities) { print STDERR " - Priority $priority:" if $debug; @templist = @{$priorities{$priority}}; @templist = sort { $ae = $entries{$a}; $ac = 0; $ac += 1 if $ae =~ m!^\S+/\*!; $ac += 2 if $ae =~ m!^\*/!; $be = $entries{$b}; $bc = 0; $bc += 1 if $be =~ m!^\S+/\*!; $bc += 2 if $be =~ m!^\*/!; $ac <=> $bc; } @templist; foreach $entry (@templist) { print STDERR " $entry" if $debug; push @entrylist,$entry; } print STDERR "\n" if $debug; } print STDERR "entrylist: @entrylist\n" if $debug; foreach $ordercode (@order) { my($pkg,$typ); if ($ordercode =~ m/:/) { ($pkg,$typ) = ($ordercode =~ m/^(.*):(\S*)/); } else { $pkg = $ordercode; $typ = "*/*"; } $typ = "*/*" unless $typ; print STDERR " - Ordering '$ordercode'... (package=$pkg, type=$typ, orderlist=@orderlist)\n" if $debug; $typ =~ s/\*/\.\*/g; foreach $entrycode (@entrylist) { next if grep(/^\Q$entrycode\E$/,@orderlist); print STDERR " - Checking entrycode '$entrycode' against (@{$packages{$pkg}})...\n" if $debug; if (grep(/^\Q$entrycode\E$/,@{$packages{$pkg}})) { $entry = $entries{$entrycode}; my($etype) = ($entry =~ m/^(.*?)(;|\s)/); print STDERR " - entry found, type=$etype, checking against '$typ'\n" if $debug; if ($etype =~ m!^$typ$!) { # print STDERR " - matched!\n" if $debug; # my($oaction) = ($ordercode =~ m/action=([^\s;]*)/i); # my($eaction) = ($entry =~ m/action=([^\s;]*)/i); # $eaction="view" unless $eaction; # print STDERR " - checking entry action '$eaction' against '$oaction'\n" if $debug; # if (!$oaction || $eaction =~ m/^($oaction)$/) { push @orderlist,$entrycode; print STDERR " - matched! (orderlist=@orderlist)\n" if $debug; # } } } } } foreach $entrycode (@entrylist) { next if grep(/^\Q$entrycode\E$/,@orderlist); push @orderlist,$entrycode; } print STDERR "orderlist: @orderlist\n" if $debug; return @orderlist; } # # Generate new mailcap file # sub UpdateMailcap { my(@entrylist) = @_; my(@above,@user,@below,$state,$entrycode); $state = 0; if (!open(PATH,"<$mailcap")) { if (!open(PATH,"<$mailcapdef")) { # print STDERR "Warning: could not read '$mailcap' (update stopped) -- $!\n"; # print STDERR " restore from backup or delete and re-install mime-support package"; return; } } while (<PATH>) { s/install-mime/update-mime/g; if ($state == 0) { push @above,$_; } $state=2 if ($state == 1 && /^\# ----- .* Ends /); if ($state == 1) { push @user,$_; } $state=1 if ($state == 0 && /^\# ----- .* Begins /); if ($state == 2) { push @below,$_; } $state=3 if ($state == 2); } close PATH; if ($state == 3) { my $newfile = join('',@above,@user,@below); $newfile .= "\n###############################################################################\n\n"; foreach $entrycode (@entrylist) { my $entry = $entries{$entrycode}; $entry =~ s/\s*priority\s*=\s*\d+\s*($|;)//; $entry =~ s/\s*;\s*$//; $newfile .= $entry."\n"; } if (!open(PATH,">$mailcap.new")) { print STDERR "Error: could not write '$mailcap.new' -- $!\n"; exit(1) unless ($debug); open(PATH,">-"); } print PATH $newfile; close PATH; if (!open(PATH,"<$mailcap.new")) { die "Error: could not read generated '$mailcap.new' -- $!\n"; } my $savfile = ""; $savfile .= $_ while (<PATH>); if ($savfile ne $newfile) { die "Error: contents of '$mailcap.new' do not match what was written -- abort\n"; } rename "$mailcap.new","$mailcap"; } else { print STDERR "Error: '$mailcap' is not in required format -- not updated\n"; print STDERR " Restore from backup or delete and re-install mime-support package"; } } ReadEntries(); ReadDesktopEntries(); ReadOrder(); @list = OrderEntries(); UpdateMailcap(@list);