Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
distro_info
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
korinf
distro_info
Commits
23eaf34b
Commit
23eaf34b
authored
Mar 20, 2022
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
distro_info: update
parent
97ef74eb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
65 additions
and
39 deletions
+65
-39
distro_info
bin/distro_info
+65
-39
No files found.
bin/distro_info
View file @
23eaf34b
#!/bin/sh
#!/bin/sh
# 2007-202
1
(c) Vitaly Lipatov <lav@etersoft.ru>
# 2007-202
2
(c) Vitaly Lipatov <lav@etersoft.ru>
# 2007-202
1
(c) Etersoft
# 2007-202
2
(c) Etersoft
# 2007-202
1
Public domain
# 2007-202
2
Public domain
# You can set ROOTDIR to root system dir
# You can set ROOTDIR to root system dir
#ROOTDIR=
#ROOTDIR=
PROGVERSION
=
"202
10806
"
PROGVERSION
=
"202
20318
"
# TODO: check /etc/system-release
# TODO: check /etc/system-release
...
@@ -29,7 +29,7 @@ has()
...
@@ -29,7 +29,7 @@ has()
# Has a system the specified command?
# Has a system the specified command?
hascommand
()
hascommand
()
{
{
which
$1
2>/dev/null
>
/dev/null
which
"
$1
"
2>/dev/null
>
/dev/null
}
}
firstupper
()
firstupper
()
...
@@ -56,11 +56,14 @@ override_distrib()
...
@@ -56,11 +56,14 @@ override_distrib()
rpmvendor
()
rpmvendor
()
{
{
[
"
$DISTRIB_ID
"
=
"ALTLinux"
]
&&
echo
"alt"
&&
return
[
"
$DISTRIB_ID
"
=
"ALTLinux"
]
&&
echo
"alt"
&&
return
[
"
$DISTRIB_ID
"
=
"ALTServer"
]
&&
echo
"alt"
&&
return
[
"
$DISTRIB_ID
"
=
"AstraLinux"
]
&&
echo
"astra"
&&
return
[
"
$DISTRIB_ID
"
=
"AstraLinux"
]
&&
echo
"astra"
&&
return
[
"
$DISTRIB_ID
"
=
"LinuxXP"
]
&&
echo
"lxp"
&&
return
[
"
$DISTRIB_ID
"
=
"LinuxXP"
]
&&
echo
"lxp"
&&
return
[
"
$DISTRIB_ID
"
=
"TinyCoreLinux"
]
&&
echo
"tcl"
&&
return
[
"
$DISTRIB_ID
"
=
"TinyCoreLinux"
]
&&
echo
"tcl"
&&
return
[
"
$DISTRIB_ID
"
=
"VoidLinux"
]
&&
echo
"void"
&&
return
[
"
$DISTRIB_ID
"
=
"VoidLinux"
]
&&
echo
"void"
&&
return
[
"
$DISTRIB_ID
"
=
"OpenSUSE"
]
&&
echo
"suse"
&&
return
[
"
$DISTRIB_ID
"
=
"OpenSUSE"
]
&&
echo
"suse"
&&
return
[
"
$DISTRIB_ID
"
=
"openSUSETumbleweed"
]
&&
echo
"suse"
&&
return
[
"
$DISTRIB_ID
"
=
"openSUSELeap"
]
&&
echo
"suse"
&&
return
[
-n
"
$VENDOR_ID
"
]
&&
echo
"
$VENDOR_ID
"
&&
return
[
-n
"
$VENDOR_ID
"
]
&&
echo
"
$VENDOR_ID
"
&&
return
tolower
"
$DISTRIB_ID
"
tolower
"
$DISTRIB_ID
"
}
}
...
@@ -72,32 +75,6 @@ pkgvendor()
...
@@ -72,32 +75,6 @@ pkgvendor()
rpmvendor
rpmvendor
}
}
# Print pkgtype (need DISTRIB_ID var)
pkgtype
()
{
# TODO: try use generic names
case
$(
pkgvendor
)
in
freebsd
)
echo
"tbz"
;;
sunos
)
echo
"pkg.gz"
;;
slackware|mopslinux
)
echo
"tgz"
;;
archlinux|manjaro
)
echo
"pkg.tar.xz"
;;
gentoo
)
echo
"tbz2"
;;
windows
)
echo
"exe"
;;
android
)
echo
"apk"
;;
alpine
)
echo
"apk"
;;
tinycorelinux
)
echo
"tcz"
;;
voidlinux
)
echo
"xbps"
;;
openwrt
)
echo
"ipk"
;;
cygwin
)
echo
"tar.xz"
;;
debian|ubuntu|mint|runtu|mcst|astra|kali
)
echo
"deb"
;;
alt|asplinux|suse|mandriva|rosa|mandrake|pclinux|sled|sles
)
echo
"rpm"
;;
fedora|redhat|redos|scientific|centos|rhel|goslinux|amzn
)
echo
"rpm"
;;
*
)
echo
"rpm"
;;
esac
}
# TODO: in more appropriate way
# TODO: in more appropriate way
#which pkcon 2>/dev/null >/dev/null && info "You can run $ PMTYPE=packagekit epm to use packagekit backend"
#which pkcon 2>/dev/null >/dev/null && info "You can run $ PMTYPE=packagekit epm to use packagekit backend"
...
@@ -108,9 +85,12 @@ local CMD
...
@@ -108,9 +85,12 @@ local CMD
# FIXME: some problems with multibased distros (Server Edition on CentOS and Desktop Edition on Ubuntu)
# FIXME: some problems with multibased distros (Server Edition on CentOS and Desktop Edition on Ubuntu)
case
$DISTRIB_ID
in
case
$DISTRIB_ID
in
ALTLinux
)
ALTLinux
)
CMD
=
"apt-rpm"
#which ds-install 2>/dev/null >/dev/null && CMD=deepsolver-rpm
#which ds-install 2>/dev/null >/dev/null && CMD=deepsolver-rpm
#which pkcon 2>/dev/null >/dev/null && CMD=packagekit-rpm
#which pkcon 2>/dev/null >/dev/null && CMD=packagekit-rpm
CMD
=
"apt-rpm"
;;
ALTServer
)
CMD
=
"apt-rpm"
;;
;;
PCLinux
)
PCLinux
)
CMD
=
"apt-rpm"
CMD
=
"apt-rpm"
...
@@ -118,7 +98,7 @@ case $DISTRIB_ID in
...
@@ -118,7 +98,7 @@ case $DISTRIB_ID in
Ubuntu|Debian|Mint|AstraLinux|Elbrus
)
Ubuntu|Debian|Mint|AstraLinux|Elbrus
)
CMD
=
"apt-dpkg"
CMD
=
"apt-dpkg"
#which aptitude 2>/dev/null >/dev/null && CMD=aptitude-dpkg
#which aptitude 2>/dev/null >/dev/null && CMD=aptitude-dpkg
which snappy 2>/dev/null
>
/dev/null
&&
CMD
=
snappy
hascommand snappy
&&
CMD
=
snappy
;;
;;
Mandriva|ROSA
)
Mandriva|ROSA
)
CMD
=
"urpm-rpm"
CMD
=
"urpm-rpm"
...
@@ -133,15 +113,15 @@ case $DISTRIB_ID in
...
@@ -133,15 +113,15 @@ case $DISTRIB_ID in
ArchLinux
)
ArchLinux
)
CMD
=
"pacman"
CMD
=
"pacman"
;;
;;
Fedora|FedoraLinux|LinuxXP|ASPLinux|CentOS|RHEL|Scientific|GosLinux|Amzn|RedOS
)
Fedora|FedoraLinux|LinuxXP|ASPLinux|CentOS|
OracleLinux|RockyLinux|AlmaLinux|
RHEL|Scientific|GosLinux|Amzn|RedOS
)
CMD
=
"dnf-rpm"
CMD
=
"dnf-rpm"
which dnf 2>/dev/null
>
/dev/null
||
CMD
=
yum-rpm
hascommand dnf
||
CMD
=
yum-rpm
[
"
$DISTRIB_ID
/
$DISTRIB_RELEASE
"
=
"CentOS/7"
]
&&
CMD
=
yum-rpm
[
"
$DISTRIB_ID
/
$DISTRIB_RELEASE
"
=
"CentOS/7"
]
&&
CMD
=
yum-rpm
;;
;;
Slackware
)
Slackware
)
CMD
=
"slackpkg"
CMD
=
"slackpkg"
;;
;;
SUSE|SLED|SLES
)
SUSE|SLED|SLES
|openSUSETumbleweed|openSUSELeap
)
CMD
=
"zypper-rpm"
CMD
=
"zypper-rpm"
;;
;;
ForesightLinux|rPathLinux
)
ForesightLinux|rPathLinux
)
...
@@ -149,8 +129,8 @@ case $DISTRIB_ID in
...
@@ -149,8 +129,8 @@ case $DISTRIB_ID in
;;
;;
Windows
)
Windows
)
CMD
=
"appget"
CMD
=
"appget"
which
$CMD
2>/dev/null
>
/dev/null
||
CMD
=
"chocolatey"
hascommand
$CMD
||
CMD
=
"chocolatey"
which
$CMD
2>/dev/null
>
/dev/null
||
CMD
=
"winget"
hascommand
$CMD
||
CMD
=
"winget"
;;
;;
MacOS
)
MacOS
)
CMD
=
"homebrew"
CMD
=
"homebrew"
...
@@ -177,12 +157,53 @@ case $DISTRIB_ID in
...
@@ -177,12 +157,53 @@ case $DISTRIB_ID in
CMD
=
"xbps"
CMD
=
"xbps"
;;
;;
*
)
*
)
# try detect firstly
if
hascommand
"rpm"
;
then
hascommand
"urpmi"
&&
echo
"urpmi-rpm"
&&
return
hascommand
"zypper"
&&
echo
"zypper-rpm"
&&
return
hascommand
"apt-get"
&&
echo
"apt-rpm"
&&
return
hascommand
"dnf"
&&
echo
"dnf-rpm"
&&
return
fi
if
hascommand
"dpkg"
;
then
hascommand
"apt"
&&
echo
"apt-dpkg"
&&
return
hascommand
"apt-get"
&&
echo
"apt-dpkg"
&&
return
fi
echo
"We don't support yet DISTRIB_ID
$DISTRIB_ID
"
>
&2
echo
"We don't support yet DISTRIB_ID
$DISTRIB_ID
"
>
&2
;;
;;
esac
esac
echo
"
$CMD
"
echo
"
$CMD
"
}
}
# Print pkgtype (need DISTRIB_ID var)
pkgtype
()
{
# TODO: try use generic names
case
$(
pkgvendor
)
in
freebsd
)
echo
"tbz"
;;
sunos
)
echo
"pkg.gz"
;;
slackware|mopslinux
)
echo
"tgz"
;;
archlinux|manjaro
)
echo
"pkg.tar.xz"
;;
gentoo
)
echo
"tbz2"
;;
windows
)
echo
"exe"
;;
android
)
echo
"apk"
;;
alpine
)
echo
"apk"
;;
tinycorelinux
)
echo
"tcz"
;;
voidlinux
)
echo
"xbps"
;;
openwrt
)
echo
"ipk"
;;
cygwin
)
echo
"tar.xz"
;;
*
)
case
$(
pkgmanager
)
in
*
-dpkg
)
echo
"dpkg"
;;
*
-rpm
)
echo
"rpm"
;;
*
)
echo
"rpm"
;;
esac
esac
}
get_var
()
get_var
()
{
{
# get first variable and print it out, drop quotes if exists
# get first variable and print it out, drop quotes if exists
...
@@ -199,6 +220,9 @@ normalize_name()
...
@@ -199,6 +220,9 @@ normalize_name()
{
{
[
"
$1
"
=
"RED OS"
]
&&
echo
"RedOS"
&&
return
[
"
$1
"
=
"RED OS"
]
&&
echo
"RedOS"
&&
return
[
"
$1
"
=
"CentOS Linux"
]
&&
echo
"CentOS"
&&
return
[
"
$1
"
=
"CentOS Linux"
]
&&
echo
"CentOS"
&&
return
[
"
$1
"
=
"Rocky Linux"
]
&&
echo
"RockyLinux"
&&
return
[
"
$1
"
=
"Oracle Linux"
]
&&
echo
"OracleLinux"
&&
return
[
"
$1
"
=
"Alma Linux"
]
&&
echo
"AlmaLinux"
&&
return
#echo "${1// /}"
#echo "${1// /}"
echo
"
$1
"
|
sed
-e
"s/ //g"
echo
"
$1
"
|
sed
-e
"s/ //g"
}
}
...
@@ -238,6 +262,8 @@ if distro altlinux-release ; then
...
@@ -238,6 +262,8 @@ if distro altlinux-release ; then
DISTRIB_RELEASE
=
"
$(
echo
p
$DISTRIB_RELEASE
|
sed
-e
's|\..*||'
)
"
DISTRIB_RELEASE
=
"
$(
echo
p
$DISTRIB_RELEASE
|
sed
-e
's|\..*||'
)
"
if
has Sisyphus
;
then
DISTRIB_RELEASE
=
"Sisyphus"
if
has Sisyphus
;
then
DISTRIB_RELEASE
=
"Sisyphus"
elif
has
"ALT p10.* p10 "
;
then
DISTRIB_RELEASE
=
"p10"
elif
has
"ALT p10.* p10 "
;
then
DISTRIB_RELEASE
=
"p10"
elif
has
"ALTServer 10."
;
then
DISTRIB_RELEASE
=
"p10"
elif
has
"ALTServer 9."
;
then
DISTRIB_RELEASE
=
"p9"
elif
has
"ALT c10.* c10 "
;
then
DISTRIB_RELEASE
=
"c10"
elif
has
"ALT c10.* c10 "
;
then
DISTRIB_RELEASE
=
"c10"
elif
has
"ALT p9.* p9 "
;
then
DISTRIB_RELEASE
=
"p9"
elif
has
"ALT p9.* p9 "
;
then
DISTRIB_RELEASE
=
"p9"
elif
has
"ALT 9 SP "
;
then
DISTRIB_RELEASE
=
"c9"
elif
has
"ALT 9 SP "
;
then
DISTRIB_RELEASE
=
"c9"
...
@@ -681,7 +707,7 @@ print_pretty_name()
...
@@ -681,7 +707,7 @@ print_pretty_name()
print_total_info
()
print_total_info
()
{
{
cat
<<
EOF
cat
<<
EOF
distro_info v
$PROGVERSION
: Copyright © 2007-202
1
Etersoft
distro_info v
$PROGVERSION
: Copyright © 2007-202
2
Etersoft
==== Total system information:
==== Total system information:
Pretty distro name (--pretty):
$(
print_pretty_name
)
Pretty distro name (--pretty):
$(
print_pretty_name
)
Distro name and version (-e):
$(
print_name_version
)
Distro name and version (-e):
$(
print_name_version
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment