pyrshell
2 years agoBaseTool DbTool DirTool LinuxUtils ProcessHelper RestoreTool TextTool master
Winfried Kappeler [Fri, 3 Jan 2020 11:41:33 +0000 (12:41 +0100)]
BaseTool DbTool DirTool LinuxUtils ProcessHelper RestoreTool TextTool

* BaseTool: clearDirectory(): error on missing dir
* DbTool:
** archiveWebapp: unknown option error
** create-admin: new: --read-only
** output of question only if confirmation is on
** export-db: new option --default-character-set=utf8mb4'
** saveWebapp(): correction in handling of excluded
* DirTool: new optio --trace=<count>
* LinuxUtils: wrong position of assigning to member
* ProcessHelper
** commons moved to executeCommunicate()
** executeScript returns a value
* RestoreTool:
** new: reconfigureLetsencryptAdapt()
** removeWebapp: new option --default-character-set=utf8mb4'
* TextTool:
** writeable check only if not root
** mode 'execute' forces an error

3 years agoBackupBase BackupTool BaseTool DbTool FileHelper ProcessHelper RestoreT
hm [Wed, 27 Nov 2019 00:53:54 +0000 (01:53 +0100)]
BackupBase BackupTool BaseTool DbTool FileHelper ProcessHelper RestoreT

* BackupBase: fix: weekno like "date +%W"
* BackupTool:
** new: job.save.webapps
** usage of DbTool for all DB operations
** saving webapps: sql file has domain as node

* BaseTool:
** saveDirectoryByTar() + saveDirectoryByZip()

* DbTool:
** + archive-webapp
** exportAllDatabases(): if no special user/password: usage of general
   data from dbtool.conf
** exportDatabase(): correct handling of wrong UTF-8 text of mysqldump

* FileHelper: + copyIfExists()
* ProcessHelper: executeScript():
** unique node of the script
** removing the script

* RestoreTool: fix in createLetsEncryptConf

3 years agoBackupTool DbTool EMail FileHelper Monitor RestoreTool TextTool
hm [Tue, 19 Nov 2019 14:27:51 +0000 (15:27 +0100)]
BackupTool DbTool EMail FileHelper Monitor RestoreTool TextTool

* BackupTool: no warning on mysql calls
* DbTool:
** no warning on mysql calls
** new: filter-records
** new: delete-db-and-user
** new: export-all-dbs
* EMail: no crash on exception
* FileHelper: + tempFile()
* Monitor: no crash on exception writing email
* ProcessHelper: no crash on UTF-8 exception
* RestoreTool: packets for "init php"
* StringUtils: + minimizeArrayUtfError() minimizeStringUtfError()
* TextTool: parsing of option --max-depth
* UnitTestCase: + _inTestSuite

3 years agoBaseTool DirTool FileHelper Monitor RestoreTool
hm [Sat, 9 Nov 2019 20:19:51 +0000 (21:19 +0100)]
BaseTool DirTool FileHelper Monitor RestoreTool

* BaseTool
** correction of slashes in getSource()
* DirTool:
** correction in cmd list (filename) and statistics
** new cmd image-resize
* FileHelper:
** corrections in copyFile(): symbolic links and logging
* Monitor
** division by zero in observeDisks
* RestoreTool
** + reconfigure letsencrypt
** restore nginx only if /etc/nginx
** restore clone: correction path of tar command
** install letsencrypt: .wellknown -> .well-known

3 years agoRestoreTool BaseTool DirTool FileHelper Logger ProcessHelper UnitTestC.
hm [Sat, 2 Nov 2019 14:54:41 +0000 (15:54 +0100)]
RestoreTool BaseTool DirTool FileHelper Logger ProcessHelper UnitTestC.

* RestoreTool:
** +restore()
** + 'restore clone' 'restore etc' 'restore nginx' 'restore pyrshell'
** restoreMergeUserAndGroups(): refactoring of sources/target..
** removed: 'storage btrfs' 'storage create-btrfs' (moved to 'btrfs ..')

* BaseTool:
** __init__(): rights of /tmp/pyrshell to 0o666 avoiding crash
** +nearBackup

* DirTool: crash in updating statistics
* FileHelper: +unpack() +copyDirectory()
* Logger.__init__() avoiding crash if logfile couldn't be created
* ProcessHelper.executeInChain(): avoiding crash
* UnitTestCase: + self._isRoot

3 years agoBaseTool LinuxUtils
hm [Mon, 28 Oct 2019 08:49:30 +0000 (09:49 +0100)]
BaseTool LinuxUtils

* BaseTool:
** renamed: ApplicationInfo._application -> applicationName
** renamed: GlobalOptions._application -> appInfo

* LinuxUtils: Crash in mdadmInfo (undefined variable)

3 years agoBaseTool BenchTool FileHelper RestoreTool StringUtils TextTool
hm [Mon, 21 Oct 2019 08:22:51 +0000 (10:22 +0200)]
BaseTool BenchTool FileHelper RestoreTool StringUtils TextTool

* BaseTool: + InstallTool.usage()
* BenchTool: implemented modes: files calculate
* FileHelper: exception handling in ensureDirectory()
* RestoreTool: new mode: init grub
* StringUtils: fromFile(): new parameter sep
* TextTool: logging in removeRegion()

3 years agoRefactoring RestoreTool TextTool
hm [Thu, 17 Oct 2019 15:43:18 +0000 (17:43 +0200)]
Refactoring RestoreTool TextTool

* Refactoring: Logger.log(): new parameter minLevel
* FileHelper: new: ensureDirectory() ensureSymbolicLink()
  ensureFileExists() fileClass() hasWildcards() joinPaths() pathToNode()
* RestoreTool:
** new mode: btrfs / storage lvm
** linuxserver: on-boot service pyboot
** modification Letsencrypt
** fix: wrong usage() call

* TextTool:
** default of ReplaceRegionInfo._endExcluded is False now
** re.match() changed to re.search()
** grep(): output format: delimiter ' ' between <filename>: and line
** fix in removeRegion(): last index
** replaceOrInsert(): new --create-if-missing

3 years agoWebDashClient FileHelper
Winfried [Sat, 21 Sep 2019 06:46:12 +0000 (08:46 +0200)]
WebDashClient FileHelper

* WebDashClient: logging of connecting/disconnecting reduced
* FileHelper: fix: handling of maxDepth
* LinuxUtils: fix: exception handling for statvfs
* TextTool:
** removing local result()...
** findRegion(): fix: wrong end index
** handleOneDir(): fix: wrong handling of maxDepth
** new: replace-region

3 years agodbtool email.py HttpClient FileHelper Monitor TextTool Webserver
Winfried [Wed, 18 Sep 2019 06:35:37 +0000 (08:35 +0200)]
dbtool email.py HttpClient FileHelper Monitor TextTool Webserver

* dbtool: usage message corrected
* email.py+TcpServer: debug() replaced by log()
* HttpClient: + _verboseLevel
* + InstallAll
* FileHelper: fix: maxLevel test
* Monitor:
** creating /etc/pyrshell/monitor.d if needed
** excluding /etc/pyrshell/monitor.d/pymonitor.conf
** refactoring: + observerBuildMessage()
** storing last status
** recover email: displays the current status
** fix: observeSite
** reload: changing owner of request file: needed for deleting
** reload email: current status
* TextTool: fix: avoiding encoding error while reading file
* new: Webserver

3 years agoMonitor
Winfried [Fri, 13 Sep 2019 08:52:55 +0000 (10:52 +0200)]
Monitor

* reload message extended: + loops, + current status
* recovery message: + current state
* reactivated: reload request
* reloadRequest(): change file rights and owner of the request file

3 years agoBackupTool BaseTool DbTool DirTool FileHelper HttpClient Monitor
Winfried [Fri, 13 Sep 2019 06:26:11 +0000 (08:26 +0200)]
BackupTool BaseTool DbTool DirTool FileHelper HttpClient Monitor

* BackupTool:
** call of BaseTool.usage() instead of usage()
** better error message for incomplete rsync sets
** saveDirectoryByZip(): unique *.mrk file

