Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
etersoft-build-utils
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
1
Merge Requests
1
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
etersoft-build-utils
Commits
c85f526e
Commit
c85f526e
authored
Dec 28, 2025
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gita: add wait command, fix acl argument order
parent
5dd62b88
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
69 additions
and
5 deletions
+69
-5
README.md
README.md
+2
-0
README.ru.md
README.ru.md
+2
-0
gitask
bin/gitask
+65
-5
No files found.
README.md
View file @
c85f526e
...
...
@@ -49,6 +49,8 @@ MENV=SS # for Sisyphus
|
`gita add <cmd> <pkg>`
| Add subtask |
|
`gita run [task]`
| Run task |
|
`gita log [task]`
| Show build log |
|
`gita wait [task]`
| Wait for task to complete |
|
`gita acl <pkg> [add\|del <user>]`
| Show/modify package ACL |
### Spec file utilities
...
...
README.ru.md
View file @
c85f526e
...
...
@@ -49,6 +49,8 @@ MENV=SS # для Sisyphus
|
`gita add <команда> <пакет>`
| Добавить подзадачу |
|
`gita run [задача]`
| Запустить задачу |
|
`gita log [задача]`
| Показать лог сборки |
|
`gita wait [задача]`
| Ожидание завершения сборки |
|
`gita acl <пакет> [add\|del <user>]`
| Показать/изменить ACL пакета |
### Утилиты для spec-файлов
...
...
bin/gitask
View file @
c85f526e
...
...
@@ -39,8 +39,9 @@ if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
echo
" quota - show quota on the remote servers"
echo
" cancel NNNN - cancel task NNNN"
echo
" approve NNNN SUBTASK [-m <message>] - approve subtask"
echo
" acl [branch] show package - show acl for the package"
echo
" acl [branch] package add|del <maintainer> - add/del acl for the package"
echo
" acl [branch] package - show acl for the package"
echo
" acl [branch] package add|del <user> - add/del acl for the package"
echo
" wait [NNNN] [-q|--quiet] - wait for task build to complete"
echo
" rebuild --help - rebuild package"
exit
0
fi
...
...
@@ -67,6 +68,12 @@ get_test_status()
ssh
$GEARHOST
task
ls
|
grep
"^#
$1
"
|
grep
"
\[
test-only
\]
"
}
# get task status (TESTED, FAILED, EPERM, NEW, AWAITING, BUILDING, PENDING, DONE)
get_task_status
()
{
ssh
$GEARHOST
task
ls
|
grep
"^#
$1
"
|
sed
-e
"s|^#[0-9]*
\(
[A-Z]*
\)
.*|
\1
|"
}
# get subtask number from TASKNUMBER for PROJECTNAME
get_subtask
()
{
...
...
@@ -131,7 +138,9 @@ set_if_matched()
return
1
}
# acl [p9] show mc | add mc lav
# acl [p9] package [add|del user]
# CLI: package first, then command
# API: acl BRANCH COMMAND PACKAGE [USER]
if
[
"
$1
"
=
"acl"
]
;
then
if
[
"
$lastarg
"
=
"--help"
]
;
then
docmd ssh
$GEARHOST
"
$@
"
...
...
@@ -143,11 +152,13 @@ if [ "$1" = "acl" ] ; then
COMMAND
=
"
$2
"
[
-z
"
$COMMAND
"
]
&&
COMMAND
=
"show"
OPERAND
=
"
$3
"
showcmd ssh
$GEARHOST
acl
$BINARYREPO
$PROJECTNAME
$COMMAND
$OPERAND
# API: acl REPOSITORY PACKAGE COMMAND [USER]
echo
"
$GEARHOST
:
$BINARYREPO
ACL for
$PROJECTNAME
:"
if
[
"
$COMMAND
"
=
"show"
]
;
then
ssh
$GEARHOST
acl
$BINARYREPO
$PROJECTNAME
$COMMAND
|
sed
-e
"s|^
$PROJECTNAME
||"
showcmd ssh
$GEARHOST
acl
$BINARYREPO
$PROJECTNAME
show
ssh
$GEARHOST
acl
$BINARYREPO
$PROJECTNAME
show |
sed
-e
"s|^
$PROJECTNAME
||"
else
showcmd ssh
$GEARHOST
acl
$BINARYREPO
$PROJECTNAME
$COMMAND
$OPERAND
ssh
$GEARHOST
acl
$BINARYREPO
$PROJECTNAME
$COMMAND
$OPERAND
fi
exit
...
...
@@ -182,6 +193,14 @@ if [ "$1 $2" = "cancel --help" ] ; then
exit
fi
if
[
"
$1
$2
"
=
"wait --help"
]
||
[
"
$1
$2
"
=
"wait -h"
]
;
then
echo
"wait - wait for task build to complete"
echo
"Usage: gita wait [NNNN] [-q|--quiet]"
echo
" NNNN - task number (default: last task)"
echo
" -q - quiet mode, no spinner"
exit
0
fi
if
[
"
$lastarg
"
=
"--help"
]
;
then
docmd ssh
$GEARHOST
task
"
$@
"
exit
...
...
@@ -379,6 +398,47 @@ if [ "$1" = "run" ] || [ "$1" = "commit" ] || [ "$1" = "test" ] ; then
exit
fi
if
[
"
$1
"
=
"wait"
]
;
then
shift
QUIET
=
''
TASK
=
''
while
[
-n
"
$1
"
]
;
do
if
[
"
$1
"
=
"-q"
]
||
[
"
$1
"
=
"--quiet"
]
;
then
QUIET
=
1
elif
is_task_number
"
$1
"
;
then
TASK
=
"
$(
get_task_number
$1
)
"
else
fatal
"Unknown param
$1
"
fi
shift
done
[
-n
"
$TASK
"
]
||
TASK
=
"
$(
get_last
)
"
||
fatal
"Can't get last task"
SPINNER
=
'|/-\'
SPINPOS
=
0
INTERVAL
=
10
info
"Waiting for task #
$TASK
to complete..."
while
true
;
do
STATUS
=
"
$(
get_task_status
$TASK
)
"
[
-z
"
$STATUS
"
]
&&
info
"Task #
$TASK
not found or already done"
&&
exit
0
case
"
$STATUS
"
in
TESTED|FAILED|EPERM|DONE
)
# clear spinner
[
-z
"
$QUIET
"
]
&&
isatty
&&
printf
"
\r\0
33[K"
info
"Task #
$TASK
:
$STATUS
"
[
"
$STATUS
"
=
"TESTED"
]
||
[
"
$STATUS
"
=
"DONE"
]
exit
$?
;;
esac
if
[
-z
"
$QUIET
"
]
&&
isatty
;
then
SPINCHAR
=
"
${
SPINNER
:
$SPINPOS
:1
}
"
printf
"
\r
[%s] #%s %s "
"
$SPINCHAR
"
"
$TASK
"
"
$STATUS
"
SPINPOS
=
$((
(
SPINPOS
+
1
)
%
4
))
fi
sleep
$INTERVAL
done
exit
fi
if
[
"
$1
"
=
"cancel"
]
;
then
shift
TASK
=
"
$(
get_task_number
$1
)
"
...
...
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