build.App: Remove some cruft

Remove code

  - Explicitly marked as unused
  - Meant to provide Python2 compatibility
  - Meant to run App.py as main module
  - Turned obsolete by removing the command functions from
    Projects.py

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2025-11-16 14:26:03 +01:00
commit 3370dd6236

View file

@ -1,36 +1,15 @@
#!/usr/bin/python3 -u
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# This source code file is a merge of various build tools and a horrible mess. # This source code file is a merge of various build tools and a horrible mess.
# #
from __future__ import print_function import os, sys, argparse, pwd, re
import os
import sys
import argparse
import pwd
import time
from os.path import isfile
from os.path import isdir
from os.path import expanduser
from os.path import basename
from os.path import realpath
import subprocess
import re
import platform
import datetime
# meaning of pkg.requires.xxx variables # meaning of pkg.requires.xxx variables
# build: needs to be built and installed before this can be built # build: needs to be built and installed before this can be built
# devel: needs to be installed before this-devel can be installed, i.e. before _other_ packages can be built against this # devel: needs to be installed before this-devel can be installed, i.e. before _other_ packages can be built against this
# run: needs to be installed before this-run can be installed, i.e. before this and other packages can run with this # run: needs to be installed before this-run can be installed, i.e. before this and other packages can run with this
# --------------------------------------------------------------------- Python 2 / 3 compatibility stuff
try:
basestring
except NameError:
basestring = str
# --------------------------------------------------------------------- helpers # --------------------------------------------------------------------- helpers
class ResultCache(object): class ResultCache(object):
@ -79,7 +58,7 @@ class App(object):
self.opt_debug = False self.opt_debug = False
self.res_cache = ResultCache() self.res_cache = ResultCache()
self.topdir = None self.topdir = None
self.projs_root = expanduser("~") + '/local/src/jw.dev/proj' self.projs_root = os.path.expanduser("~") + '/local/src/jw.dev/proj'
def debug(self, *objs): def debug(self, *objs):
if self.opt_debug: if self.opt_debug:
@ -91,18 +70,6 @@ class App(object):
def err(self, *objs): def err(self, *objs):
print("ERR: ", *objs, file = sys.stderr) print("ERR: ", *objs, file = sys.stderr)
def find_proj_path_unused(name):
name = name.replace("dspider-", "")
search_path = [".", "dspc/src", "dspc/src/dspcd-plugins", "dspc/src/io" ]
for sub in search_path:
path = self.projs_root + "/" + sub + "/" + name
if os.path.exists(path):
return os.path.abspath(path)
raise Exception("module " + name + " not found below " + self.projs_root)
def find_proj_path_cached_unused(name):
return self.res_cache.run(find_proj_path_unused, [ name ])
def proj_dir(self, name): def proj_dir(self, name):
if name == self.top_name: if name == self.top_name:
return self.topdir return self.topdir
@ -127,9 +94,10 @@ class App(object):
return [x for x in seq if not (x in seen or seen_add(x))] return [x for x in seq if not (x in seen or seen_add(x))]
def get_os(self, args = ""): def get_os(self, args = ""):
import subprocess
for d in [ self.projs_root + '/jw-build/scripts', '/opt/jw-build/bin' ]: for d in [ self.projs_root + '/jw-build/scripts', '/opt/jw-build/bin' ]:
script = d + '/get-os.sh' script = d + '/get-os.sh'
if isfile(script): if os.path.isfile(script):
cmd = '/bin/bash ' + script cmd = '/bin/bash ' + script
if args: if args:
cmd = cmd + ' ' + args cmd = cmd + ' ' + args
@ -148,11 +116,12 @@ class App(object):
if pd is None: if pd is None:
return None return None
for r in [ pd + "/tools/html/htdocs", pd + "/htdocs", "/srv/www/proj/" + name ]: for r in [ pd + "/tools/html/htdocs", pd + "/htdocs", "/srv/www/proj/" + name ]:
if isdir(r): if os.path.isdir(r):
return r return r
return None return None
def os_cascade(self): def os_cascade(self):
import platform
if self.glob_os_cascade is not None: if self.glob_os_cascade is not None:
return self.glob_os_cascade.copy() return self.glob_os_cascade.copy()
r = [ 'os', platform.system().lower() ] r = [ 'os', platform.system().lower() ]
@ -320,7 +289,7 @@ class App(object):
def get_modules_from_project_txt(self, names, sections, keys, add_self, scope, def get_modules_from_project_txt(self, names, sections, keys, add_self, scope,
names_only = True): names_only = True):
if isinstance(keys, basestring): if isinstance(keys, str):
keys = [ keys ] keys = [ keys ]
#r = set() #r = set()
r = [] r = []
@ -477,8 +446,6 @@ class App(object):
return r[1::] return r[1::]
return '' return ''
# ----------------------------------------------------------------- commands
def contains(self, small, big): def contains(self, small, big):
for i in xrange(len(big)-len(small)+1): for i in xrange(len(big)-len(small)+1):
for j in xrange(len(small)): for j in xrange(len(small)):
@ -578,17 +545,6 @@ class App(object):
if self.topdir: if self.topdir:
self.top_name = self.res_cache.run(self.read_value, [self.topdir + '/make/project.conf', 'build', 'name']) self.top_name = self.res_cache.run(self.read_value, [self.topdir + '/make/project.conf', 'build', 'name'])
if not self.top_name: if not self.top_name:
self.top_name = re.sub('-[0-9.-]*$', '', basename(realpath(self.topdir))) self.top_name = re.sub('-[0-9.-]*$', '', os.path.basename(os.path.realpath(self.topdir)))
try: return self.run_from_cmd_module(args.cmd, sys.argv[(len(self.global_args) + 1)::])
return self.run_from_cmd_module(args.cmd, sys.argv[(len(self.global_args) + 1)::])
except:
raise
pass
cmd_name = 'cmd_' + args.cmd.replace('-', '_')
cmd = getattr(self, cmd_name)
cmd(sys.argv[(len(self.global_args) + 1)::])
if __name__ == "__main__":
projects = App()
projects.run()