* BaseTool:
** wrong runtime calculation
** + publicIp(), + tableOfContent(), + saveDirectoryByTar()

* DbTool:
** export: removing result file before creating
** using getTarget(): supports unittests
** + create-webapp-configuration
** + save-webapp
** correction in defaultAdmin(): wrong index (ignoring password)

* DirTool:
** compare: + ignore-case, +exclude, +pattern, +max-differences
** info:
*** no argument: '.' is source (current directory)
*** output refactored

* FileHelper:
** correction using _filesOnly
** correction for oldest and smallest

* HttpClient: correction getting data with 'GET'

* Monitor:
** default _verboseLevel is 1 not 0
** + create-site-server
** one email for one error (no collection)
** correction in date of error message
** reactivated: reload
** corrected: first argument is not ignored now

* RestoreTool:
** removed result(): available BaseTool.result()
** init nginx: + --well-known
** systemctl commands only as root
** correction in net info: device and ip are displayed now

* UnitTestCase: + assertDirExists()

3 years agoBackupTool BaseTool DirTool FileHelper RestoreTool TextTool
Winfried [Mon, 2 Sep 2019 22:50:17 +0000 (00:50 +0200)]
BackupTool BaseTool DirTool FileHelper RestoreTool TextTool

* BackupTool: changed: self.execute() -> self._processHelper.execute()
* BaseTool: + getFilenameOrCopy()

* DirTool:
* refactoring:
** removed: result() and setResult(): now BaseTool.result().. is used
** result stores lines (not a string)
** using dirsOnly and filesOnly
** fix: usage of maxSmallest

* FileHelper: usage of dirsOnly and filesOnly
* RestoreTool: + init apache

* TextTool:
* refactoring: currentX() uses a range (e.g. the region)
* _regionLast (including) changed to _regionEnd (excluding)

3 years agoBaseTool DirTool FileHelper RestoreTool TextTool UnitTestCase
Winfried [Sun, 1 Sep 2019 00:37:37 +0000 (02:37 +0200)]
BaseTool DirTool FileHelper RestoreTool TextTool UnitTestCase

* BaseTool:
** execute(): uses now ProcessHelper
** + latestTool(), + setLatestTool(), + setResult(), + result()

* DirTool:
** + buildExamples()
** compare(): --silent renamed to --quiet, + --ignore-time
** + smallest + --min-size

* FileHelper:
** + fromBytes, + smallest

* ProcessHelper
** refactoring: no base class BaseTool
** + pushd() and popd()

* RestoreTool:
** new subcommand 'storage': autofs + nfs-shares + ftp-service
** new + sftp-service
** aufofs: + class disk (plus autoselect)
** subcommand disk

* UnitTestCase:
** assertFileContains() now allowed: regular expression and string
* TextTool:
** grep: + --no-name + --ignore-case
** grep: no crash with encodings: tries utf-8 and latin-1

3 years agoDirTool TextTool ZipTool
Winfried [Wed, 28 Aug 2019 09:58:12 +0000 (11:58 +0200)]
DirTool TextTool ZipTool

* DirTool: fix: example() (renamed from createExampleConfig)
* TextTool:
** refactoring:
** + setTool(), + lastTool() + buildExamples()
** fix: example() (renamed from createExampleConfig)
** refactoring replace(): complexity reduced
** replace: + --max-depth
** All examples from the usage() are implemented as unittests

* ZipTool: now derived from BaseTool, main() normalized

3 years agoBackupTool BaseTool DirTool UnitTestCase
Winfried [Tue, 27 Aug 2019 07:21:51 +0000 (09:21 +0200)]
BackupTool BaseTool DirTool UnitTestCase

* BackupTool
** removed: create-user (see dbtool)
** jobGitlabBackup(): test whether the executable exists
** complete unittest
* BaseTool: fix: findFiles(): removed: param self
* dirTool: compare(): statistics, summary message
* UnitTestCase: display current test method

3 years agoRefactoring BackupTool BaseTool DbTool DirTool FileHelper ...
Winfried [Mon, 26 Aug 2019 17:28:42 +0000 (19:28 +0200)]
Refactoring BackupTool BaseTool DbTool DirTool FileHelper ...

