Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
Adam Mercer
Koji Packager
Commits
1fc8a825
Verified
Commit
1fc8a825
authored
May 14, 2019
by
Adam Mercer
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
consistent quote usage
parent
fe282289
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
42 additions
and
41 deletions
+42
-41
gwkoji/build.py
gwkoji/build.py
+5
-5
gwkoji/koji.py
gwkoji/koji.py
+4
-4
gwkoji/options.py
gwkoji/options.py
+14
-14
gwkoji/packager.py
gwkoji/packager.py
+14
-13
gwkoji/utils.py
gwkoji/utils.py
+5
-5
No files found.
gwkoji/build.py
View file @
1fc8a825
...
...
@@ -55,8 +55,8 @@ def download_spec_sources(spec, outdir, logger=None):
spectool
=
find_executable
(
'spectool'
)
cmd
=
[
spectool
,
"
--get-files
"
,
"
--directory
"
,
'
--get-files
'
,
'
--directory
'
,
str
(
outdir
),
str
(
spec
),
]
...
...
@@ -91,15 +91,15 @@ def build_src_rpm(source, *extra_rpmbuild_args, outdir=os.path.curdir,
with
tempfile
.
TemporaryDirectory
()
as
tmpdir
:
tmppath
=
pathlib
.
Path
(
tmpdir
)
sourcepath
=
tmppath
/
"
SOURCES
"
sourcepath
=
tmppath
/
'
SOURCES
'
sourcepath
.
mkdir
()
# run spectool to download sources
if
type_
==
"
spec
"
:
if
type_
==
'
spec
'
:
download_spec_sources
(
source
,
sourcepath
,
logger
=
logger
)
# run rpmbuild
rpmcmd
=
"
-bs
"
if
type_
==
"
spec
"
else
"
-ts
"
rpmcmd
=
'
-bs
'
if
type_
==
'
spec
'
else
'
-ts
'
cmd
=
_rpmbuild_args
(
*
extra_rpmbuild_args
+
(
rpmcmd
,
str
(
source
)),
tmpdir
=
tmpdir
)
resp
=
logged_check_output
(
cmd
,
logger
=
logger
).
strip
().
decode
(
'utf-8'
)
...
...
gwkoji/koji.py
View file @
1fc8a825
...
...
@@ -28,7 +28,7 @@ def _koji_call(
*
args
,
**
kwargs
,
):
koji
=
find_executable
(
"
koji
"
)
koji
=
find_executable
(
'
koji
'
)
if
koji
is
None
:
raise
FileNotFoundError
(
"No such file or directory: 'koji'"
)
cmd
=
(
koji
,)
+
args
...
...
@@ -36,12 +36,12 @@ def _koji_call(
def
moshimoshi
(
*
args
,
**
kwargs
):
return
_koji_call
(
"
moshimoshi
"
,
*
args
,
**
kwargs
)
return
_koji_call
(
'
moshimoshi
'
,
*
args
,
**
kwargs
)
def
list_pkgs
(
*
args
,
**
kwargs
):
return
_koji_call
(
"
list-pkgs
"
,
*
args
,
**
kwargs
)
return
_koji_call
(
'
list-pkgs
'
,
*
args
,
**
kwargs
)
def
add_pkg
(
*
args
,
**
kwargs
):
return
_koji_call
(
"
add-pkg
"
,
*
args
,
**
kwargs
)
return
_koji_call
(
'
add-pkg
'
,
*
args
,
**
kwargs
)
gwkoji/options.py
View file @
1fc8a825
...
...
@@ -29,49 +29,49 @@ from . import __version__
# metadata
#
DEFAULT_TARGET
=
"
sandox
"
DEFAULT_TARGET
=
'
sandox
'
def
parse_options
():
# define option parser
parser
=
argparse
.
ArgumentParser
(
description
=
'
Build RPMs using Koji
'
)
parser
=
argparse
.
ArgumentParser
(
description
=
"
Build RPMs using Koji
"
)
parser
.
add_argument
(
'-V'
,
'--version'
,
action
=
'version'
,
version
=
__version__
,
help
=
'
show version number and exit
'
help
=
"
show version number and exit
"
)
parser
.
add_argument
(
'-v'
,
'--verbose'
,
action
=
'count'
,
default
=
2
,
help
=
'
show verbose output, give once for INFO, give twice for DEBUG
'
help
=
"
show verbose output, give once for INFO, give twice for DEBUG
"
)
# koji options
koji_options
=
parser
.
add_argument_group
(
'
Koji Options
'
)
koji_options
=
parser
.
add_argument_group
(
"
Koji Options
"
)
koji_options
.
add_argument
(
'--target'
,
default
=
DEFAULT_TARGET
,
help
=
'
koji tag to tag (default: %(default)s)
'
help
=
"
koji tag to tag (default: %(default)s)
"
)
koji_options
.
add_argument
(
'--owner'
,
help
=
'
koji package owner
'
help
=
"
koji package owner
"
)
koji_options
.
add_argument
(
'--scratch'
,
action
=
'store_true'
,
default
=
False
,
help
=
'
perform a scratch build (default: %(default)s)
'
help
=
"
perform a scratch build (default: %(default)s)
"
)
# source options
source_options
=
parser
.
add_argument_group
(
'
Source Options
'
)
source_options
=
parser
.
add_argument_group
(
"
Source Options
"
)
source_options
.
add_argument
(
'source'
,
type
=
pathlib
.
Path
,
help
=
'
source to build with Koji
'
,
help
=
"
source to build with Koji
"
)
source_types
=
source_options
.
add_mutually_exclusive_group
()
source_types
.
add_argument
(
...
...
@@ -79,28 +79,28 @@ def parse_options():
action
=
'store_const'
,
const
=
'tarball'
,
dest
=
'source_type'
,
help
=
'
source is a tarball
'
,
help
=
"
source is a tarball
"
)
source_types
.
add_argument
(
'--git'
,
action
=
'store_const'
,
const
=
'git'
,
dest
=
'source_type'
,
help
=
'
source is a git repo
'
,
help
=
"
source is a git repo
"
)
source_types
.
add_argument
(
'--src-rpm'
,
action
=
'store_const'
,
const
=
'srcrpm'
,
dest
=
'source_type'
,
help
=
'
source is a src.rpm
'
,
help
=
"
source is a src.rpm
"
)
source_types
.
add_argument
(
'--spec'
,
action
=
'store_const'
,
const
=
'spec'
,
dest
=
'source_type'
,
help
=
'
source is an RPM spec file
'
,
help
=
"
source is an RPM spec file
"
)
# parse options
...
...
gwkoji/packager.py
View file @
1fc8a825
...
...
@@ -43,7 +43,7 @@ LOGGER_FORMAT = "[%(asctime)-15s] %(name)s | %(levelname)+8s | %(message)s"
LOGGER_DATEFMT
=
"%Y-%m-%d %H:%M:%S"
logging
.
basicConfig
(
format
=
LOGGER_FORMAT
,
datefmt
=
LOGGER_DATEFMT
)
logger
=
logging
.
getLogger
(
"
gwkoji
"
)
logger
=
logging
.
getLogger
(
'
gwkoji
'
)
try
:
import
coloredlogs
except
ImportError
:
...
...
@@ -68,9 +68,9 @@ def main():
set_logger_level
(
10
*
max
(
5
-
args
.
verbose
,
0
))
# print info
logger
.
info
(
'
-- gwkoji-packager -----
'
)
logger
.
info
(
'
source = %s
'
%
args
.
source
)
logger
.
info
(
'
target tag = %s
'
%
args
.
target
)
logger
.
info
(
"
-- gwkoji-packager -----
"
)
logger
.
info
(
"
source = %s
"
%
args
.
source
)
logger
.
info
(
"
target tag = %s
"
%
args
.
target
)
# determine source type
if
not
args
.
source_type
:
...
...
@@ -78,12 +78,12 @@ def main():
logger
.
info
(
"source type = {!r}"
.
format
(
args
.
source_type
))
# check that source exists
if
args
.
source_type
!=
"
git
"
and
not
args
.
source
.
is_file
():
if
args
.
source_type
!=
'
git
'
and
not
args
.
source
.
is_file
():
raise
FileNotFoundError
(
"No such file or directory: '{0}'"
.
format
(
args
.
source
),
)
if
args
.
source_type
not
in
(
"
srcrpm
"
,
"
git
"
):
if
args
.
source_type
not
in
(
'
srcrpm
'
,
'
git
'
):
logger
.
info
(
"generating src.rpm..."
)
tmpdir
=
tempfile
.
mkdtemp
()
atexit
.
register
(
shutil
.
rmtree
,
tmpdir
)
...
...
@@ -92,9 +92,9 @@ def main():
# get pkg name from source rpm
try
:
if
args
.
source_type
!=
"
git
"
:
if
args
.
source_type
!=
'
git
'
:
pkg_name
=
rpm
.
get_package_name_from_source_rpm
(
args
.
source
)
logger
.
info
(
'
package name = %s
'
%
pkg_name
)
logger
.
info
(
"
package name = %s
"
%
pkg_name
)
# how do we determine this when source is from git?
except
subprocess
.
CalledProcessError
as
e
:
logger
.
critical
(
"unable to determine package name, %s"
%
e
)
...
...
@@ -108,22 +108,23 @@ def main():
raise
# determine if the package is already registered with koji
if
args
.
source_type
!=
"
git
"
:
if
args
.
source_type
!=
'
git
'
:
try
:
koji
.
list_pkgs
(
"
--quiet
"
,
"
--package
"
,
pkg_name
,
logger
=
logger
)
koji
.
list_pkgs
(
'
--quiet
'
,
'
--package
'
,
pkg_name
,
logger
=
logger
)
except
subprocess
.
CalledProcessError
:
pass
# register package with koji
if
args
.
owner
is
None
:
logger
.
critical
(
'
owner not specified
'
)
logger
.
critical
(
"
owner not specified
"
)
sys
.
exit
(
1
)
try
:
koji
.
add_pkg
(
args
.
owner
,
pkg_name
,
logger
=
logger
)
except
subprocess
.
CalledProcessError
as
e
:
logger
.
critical
(
'unable to regsiter package: %s'
%
e
)
logger
.
critical
(
"unable to regsiter package: %s"
%
e
)
raise
logger
.
info
(
'
-- Complete -----
'
)
logger
.
info
(
"
-- Complete -----
"
)
#
...
...
gwkoji/utils.py
View file @
1fc8a825
...
...
@@ -40,7 +40,7 @@ def _logged_call(func):
kwargs
.
setdefault
(
'stdout'
,
sys
.
stderr
)
# log the command
logger
.
log
(
loglevel
,
'
$ {0}
'
.
format
(
' '
.
join
(
cmd
)))
logger
.
log
(
loglevel
,
"
$ {0}
"
.
format
(
" "
.
join
(
cmd
)))
# run it
return
func
(
cmd
,
*
args
,
**
kwargs
)
...
...
@@ -78,13 +78,13 @@ def source_type(source):
source
=
pathlib
.
Path
(
source
)
name
=
source
.
name
if
name
.
endswith
(
".src.rpm"
):
return
"
srcrpm
"
return
'
srcrpm
'
if
name
.
endswith
(
".spec"
):
return
"
spec
"
return
'
spec
'
if
name
.
endswith
(
".tar"
)
or
source
.
stem
.
endswith
(
".tar"
):
return
"
tarball
"
return
'
tarball
'
if
str
(
source
).
startswith
((
"git+https"
,
"git+ssh"
)):
return
"
git
"
return
'
git
'
raise
ValueError
(
"failed to determine source type for '{0}'"
.
format
(
source
),
)
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