2 Commits ca3100d872 ... da27160303

Tác giả SHA1 Thông báo Ngày
  Kristian Schultz da27160303 Added installation and update script. 11 tháng trước cách đây
  Kristian Schultz 27ea01129f Added config file. 11 tháng trước cách đây
5 tập tin đã thay đổi với 70 bổ sung3 xóa
  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