* Refactoring: normalizing usage()
* BackupTool:
** Refactoring: "normalizing" main, usage of BaseTool base class
** + snapshot
* BaseTool: fix: usage(), refactoring getGlobalOption()
* DbTool:
** refactoring: default admin/admin-pw
** + setResult() + deleteDb, + deleteUser()
** new: create-admin all-users
** fix: createDbAndUser, exportDatabase(), findAllUsers()
** complete unittests
* DirTool:
** + compare
** synchronize: test of nested source/target
* FileHelper
** + distinctPaths()
* ProcessHelper: fix: executeInputOutput(): result
* RestoreTool:
** command "init net" moved to "net"
** fix: net nameserver
** synchronize(): test of nested source/target
* StringUtils: toFile can write bytes (additional to string)
* TextTool:
** + currentFind(), currentFind2()

3 years agoRefactoring StringUtils BaseTool DirTool RestoreTool TextTool ...
Winfried [Fri, 23 Aug 2019 22:42:47 +0000 (00:42 +0200)]
Refactoring StringUtils BaseTool DirTool RestoreTool TextTool ...

* Refactoring: errorhandling of re.compile()
* StringUtils: + regExprCompile()
* BaseTool: + regExprCompile()
* DirTool: fix: check
* RestoreTool: + init net nameserver
* TextTool: + currentFind2()
* UnitTestCase: + _logger + _silentLogger
* UnitTestSuite: improved summary

3 years agoRefactoring, BaseTool, DirTool, FileHelper, RestoreTool
Winfried [Fri, 23 Aug 2019 13:52:57 +0000 (15:52 +0200)]
Refactoring, BaseTool, DirTool, FileHelper, RestoreTool

* Refactoring: _verbose removed (_verboseLevel is enough)
* BaseTool: fix: splitArgsAndOpts() returns now argv as list
* DirTool:
** mirror() renamed to sync
** + snapshot, + oldest
** + unit tests
* FileHelper: fix: clearDirectory(): removes now files in depth==0
* RestoreTool: init net static: + dns-nameservers

3 years agoRefactoring: moving code from main() to BaseTool
Winfried [Thu, 22 Aug 2019 10:36:15 +0000 (12:36 +0200)]
Refactoring: moving code from main() to BaseTool

* common work moved from static methods to class methods
* install(), uninstall() part of BaseTool
* redundant data removed: ApplicationInfo + GlobalOptions + BaseTool
* method example() now part of the main class (derived from BaseTool)

3 years agoPythonToTypeScript
Winfried [Sun, 11 Aug 2019 09:41:44 +0000 (11:41 +0200)]
PythonToTypeScript

* improvements

3 years agoBaseTool FileHelper CryptoEngine HttpClient PythonToTypeScript, SvgTool
Winfried [Fri, 9 Aug 2019 18:13:46 +0000 (20:13 +0200)]
BaseTool FileHelper CryptoEngine HttpClient PythonToTypeScript, SvgTool

* BaseTool:
** refactoring: usage of ApplicationInfo and GlobalInfo
** +floatArguments() + integerArguments()

* FileHelper: renamed from FileTool
* HttpClient: fix: existance of _response

* CryptoEngine:
** refactoring: basics use floating point instead of int
** this allowes a compatible engine in Java (does not know
   unsigned int) and JavaScript (does not know integers)

* PythonToTypeScript:
** a converter from python source code to c like code
** integration into TextTool

* SvgTool:
** new --moving-average
** fix: automatic call of shrinkData()
** fix: wrong usage of maxAverageQuotient
** fix: wrong automatic y range selection

* UnitTestSuite:
** fix: works now correct
** summary

* UnitTestCase:
** automatic call of _finish() if exists
** many _finish() definitions for diverse test cases

3 years agoBaseTool DbTool FileTool ProcessTool StringUtils RestoreTool SvgTool...
Winfried [Mon, 29 Jul 2019 08:56:22 +0000 (10:56 +0200)]
BaseTool DbTool FileTool ProcessTool StringUtils RestoreTool SvgTool...

