mirror of
ssh://git.janware.com/janware/proj/jw-pkg
synced 2026-04-25 09:35:54 +02:00
jw.pkg.App: Make member variables private
With the exception of top_name, which cmds.project.GetVal needs read-access to, all member variables of jw.pkg.App can be made private. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
dd5adbfcfc
commit
a377745e5e
1 changed files with 39 additions and 43 deletions
|
|
@ -56,7 +56,7 @@ class App(Base):
|
|||
case 'unaltered':
|
||||
return topdir
|
||||
case None | 'absolute':
|
||||
return os.path.abspath(self.topdir)
|
||||
return os.path.abspath(self.__topdir)
|
||||
case _:
|
||||
m = re.search(r'^make:(\S+)$', fmt)
|
||||
if m is None:
|
||||
|
|
@ -65,11 +65,11 @@ class App(Base):
|
|||
return '$(' + m.group(1) + ')'
|
||||
|
||||
def __proj_dir(self, name: str, pretty) -> str:
|
||||
if name == self.top_name:
|
||||
if name == self.__top_name:
|
||||
if pretty:
|
||||
return self.__pretty_topdir
|
||||
return self.topdir
|
||||
for d in [ self.projs_root, '/opt' ]:
|
||||
return self.__topdir
|
||||
for d in [ self.__projs_root, '/opt' ]:
|
||||
ret = d + '/' + name
|
||||
if os.path.exists(ret):
|
||||
return ret
|
||||
|
|
@ -86,7 +86,7 @@ class App(Base):
|
|||
return os.path.abspath(pd)
|
||||
if self.__topdir_fmt == 'unaltered':
|
||||
return pd
|
||||
if name == self.top_name:
|
||||
if name == self.__top_name:
|
||||
return self.__pretty_topdir
|
||||
raise NotImplementedError(f'Tried to pretty-format directory {pd}, not implemented')
|
||||
pd = self.__proj_dir(name, False)
|
||||
|
|
@ -110,20 +110,17 @@ class App(Base):
|
|||
def __init__(self):
|
||||
super().__init__("jw-pkg swiss army knife", modules=["jw.pkg.cmds"])
|
||||
|
||||
self.global_args = []
|
||||
self.opt_os = None
|
||||
self.top_name = None
|
||||
self.glob_os_cascade = None
|
||||
# -- Members without default values
|
||||
self.__opt_os: str|None = None
|
||||
self.__top_name: str|None = None
|
||||
self.__os_cascade: list[str]|None = None
|
||||
self.__res_cache = ResultCache()
|
||||
self.__topdir: str|None = None
|
||||
self.__pretty_topdir: str|None = None
|
||||
|
||||
self.dep_cache = {}
|
||||
self.my_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
self.res_cache = ResultCache()
|
||||
# -- Members with default values
|
||||
self.__topdir_fmt = 'absolute'
|
||||
self.topdir = None
|
||||
self.__pretty_topdir = None
|
||||
|
||||
# -- defaults
|
||||
self.projs_root = pwd.getpwuid(os.getuid()).pw_dir + "/local/src/jw.dev/proj"
|
||||
self.__projs_root = pwd.getpwuid(os.getuid()).pw_dir + "/local/src/jw.dev/proj"
|
||||
self.__pretty_projs_root = None
|
||||
|
||||
def _add_arguments(self, parser):
|
||||
|
|
@ -137,26 +134,25 @@ class App(Base):
|
|||
|
||||
async def _run(self, args: argparse.Namespace) -> None:
|
||||
|
||||
self.opt_os = args.os
|
||||
|
||||
self.topdir = args.topdir
|
||||
self.__pretty_topdir = self.__format_topdir(self.topdir, args.topdir_format)
|
||||
self.__opt_os = args.os
|
||||
self.__topdir = args.topdir
|
||||
self.__pretty_topdir = self.__format_topdir(self.__topdir, args.topdir_format)
|
||||
self.__topdir_fmt = args.topdir_format
|
||||
if self.topdir is not None:
|
||||
self.top_name = self.res_cache.run(self.read_value, [self.topdir + '/make/project.conf', 'build', 'name'])
|
||||
if not self.top_name:
|
||||
self.top_name = re.sub('-[0-9.-]*$', '', os.path.basename(os.path.realpath(self.topdir)))
|
||||
if self.__topdir is not None:
|
||||
self.__top_name = self.__res_cache.run(self.read_value, [self.__topdir + '/make/project.conf', 'build', 'name'])
|
||||
if not self.__top_name:
|
||||
self.__top_name = re.sub('-[0-9.-]*$', '', os.path.basename(os.path.realpath(self.__topdir)))
|
||||
|
||||
if args.prefix is not None:
|
||||
self.projs_root = args.prefix
|
||||
self.__projs_root = args.prefix
|
||||
self.__pretty_projs_root = args.prefix
|
||||
#if self.__topdir is not None:
|
||||
# self.
|
||||
|
||||
log(DEBUG, "projs_root = ", self.projs_root)
|
||||
|
||||
return await super()._run(args)
|
||||
|
||||
@property
|
||||
def top_name(self):
|
||||
return self.__top_name
|
||||
|
||||
def find_dir(self, name: str, search_subdirs: list[str]=[], search_absdirs: list[str]=[], pretty: bool=True):
|
||||
return self.__find_dir(name, search_subdirs, search_absdirs, pretty)
|
||||
|
||||
|
|
@ -173,7 +169,7 @@ class App(Base):
|
|||
|
||||
def get_os(self, args = ""):
|
||||
import subprocess
|
||||
for d in [ self.projs_root + '/jw-pkg/scripts', '/opt/jw-pkg/bin' ]:
|
||||
for d in [ self.__projs_root + '/jw-pkg/scripts', '/opt/jw-pkg/bin' ]:
|
||||
script = d + '/get-os.sh'
|
||||
if os.path.isfile(script):
|
||||
cmd = '/bin/bash ' + script
|
||||
|
|
@ -199,10 +195,10 @@ class App(Base):
|
|||
|
||||
def os_cascade(self):
|
||||
import platform
|
||||
if self.glob_os_cascade is not None:
|
||||
return self.glob_os_cascade.copy()
|
||||
if self.__os_cascade is not None:
|
||||
return self.__os_cascade.copy()
|
||||
r = [ 'os', platform.system().lower() ]
|
||||
os = self.opt_os if self.opt_os is not None else self.res_cache.run(self.get_os, [])
|
||||
os = self.__opt_os if self.__opt_os is not None else self.__res_cache.run(self.get_os, [])
|
||||
name = re.sub('-.*', '', os)
|
||||
series = os
|
||||
while True:
|
||||
|
|
@ -217,7 +213,7 @@ class App(Base):
|
|||
r.append(os)
|
||||
# e.g. os, linux, suse, suse-tumbleweed
|
||||
#return [ 'os', platform.system().lower(), name, os ]
|
||||
self.glob_os_cascade = r
|
||||
self.__os_cascade = r
|
||||
return r
|
||||
|
||||
def strip_module_from_spec(self, mod):
|
||||
|
|
@ -290,16 +286,16 @@ class App(Base):
|
|||
return None
|
||||
|
||||
def get_value(self, name, section, key):
|
||||
log(DEBUG, "getting value [%s].%s for project %s (%s)" %(section, key, name, self.top_name))
|
||||
if self.top_name and name == self.top_name:
|
||||
proj_root = self.topdir
|
||||
log(DEBUG, "getting value [%s].%s for project %s (%s)" %(section, key, name, self.__top_name))
|
||||
if self.__top_name and name == self.__top_name:
|
||||
proj_root = self.__topdir
|
||||
else:
|
||||
proj_root = self.projs_root + '/' + name
|
||||
proj_root = self.__projs_root + '/' + name
|
||||
log(DEBUG, "proj_root = " + proj_root)
|
||||
|
||||
if section == 'version':
|
||||
proj_version_dirs = [ proj_root ]
|
||||
if proj_root != self.topdir:
|
||||
if proj_root != self.__topdir:
|
||||
proj_version_dirs.append('/usr/share/doc/packages/' + name)
|
||||
for d in proj_version_dirs:
|
||||
version_path = d + '/VERSION'
|
||||
|
|
@ -314,8 +310,8 @@ class App(Base):
|
|||
raise Exception("No version file found for project \"" + name + "\"")
|
||||
|
||||
path = proj_root + '/make/project.conf'
|
||||
#print('path = ', path, 'self.top_name = ', self.top_name, 'name = ', name)
|
||||
return self.res_cache.run(self.read_value, [path, section, key])
|
||||
#print('path = ', path, 'self.__top_name = ', self.__top_name, 'name = ', name)
|
||||
return self.__res_cache.run(self.read_value, [path, section, key])
|
||||
|
||||
def collect_values(self, names, section, key):
|
||||
r = ""
|
||||
|
|
@ -331,7 +327,7 @@ class App(Base):
|
|||
|
||||
def add_modules_from_project_txt_cached(self, buf, visited, spec, section, key, add_self, scope,
|
||||
names_only):
|
||||
return self.res_cache.run(self.add_modules_from_project_txt, [buf, visited, spec, section, key,
|
||||
return self.__res_cache.run(self.add_modules_from_project_txt, [buf, visited, spec, section, key,
|
||||
add_self, scope, names_only])
|
||||
|
||||
def add_modules_from_project_txt(self, buf, visited, spec, section, key, add_self, scope,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue