2 Commits ca3100d872 ... da27160303

Auteur SHA1 Bericht Datum
  Kristian Schultz da27160303 Added installation and update script. 11 maanden geleden
  Kristian Schultz 27ea01129f Added config file. 11 maanden geleden
5 gewijzigde bestanden met toevoegingen van 70 en 3 verwijderingen
  1. 3 2
      Programm/adi.py
  2. 25 0
      Programm/config.py
  3. 32 0
      Programm/install.sh
  4. 7 1
      Programm/qslGen.py
  5. 3 0
      Programm/update.sh

+ 3 - 2
Programm/adi.py

@@ -3,6 +3,7 @@ if __name__ == "__main__":
   print("This is a library not an executable.")
   exit(1)
 
+
 def cleanupXmlName(name):
   nameOut = ""
   for c in name:
@@ -66,8 +67,8 @@ class AdiRow:
     self.Mode = ""
     self.RST = ""
 
-  def fileName(self):
-    return cleanupPathName(f"{self.CALL}_{self.Date}_{self.Time}")
+  def fileName(self, card_name="{_CALL_}_{_Date_}_{_Time_}"):
+    return cleanupPathName(self.fillTemplate(card_name))
 
   def subPath(self):
     name = cleanupPathName(f"{self.CALL}")

+ 25 - 0
Programm/config.py

@@ -0,0 +1,25 @@
+import os
+
+baseDir = f"{os.path.dirname(__file__)}/.."
+
+def loadConfig(fileName):
+  cfg = { "card_name": "{_CALL_}_{_Date_}_{_Time_}"
+        , "verbose": "0"
+        }
+
+  with open(fileName, "rt") as f:
+    for row in f:
+      row = row.strip().split("=", 1)
+      if len(row) != 2:
+        continue
+
+      k = row[0].strip()
+      v = row[1].strip()
+      cfg[k] = v
+
+  if cfg["verbose"].lower() in ["1", "true", "yes", "on"]:
+    cfg["verbose"] = True
+  else:
+    cfg["verbose"] = False
+
+  return cfg

+ 32 - 0
Programm/install.sh

@@ -0,0 +1,32 @@
+#!/bin/bash
+
+echo "====[ Installiere qslGen ]============================================"
+cd "`dirname "$0"`/.."
+
+baseDir="`pwd`"
+
+echo "* Erstelle Verzeichnisse"
+mkdir -p {Vorlage,Karten,Eingang}
+
+echo "* Prüfe externe Programme"
+needPrg=
+python3 --version 2>>/dev/null || needPrg="$needPrg python3"
+inkscape --version 2>>/dev/null || needPrg="$needPrg inkscape"
+magick --version 2>>/dev/null || needPrg="$needPrg imagemagick"
+
+if test "x$needPrg" != "x"
+then
+  echo "  -> Installiere folgende Programme: $needPrg"
+  sudo apt install $needPrg
+fi
+
+echo "* Erstelle Verknüpfungen"
+
+mkdir -p ~/.local/bin
+test -e ~/.local/bin/qslGen.py || ln -s "$baseDir/Programm/qslGen.py" ~/.local/bin/qslGen.py
+
+echo "* Erstelle Config"
+test -e "$baseDir"/config.cfg || ( echo 'card_name={_CALL_}_{_Date_}_{_Time_}' > "$baseDir/config.cfg" )
+
+echo "* Fertig"
+

+ 7 - 1
Programm/qslGen.py

@@ -3,8 +3,10 @@ import os
 import sys
 import time
 import adi
+import config
 
 baseDir = os.path.expanduser("~/qslKarten")
+baseDir = config.baseDir
 inDir = f"{baseDir}/Eingang"
 outDir = f"{baseDir}/Karten"
 templateDir = f"{baseDir}/Vorlage"
@@ -13,6 +15,7 @@ dpi = 300
 
 verbose = False
 
+cfg = {}
 
 
 def exec(cmd, logFile=None):
@@ -52,7 +55,7 @@ def createQslCards(fileName, name):
   data = adi.loadAdi(fileName)
   numOfRows = len(data)
   for pos, row in enumerate(data):
-    tCall = row.fileName()
+    tCall = row.fileName(cfg["card_name"])
     if not verbose:
       progressBar(numOfRows, pos + 1, tCall)
 
@@ -123,6 +126,9 @@ def selectTemplate():
 
 
 if __name__ == "__main__":
+  cfg = config.loadConfig(f"{baseDir}/config.cfg")
+  verbose = cfg["verbose"]
+
   if "-v" in sys.argv or "--verbose" in sys.argv:
     verbose = True
 

+ 3 - 0
Programm/update.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+cd `dirname "$0"`
+git pull --ff-only