* BaseTool:
** neu: _debianVersion
** neu: single call of usage() inside BaseTool

* BackupTool:
** createBackup(): if filename is a directory all files are put into a
   tar archive
** +popd() +pushd()

* DbTool:
** +exportDatabase() +exportWebApp()
** fix createWebAppDbsAndUser(): Config is read with JavaConfig
** +createBackupAdmin()
** fix in importDb(): reading configuration
** fix in showWebAppConfiguration(): _configDir
** fix in main(): call with 0 arguments

* FileTool: +pathToNode()

* ProcessTool:
** Korrektur: wrong join() call in executeInputOutput()
** Refactoring: ProcessTool is a derivation of BaseTool
** execute(): + currentDirectory
** + usage()
* StringUtils: +arrayContains()

* RestoreTool:
** fix: configuration from webapps.d is read with JavaConfig
** new: installAutoFs(), reconfigure(), reconfigurePhp()
** new: updateApt() basics() installLetsencrypt() installNFSShare()
** fix: target of local-bin is /usr/local/bin
** new subcommand 'remove': 'webapp'
** fix: main(): empty arguments

* SvgTool:
** new: findMinMax(), floatArgument(), spreadRange, spreadFactor
** new: --max-average-quotient --spread-range --spread-factor

* TextTool:
** fix: Python has a problem with \\ replacement in reg. expressions
** remembering changes with _currentChanged
** new: currentReplace(), findVariables(),
** fix: clearing _lines[] in readCurrent()
** new subcommand "replace-or-insert"
** new generic functions handleOneDir() and handleOneFile()
** options "max-depth"

* ZipTool: fix: main(): empty arguments
* DirTool: new subcommand check
* UnitTestCase: single usage call

3 years agoBaseTool FileTool StringUtils RestoreTool WikiTool ZipToo
Winfried [Wed, 17 Jul 2019 18:24:21 +0000 (20:24 +0200)]
BaseTool FileTool StringUtils RestoreTool WikiTool ZipToo

* BaseTool FileTool JavaConfig ProcessTool
** _ubuntuVersion and _debianVersion
** + createBackup()
** enshureDirectory() +rights, +logger
** BasicStatics.ensureUserAndGroup() +logger
** BasicStatics.log()
** WikiTool: refactoring: +WikiStatus

* FileTool: +clearDirectory()
* JavaConfig: +getKeys()
* StringUtils: grepInFile() +group
* ZipTool: refactoring
* ProcessTool:
** Refactoring: handling of exceptions
** + _output and _error
** + executeScript()

* RestoreTool:
** +currentSetLine() +currentInsertAnchored() +currentSimpleInsert()
** raw result in _out
** +readCurrent() +writeCurrent()
** variant --adapt-configuration

3 years agoBaseTool TextTool
Winfried [Sun, 7 Jul 2019 08:23:57 +0000 (10:23 +0200)]
BaseTool TextTool

* BaseTool: +unitTestActive +_exitWith0
* TextTool:
** replacement with @table
** target build from macros (!path! ...)
** option exit-with-0
** option --prefix-back-reference
** replacement with @table handles bytes lines (instead of text lines)

3 years agoBaseTool +DbTool DirTool FileTool +ProcessTool TextTool WebDashClient
Winfried [Fri, 5 Jul 2019 15:05:40 +0000 (17:05 +0200)]
BaseTool +DbTool DirTool FileTool +ProcessTool TextTool WebDashClient

* BaseTool: _verbose = True (initialization)
* DirTool uses now FileTool
* FileTool: +splitFilename() +directoryInfo()
* LinuxTool: +isExecutable() +isReadable() +isWritable()
* TextTool(): +replace() refactoring of grep()
* WebDashClient: waiting for connection, no crash without connection
* +WikiTool

3 years agoStringUtils, SvgTool, WebDashClient
Winfried [Sun, 23 Jun 2019 10:35:26 +0000 (12:35 +0200)]
StringUtils, SvgTool, WebDashClient

