Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
ximper-builder
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
Ximper Linux
ximper-builder
Commits
111192d9
Verified
Commit
111192d9
authored
Nov 27, 2024
by
Кирилл Уницаев
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add deploy and md5 flags
parent
60fff9e5
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
61 additions
and
30 deletions
+61
-30
build-distro
bin/build-distro
+61
-30
No files found.
bin/build-distro
View file @
111192d9
...
...
@@ -5,10 +5,10 @@ BUILDERDIR=$(realpath "$(dirname "$0")"/..)
#DEBUG=false
ALLDISTROS
=
false
NVIDIA
=
false
VM
=
false
CLEAN
=
false
DESKTOP_ENVS
=()
# Список выбранных рабочих окружений (например, gnome, hyprland)
NETWORK
=
false
MD5
=
false
# базовые функции
# shellcheck disable=SC1091
...
...
@@ -22,6 +22,11 @@ if [ -z "$PROFILESDIR" ]; then
PROFILESDIR
=
"
$BUILDERDIR
/mkimage-profiles"
fi
if
[
-z
"
$FTPDIR
"
]
;
then
FTPDIR
=
"/var/ftp/pub/Etersoft/XimperLinux/Devel/ISO"
fi
create_tmp
()
{
mktemp
-d
-t
ximper-builder.XXXXXXX
}
...
...
@@ -42,23 +47,16 @@ print_build_info() {
print_green
"VERSION:
$VER
"
fi
print_green
"REPOSITORIES:
$REPOS
"
if
[
-n
"
$DEPLOY_DIR
"
]
;
then
print_green
"DEPLOY:
$DEPLOY_DIR
"
fi
}
check_repos
()
{
if
[
"
$VER
"
==
"devel"
]
;
then
return
check
()
{
if
[
"
$MD5
"
==
"true"
]
&&
[
"
$DEPLOY_DIR
"
!=
"ftp"
]
;
then
print_error
"--md5 можно использовать только при --deploy=ftp"
exit
1
fi
local
list_repos
list_repos
=
"
${
1
//,/
}
"
for
repo
in
$list_repos
;
do
case
"
$repo
"
in
ximper-devel|hasher
)
print_error
"Использовать репозитории ximper-devel и hasher можно только в devel сборках."
exit
1
;;
esac
done
}
cleartmp
()
{
...
...
@@ -71,12 +69,6 @@ cleartmp() {
[
"
$VER
"
==
"devel"
]
&&
ls
-t
"
$VMDIR
"
/ximper-
"
$desktop_env
""
$iso_suffix
"
-devel-
*
-x86_64
.iso |
tail
-n
+2 | xargs
-I
{}
rm
-v
--
{}
}
vm
()
{
find
"
$TMP
"
/out/
-type
l
-exec
rm
{}
+
[
"
$VM
"
==
true
]
||
return
mv
-vf
"
$TMP
"
/out/ximper-
*
.iso
"
$VMDIR
"
/
"
$DFILENAME
"
}
handle_uncommitted_changes
()
{
# Проверка наличия незакоммиченных изменений
if
git diff-index
--quiet
HEAD
--
;
then
...
...
@@ -140,7 +132,7 @@ makebuild() {
# Генерация имени файла
DFILENAME
=
"ximper-
${
desktop_env
}${
iso_suffix
}
-
${
VER
}
-
$(
date
+
"%Y_%m_%d_%H%M"
)
"
# Добавление хэша коммита или примечания о временном коммите
if
[
"
$VER
"
==
"devel"
]
;
then
if
[
"
$TEMP_COMMIT
"
==
true
]
;
then
...
...
@@ -152,13 +144,35 @@ makebuild() {
DFILENAME+
=
"-x86_64.iso"
vm
deploy
# Отмена временного коммита после завершения сборки
revert_temp_commit
}
OPTS
=
$(
getopt
-o
h
--long
help
,nvidia,debug,clean,all,vm,gnome,hyprland,net,network,repos:
--
"
$@
"
)
||
{
create_md5
()
{
[
"
$MD5
"
==
true
]
||
return
print_green
"Создание md5sum для
$2
"
md5sum
"
$1
"
/
"
$2
"
>
"
$1
"
/
"
$2
"
.md5
}
deploy
()
{
find
"
$TMP
"
/out/
-type
l
-exec
rm
{}
+
case
"
$DEPLOY_DIR
"
in
ftp
)
mv
-vf
"
$TMP
"
/out/ximper-
*
.iso
"
$FTPDIR
"
/
"
$DFILENAME
"
create_md5
"
$FTPDIR
"
"
$DFILENAME
"
;;
vm
)
mv
-vf
"
$TMP
"
/out/ximper-
*
.iso
"
$VMDIR
"
/
"
$DFILENAME
"
;;
*
)
return
;;
esac
}
OPTS
=
$(
getopt
-o
h
--long
help
,nvidia,debug,clean,all,deploy::,md5,gnome,hyprland,net,network,repos:
--
"
$@
"
)
||
{
print_error
"Ошибка обработки опций."
exit
1
}
...
...
@@ -171,16 +185,16 @@ while true; do
case
"
$1
"
in
-h
|
--help
)
printf
"
\n
"
printf
"Использование: %s [
опции] [версия дистрибутива
]
\n\n
"
"
$0
"
printf
"Использование: %s [
версия дистрибутива] [опции
]
\n\n
"
"
$0
"
printf
"Опции:
\n
"
printf
" -h | --help Вывод этой справки
\n
"
printf
" Окружения:
\n
"
printf
" --gnome Собрать дистрибутив с GNOME (по умолчанию)
\n
"
printf
" --hyprland Собрать дистрибутив с Hyprland
\n
"
printf
" --all Собрать все дистрибутивы
\n
"
printf
"
\n
"
printf
" Настройки образа:
\n
"
printf
" --nvidia Собрать дистрибутив с драйверами NVIDIA
\n
"
printf
" --all Собрать все дистрибутивы (default + nvidia)
\n
"
printf
" -r | --repos Установить используемые репозитории
\n
"
printf
" (По умолчанию: sisyphus,ximper)
\n
"
printf
" (репозитории используются тольок во время сборки)
\n
"
...
...
@@ -192,6 +206,11 @@ while true; do
printf
" - hasher
\n
"
printf
"
\n
"
printf
" Прочее:
\n
"
printf
" --deploy Задеплоить образ
\n
"
printf
" Параметры:
\n
"
printf
" - vm (по умолчанию) -> %s
\n
"
"
$VMDIR
"
printf
" - ftp -> %s
\n
"
"
$FTPDIR
"
printf
" --md5 Создать файл md5 суммы образа (только при --deploy=ftp)
\n
"
printf
" --debug Включить режим отладки
\n
"
printf
" --clean Очистить TMP перед сборкой
\n
"
printf
" --vm Собрать дистрибутив для виртуальной машины
\n
"
...
...
@@ -215,10 +234,19 @@ while true; do
ALLDISTROS
=
true
shift
;;
--
vm
)
VM
=
true
--
md5
)
MD5
=
true
shift
;;
--deploy
)
if
[
-n
"
$2
"
]
&&
[[
"
$2
"
!=
"--"
*
]]
;
then
DEPLOY_DIR
=
"
$2
"
shift
2
else
DEPLOY_DIR
=
"vm"
shift
fi
;;
--gnome
)
DESKTOP_ENVS+
=(
"gnome"
)
shift
...
...
@@ -233,12 +261,15 @@ while true; do
;;
--repos
)
REPOS
=
"
$2
"
shift
shift
2
;;
--
)
shift
break
;;
""
)
shift
;;
*
)
if
[
-n
"
$REPOS
"
]
&&
[
"
$1
"
=
"
$REPOS
"
]
;
then
shift
...
...
@@ -273,7 +304,7 @@ else
exit
1
fi
check
_repos
"
$REPOS
"
check
print_build_info
...
...
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