* StringUtils: +toFloat() +toFloatAndType() +toString()
* SvgTool: refactoring:
** factor for [KMG]Byte
** color changes
** +returnToZero() +shrinkData()
** output file '-' (to console)

* WebDashClient: fix: setting _lastStress has been missed

3 years agoBackup BaseTool FileTool Logger StringUtils +SvgTool TcpServer Webdash
Winfried [Wed, 12 Jun 2019 22:54:38 +0000 (00:54 +0200)]
Backup BaseTool FileTool Logger StringUtils +SvgTool TcpServer Webdash

* Backup:
** new: job.once
** zip archive with option -o (mtime from the youngest file)

* BaseTool:
** better usage text for install/uninstall
** Example could be more than one file

* FileTool: returns the 5 youngest and largest files

* Logger: exception catched

* StringUtils: +escChars() +unescChars()

* TcpServer: +verboseLevel

* WebdashClient: +cloudStatistic

* WebdashServer:
** each thread has its own db connection
** blocking while too many open connections

3 years agoBackupBase, BackupTool, BaseTool, CryptoEngine, DirTool, Email ...
Winfried [Wed, 15 May 2019 08:04:09 +0000 (10:04 +0200)]
BackupBase, BackupTool, BaseTool, CryptoEngine, DirTool, Email ...

* BackupBase
** correction in createMysqlBackupUser, findDbInfo

* BackupTool
** error filter for "file changed" and "tar: Removing leading"
** lock and ready file, command test-ready
** new: jobGitlabBackup()
** new: jobRSynchronize()
** new: test-email
** jobChown(): also chmod g+rw
** systemInfo(): lvm info only if lvm is installed, dito mdadm

* BaseTool:
** new: ServiceInfo, ApplicationInfo
** BaseTool.__init__(): +useThreads, +additionalConfigDir
** static methods moved to BasicStatics
** new: InstallTool

* new: CryptoEngine
* DirTool: standard installation, exception handling
* EMail: error logging, * sendEmail() renamed to sendStatusEmail()
* HttpClient: +getRealUrl()
* JavaConfig: __init__(): +ignoreIniHeader, +getInt()
* LinuxUtils: diskFree(): ignoring /snap/ + /loop/
* RestoreTool: restoreMysql(): wrong /usr/bin/mysqldump -> mysql
* StringUtils: +grepInFile(), +firstMatch(), +limitItemLength()
* LinuxUtils: +diskIo(), stress()

* Monitor:
** + _verboseLevel, + _openProblems
** sends an email, informs about open problems and runtime
** enforces resending errors/warning at midnight
** reload(): changes uid of the file /tmp/<application>.request

4 years agoBackupTool, BackupBase, BaseTool, DirTool, Monitor, UnitTestCase
hama [Sat, 18 Aug 2018 21:48:05 +0000 (23:48 +0200)]
BackupTool, BackupBase, BaseTool, DirTool, Monitor, UnitTestCase

* BackupTool:
** Refactoring: BackupBase extracted from BackupTool
** Fix: command sychronize: creating target directory
* BaseTool:
** + clearDirectory()
** execute(): until 3 empty error lines
* DirTool: install do command 'example'
* Monitor: hostname from property 'address'
* UnitTestCase: _assert += 1 in assertFileExists

4 years agoBackupTool DirTool Monitor StringUtils
hama [Fri, 17 Aug 2018 06:35:39 +0000 (08:35 +0200)]
BackupTool DirTool Monitor StringUtils

* BackupTool: saveAllDatabases: including mysql
* Dirtool command example replaces empty config file
* Monitor:
** example uses hostname
** example: receivergroup "std", host "": disk ""
* StringUtil: hasContent()

4 years agoDirTool, BackupTool, BaseTool, Monitor
hama [Wed, 15 Aug 2018 22:46:59 +0000 (00:46 +0200)]
DirTool, BackupTool, BaseTool, Monitor

* DirTool:
** commands: latest, oldest and youngest
* BackupTool
** new command create-user
** backup: current in dayly and weekly with relative path
** handling of missing config file on 'example' a.o.
* BaseTool: global options --max-depth and --count
* Monitor:
** global options unified: --configuration-directory, --log
** default configuration dir: /etc/pyrshell/monitor.d
   (not /etc/pymonitor)
**

4 years agoFtpTool, FtpEngine, BaseTool, StringUtils
hama [Wed, 8 Aug 2018 04:59:05 +0000 (06:59 +0200)]
FtpTool, FtpEngine, BaseTool, StringUtils

* BaseTool: -vX option works, install works
* FtpEngine: _verboseLevel, listTree(),
  handling of symbolic links
* FtpTool: listTree(), command "example" and "add"
* StringUtils: formatSize() moved from BaseTool

4 years agoBaseTool, BackupTool, FtpTool, FtpEngine
hama [Fri, 3 Aug 2018 13:14:35 +0000 (15:14 +0200)]
BaseTool, BackupTool, FtpTool, FtpEngine

* Refactoring: Module BackupTool extracted from BackupTool
* FtpEngine: rmTree()
* FtpTool: using BaseTool

4 years agoBackupTool, UnitTestCase
hama [Wed, 1 Aug 2018 06:01:03 +0000 (08:01 +0200)]
BackupTool, UnitTestCase

* BackupTool:
** file mode in allDatabases(): if _mysql is not available
** removing splitted zips before zipping
** example adapted
** &synchronize
** &chown
** verboseLevel
* UnitTestCase: assertFileExists(), assertFileNotExists()

4 years agoBackupTool
hama [Fri, 27 Jul 2018 10:52:04 +0000 (12:52 +0200)]
BackupTool

* command &systemInfo
* saveAllDatabases works

4 years agoEMail, JavaConfig, Logger, BackupTool, UnitTestCase
hama [Tue, 24 Jul 2018 22:15:07 +0000 (00:15 +0200)]
EMail, JavaConfig, Logger, BackupTool, UnitTestCase

* EMail: new function sendEmail()
* javaConfig: getString(): parameter defaultValue
* Logger: BaseLogger,
* BackupTool:
** email, hostname(), allDatabases()
** backup.conf: smtp.* mysql.* log.file, log.mirror
* UnitTestCase: assertFileNotContains()

4 years agoBackupTool
hama [Mon, 23 Jul 2018 23:55:22 +0000 (01:55 +0200)]
BackupTool

4 years agoBackupTool: command webapps
hama [Mon, 23 Jul 2018 23:22:39 +0000 (01:22 +0200)]
BackupTool: command webapps

4 years agoBackupTool
hama [Mon, 23 Jul 2018 20:30:49 +0000 (22:30 +0200)]
BackupTool

* saveDirectoryByZipLatest()

4 years agoBackupTool
hama [Mon, 23 Jul 2018 16:54:26 +0000 (18:54 +0200)]
BackupTool

* BackupTool: example:
** create dirs
** create testdb.example
** command "backup" works

4 years agoLogger, UnitTestCase, BackupTool, JavaConfig
hama [Sun, 22 Jul 2018 21:39:35 +0000 (23:39 +0200)]
Logger, UnitTestCase, BackupTool, JavaConfig

* Logger: storing first 20 errors
* UnitTestCase:
** +clearDirectory(), + ensureDir()
** tempFile(): parameter subdir2
* +BackupTool
* +JavaConfig

4 years agoZipper, ZipTool
Winfried Kappeler [Sun, 15 Jul 2018 22:23:11 +0000 (00:23 +0200)]
Zipper, ZipTool

* Storing symbolic links
* Storing directory entries
* Zipper.extract()
* statistics

4 years agoZipper, Logger, Textprocessor, UnitTestCase
Winfried Kappeler [Thu, 12 Jul 2018 14:11:49 +0000 (16:11 +0200)]
Zipper, Logger, Textprocessor, UnitTestCase

* Zipper:
** avoiding crashes on permission failures
** ignoring links
* Logger: logfile open test in constructor
* MARKER_MANUAL and MARKER_EXAMPLE for assembling manual and example
  texts
* UnitTestCase: assertMatch(): re.search instead of re.match

4 years agoZipTool + Zipper
Hamatoma [Fri, 6 Jul 2018 22:31:54 +0000 (00:31 +0200)]
ZipTool + Zipper

4 years agoTextProcessor
Hamatoma [Tue, 3 Jul 2018 09:24:01 +0000 (11:24 +0200)]
TextProcessor

* method call works
* special marks #< and #>  (beginOfFile, endOfFile)

4 years agoTextTool, TextProcessor, MemoryLogger,
Hamatoma [Sat, 30 Jun 2018 09:33:15 +0000 (11:33 +0200)]
TextTool, TextProcessor, MemoryLogger,

* TextTool: command line interface to TextProcessor
* TextProcessor:
** +_executeScript(), +_readStdIn(), +execute(), +script()
** fix: _print(): printing strings
* MemoryLogger.init(): +param verbose

4 years agoif statement, numeric assignment
Hamatoma [Sun, 24 Jun 2018 22:25:31 +0000 (00:25 +0200)]
if statement, numeric assignment

4 years agoSeparated parsing and interpreting
Hamatoma [Sat, 23 Jun 2018 09:18:06 +0000 (11:18 +0200)]
Separated parsing and interpreting

4 years agoStringUtils, TextProcessor
Hamatoma [Thu, 21 Jun 2018 22:22:42 +0000 (00:22 +0200)]
StringUtils, TextProcessor

* StringUtils: +tailOfWord()
* TextProcessor:
** tested: +_read(), +_write() +_print()
** untested: if else fi

4 years agoinsert, substitute, assignment, load
Hamatoma [Tue, 19 Jun 2018 22:24:48 +0000 (00:24 +0200)]
insert, substitute, assignment, load

4 years agoTextProcessor
Hamatoma [Sun, 17 Jun 2018 21:51:08 +0000 (23:51 +0200)]
TextProcessor

* expanding meta-chars and variables
* reg expr. caching

4 years agotextprocessor: +rindexOf(), +find()
Hamatoma [Thu, 14 Jun 2018 22:54:56 +0000 (00:54 +0200)]
textprocessor: +rindexOf(), +find()

4 years ago+FtpEngine, +FtpTool, +TextProcessor, +TextProcessorTest
Hamatoma [Wed, 13 Jun 2018 22:50:28 +0000 (00:50 +0200)]
+FtpEngine, +FtpTool, +TextProcessor, +TextProcessorTest

* TextProcessorTest: goto, delete

4 years agoMonitor
hama [Mon, 21 May 2018 08:33:43 +0000 (10:33 +0200)]
Monitor

* command "site" multiple urls, option --scan
* command "example": + default.example
* command "install": chmod of /usr/local/bin/pymonitor
* command "uninstall": removing /usr/local/bin/pymonitor

4 years agoMonitor: email sending, installation improvements
hama [Sat, 19 May 2018 20:55:19 +0000 (22:55 +0200)]
Monitor: email sending, installation improvements

* commands: example is host specific, site
* observation: raid websites
* systemd service: implementing "reload"

4 years agoRefactoring in Monitor
hama [Sat, 28 Apr 2018 08:01:05 +0000 (10:01 +0200)]
Refactoring in Monitor

4 years agoRefactoring: default string delimiter: ', + Monitor
hama [Fri, 27 Apr 2018 13:07:46 +0000 (15:07 +0200)]
Refactoring: default string delimiter: ', + Monitor

4 years ago+ linuxutils
hama [Wed, 25 Apr 2018 20:56:21 +0000 (22:56 +0200)]
+ linuxutils

4 years agoRefactoring, unittests
hama [Sun, 22 Apr 2018 22:14:45 +0000 (00:14 +0200)]
Refactoring, unittests

* refactoring: unittests moved to packages
* unittest: +BaseTest, +NetTest

4 years ago+ThreadLogger +net +FileTcpTaskHandler
hama [Sun, 22 Apr 2018 09:50:43 +0000 (11:50 +0200)]
+ThreadLogger +net +FileTcpTaskHandler

4 years agoinitial state
hama [Sat, 21 Apr 2018 08:17:52 +0000 (10:17 +0200)]
initial state