brand asset library, wiki branding guide, and v0.3.3 release
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 351 B |
|
After Width: | Height: | Size: 650 B |
|
After Width: | Height: | Size: 921 B |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,54 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 240" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bannerBg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="100%" stop-color="#070C18"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="textCyan" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#00FFA3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="bannerGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="8" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background Card -->
|
||||
<rect width="960" height="240" rx="16" fill="url(#bannerBg)" stroke="#162A45" stroke-width="2"/>
|
||||
|
||||
<!-- Left Emblem Group (scaled & positioned) -->
|
||||
<g transform="translate(40, 20) scale(0.39)">
|
||||
<!-- Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="#0E1A2E" stroke="url(#cyanGrad)" stroke-width="12" filter="url(#bannerGlow)"/>
|
||||
<!-- Inner Telemetry Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="4" stroke-dasharray="10 8"/>
|
||||
<!-- Stylized L & Telemetry Bars -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
<!-- Connection Points -->
|
||||
<circle cx="238" cy="190" r="9" fill="#00FFA3"/>
|
||||
<circle cx="304" cy="130" r="9" fill="#00E5FF"/>
|
||||
<circle cx="380" cy="349" r="10" fill="#00E5FF"/>
|
||||
</g>
|
||||
|
||||
<!-- Typography & Tagline -->
|
||||
<text x="270" y="98" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="56" font-weight="900" letter-spacing="4" fill="url(#textCyan)" filter="url(#bannerGlow)">LOGAR</text>
|
||||
<text x="272" y="142" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="600" fill="#E2E8F0" letter-spacing="0.5">Fleet Log Aggregation & Telemetry Hub</text>
|
||||
<text x="272" y="174" font-family="'JetBrains Mono', 'Fira Code', monospace" font-size="13" font-weight="400" fill="#00E5FF" letter-spacing="1">ZERO-STATE FORWARDERS • MUTUAL TLS 1.3 • TEMPORAL PERSISTENCE</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
@@ -0,0 +1,43 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="50%" stop-color="#08101E"/>
|
||||
<stop offset="100%" stop-color="#040810"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Base Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="url(#bgGrad)" stroke="url(#cyanGrad)" stroke-width="8" filter="url(#glow)"/>
|
||||
|
||||
<!-- Inner Telemetry Grid / Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="3" stroke-dasharray="8 6"/>
|
||||
|
||||
<!-- Stylized L and Log Streams -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
|
||||
<!-- Connection Nodes / Spark Points -->
|
||||
<circle cx="238" cy="190" r="7" fill="#00FFA3" filter="url(#glow)"/>
|
||||
<circle cx="304" cy="130" r="7" fill="#00E5FF" filter="url(#glow)"/>
|
||||
<circle cx="380" cy="349" r="8" fill="#00E5FF" filter="url(#glow)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,41 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="50%" stop-color="#08101E"/>
|
||||
<stop offset="100%" stop-color="#040810"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="12" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
|
||||
|
||||
<!-- Inner Telemetry Grid / Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="3" stroke-dasharray="8 6"/>
|
||||
|
||||
<!-- Stylized L and Log Streams -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)" filter="url(#glow)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
|
||||
<!-- Connection Nodes / Spark Points -->
|
||||
<circle cx="238" cy="190" r="7" fill="#00FFA3" filter="url(#glow)"/>
|
||||
<circle cx="304" cy="130" r="7" fill="#00E5FF" filter="url(#glow)"/>
|
||||
<circle cx="380" cy="349" r="8" fill="#00E5FF" filter="url(#glow)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -1,7 +1,7 @@
|
||||
"""
|
||||
LOGAR Branding & Installer Graphics Generator
|
||||
Generates clean, professional SVG, PNG, ICO, and BMP visual assets for
|
||||
LOGAR installers (Inno Setup & NSIS), application icons, and WebUI branding.
|
||||
LOGAR installers (Inno Setup & NSIS), application icons, root /assets library, and WebUI branding.
|
||||
Zero external dependencies required (uses standard library zlib and struct).
|
||||
"""
|
||||
|
||||
@@ -9,9 +9,15 @@ import os
|
||||
import math
|
||||
import zlib
|
||||
import struct
|
||||
import shutil
|
||||
|
||||
ASSETS_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets")
|
||||
os.makedirs(ASSETS_DIR, exist_ok=True)
|
||||
ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
ROOT_ASSETS_DIR = os.path.join(ROOT_DIR, "assets")
|
||||
COMPILATION_ASSETS_DIR = os.path.join(ROOT_DIR, "compilation", "assets")
|
||||
LICENSING_ASSETS_DIR = os.path.join(ROOT_DIR, "LOGAR-LICENSING", "assets")
|
||||
|
||||
for d in (ROOT_ASSETS_DIR, COMPILATION_ASSETS_DIR, LICENSING_ASSETS_DIR):
|
||||
os.makedirs(d, exist_ok=True)
|
||||
|
||||
|
||||
def create_bmp_24bit(width: int, height: int, pixel_func) -> bytes:
|
||||
@@ -80,7 +86,7 @@ def create_png_rgba(width: int, height: int, pixel_func) -> bytes:
|
||||
|
||||
|
||||
def draw_logo_rgba(x: int, y: int, w: int, h: int) -> tuple:
|
||||
"""Renders a sleek modern cyberpunk hexagon shield and pulse log streams."""
|
||||
"""Renders a sleek modern hexagon shield and pulse log streams."""
|
||||
nx = (x - w / 2) / (w / 2)
|
||||
ny = (y - h / 2) / (h / 2)
|
||||
dist = math.sqrt(nx * nx + ny * ny)
|
||||
@@ -148,7 +154,7 @@ def draw_wizard_header_white_bgr(x: int, y: int, w: int, h: int) -> tuple:
|
||||
"""
|
||||
bg_r, bg_g, bg_b = 255, 255, 255
|
||||
|
||||
# Position emblem cleanly on the left (center x = 30, center y = h / 2)
|
||||
# Position emblem cleanly on the left (center x = 28, center y = h / 2)
|
||||
icon_center_x = 28
|
||||
icon_center_y = h / 2
|
||||
icon_radius = 22
|
||||
@@ -192,7 +198,7 @@ def draw_wizard_sidebar_bgr(x: int, y: int, w: int, h: int) -> tuple:
|
||||
"""Renders 164x314 BMP sidebar graphic for NSIS / Inno Setup."""
|
||||
t_y = y / h
|
||||
|
||||
# Deep cyber navy to midnight blue vertical gradient
|
||||
# Deep navy to midnight blue vertical gradient
|
||||
r = int(10 * (1 - t_y) + 4 * t_y)
|
||||
g = int(22 * (1 - t_y) + 12 * t_y)
|
||||
b = int(48 * (1 - t_y) + 26 * t_y)
|
||||
@@ -262,9 +268,13 @@ def generate_ico_file(png_images: list) -> bytes:
|
||||
return header + bytes(entries) + b"".join(image_data_blocks)
|
||||
|
||||
|
||||
def generate_svg_logo() -> str:
|
||||
def generate_svg_logo(transparent_bg: bool = False) -> str:
|
||||
"""Generates a high-quality SVG vector graphic for LOGAR."""
|
||||
return """<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||
bg_polygon = "" if transparent_bg else """ <!-- Base Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="url(#bgGrad)" stroke="url(#cyanGrad)" stroke-width="8" filter="url(#glow)"/>"""
|
||||
|
||||
return f"""<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
@@ -288,9 +298,7 @@ def generate_svg_logo() -> str:
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Base Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="url(#bgGrad)" stroke="url(#cyanGrad)" stroke-width="8" filter="url(#glow)"/>
|
||||
{bg_polygon}
|
||||
|
||||
<!-- Inner Telemetry Grid / Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
@@ -309,56 +317,125 @@ def generate_svg_logo() -> str:
|
||||
</svg>"""
|
||||
|
||||
|
||||
def generate_svg_banner() -> str:
|
||||
"""Generates a wide SVG banner with emblem and modern typography."""
|
||||
return """<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 240" width="100%" height="100%">
|
||||
<defs>
|
||||
<linearGradient id="bannerBg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0E1A2E"/>
|
||||
<stop offset="100%" stop-color="#070C18"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="textCyan" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#00FFA3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="cyanGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00E5FF"/>
|
||||
<stop offset="100%" stop-color="#0072FF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="emeraldGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#00FFA3"/>
|
||||
<stop offset="100%" stop-color="#00E5FF"/>
|
||||
</linearGradient>
|
||||
<filter id="bannerGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||
<feGaussianBlur stdDeviation="8" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background Card -->
|
||||
<rect width="960" height="240" rx="16" fill="url(#bannerBg)" stroke="#162A45" stroke-width="2"/>
|
||||
|
||||
<!-- Left Emblem Group (scaled & positioned) -->
|
||||
<g transform="translate(40, 20) scale(0.39)">
|
||||
<!-- Hexagon Shield -->
|
||||
<polygon points="256,24 456,139 456,373 256,488 56,373 56,139"
|
||||
fill="#0E1A2E" stroke="url(#cyanGrad)" stroke-width="12" filter="url(#bannerGlow)"/>
|
||||
<!-- Inner Telemetry Ring -->
|
||||
<polygon points="256,58 426,156 426,356 256,454 86,356 86,156"
|
||||
fill="none" stroke="#162A45" stroke-width="4" stroke-dasharray="10 8"/>
|
||||
<!-- Stylized L & Telemetry Bars -->
|
||||
<rect x="140" y="140" width="46" height="232" rx="10" fill="url(#cyanGrad)"/>
|
||||
<rect x="140" y="326" width="220" height="46" rx="10" fill="url(#cyanGrad)"/>
|
||||
<rect x="220" y="210" width="36" height="80" rx="8" fill="url(#emeraldGrad)"/>
|
||||
<rect x="286" y="150" width="36" height="140" rx="8" fill="url(#cyanGrad)"/>
|
||||
<!-- Connection Points -->
|
||||
<circle cx="238" cy="190" r="9" fill="#00FFA3"/>
|
||||
<circle cx="304" cy="130" r="9" fill="#00E5FF"/>
|
||||
<circle cx="380" cy="349" r="10" fill="#00E5FF"/>
|
||||
</g>
|
||||
|
||||
<!-- Typography & Tagline -->
|
||||
<text x="270" y="98" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="56" font-weight="900" letter-spacing="4" fill="url(#textCyan)" filter="url(#bannerGlow)">LOGAR</text>
|
||||
<text x="272" y="142" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="20" font-weight="600" fill="#E2E8F0" letter-spacing="0.5">Fleet Log Aggregation & Telemetry Hub</text>
|
||||
<text x="272" y="174" font-family="'JetBrains Mono', 'Fira Code', monospace" font-size="13" font-weight="400" fill="#00E5FF" letter-spacing="1">ZERO-STATE FORWARDERS • MUTUAL TLS 1.3 • TEMPORAL PERSISTENCE</text>
|
||||
</svg>"""
|
||||
|
||||
|
||||
def main():
|
||||
print("[*] Generating high-resolution branding assets for LOGAR...")
|
||||
print("[*] Generating comprehensive branding assets for LOGAR...")
|
||||
|
||||
# 1. Generate SVG Logo
|
||||
svg_path = os.path.join(ASSETS_DIR, "logo.svg")
|
||||
with open(svg_path, "w", encoding="utf-8") as f:
|
||||
f.write(generate_svg_logo())
|
||||
print(f"[+] Saved SVG logo: {svg_path}")
|
||||
# 1. Generate SVG Logos
|
||||
svg_logo_dark = generate_svg_logo(transparent_bg=False)
|
||||
svg_logo_trans = generate_svg_logo(transparent_bg=True)
|
||||
svg_banner = generate_svg_banner()
|
||||
|
||||
# 2. Generate PNG images of various sizes
|
||||
# 2. Generate PNG images across multiple dimensions
|
||||
png_sizes = [16, 32, 48, 64, 128, 256, 512]
|
||||
png_buffers = []
|
||||
png_dict = {}
|
||||
for s in png_sizes:
|
||||
png_data = create_png_rgba(s, s, draw_logo_rgba)
|
||||
png_buffers.append((s, s, png_data))
|
||||
if s in [256, 512]:
|
||||
out_p = os.path.join(ASSETS_DIR, f"logo_{s}x{s}.png" if s != 512 else "logo.png")
|
||||
with open(out_p, "wb") as f:
|
||||
f.write(png_data)
|
||||
print(f"[+] Saved PNG logo: {out_p}")
|
||||
png_dict[s] = png_data
|
||||
|
||||
# 3. Generate Windows ICO File
|
||||
ico_path = os.path.join(ASSETS_DIR, "logo.ico")
|
||||
ico_data = generate_ico_file(png_buffers[:-1]) # Up to 256x256
|
||||
with open(ico_path, "wb") as f:
|
||||
f.write(ico_data)
|
||||
print(f"[+] Saved Windows Icon (.ico): {ico_path}")
|
||||
# 3. Generate Windows ICO File (multi-res 16..256)
|
||||
ico_data = generate_ico_file(png_buffers[:-1])
|
||||
|
||||
# 4. Generate NSIS / Inno Setup Wizard Header Bitmap (150x57) with seamless white background
|
||||
header_bmp_path = os.path.join(ASSETS_DIR, "wizard_header.bmp")
|
||||
# 4. Generate BMP files for installers
|
||||
header_bmp_data = create_bmp_24bit(150, 57, draw_wizard_header_white_bgr)
|
||||
with open(header_bmp_path, "wb") as f:
|
||||
f.write(header_bmp_data)
|
||||
print(f"[+] Saved Wizard Header Bitmap (White Background): {header_bmp_path}")
|
||||
|
||||
# 5. Generate Inno Setup Small Wizard Bitmap (55x55) with seamless white background
|
||||
small_bmp_path = os.path.join(ASSETS_DIR, "wizard_small.bmp")
|
||||
small_bmp_data = create_bmp_24bit(55, 55, draw_wizard_small_bgr)
|
||||
with open(small_bmp_path, "wb") as f:
|
||||
f.write(small_bmp_data)
|
||||
print(f"[+] Saved Small Wizard Bitmap (55x55): {small_bmp_path}")
|
||||
|
||||
# 6. Generate NSIS / Inno Setup Wizard Sidebar Bitmap (164x314)
|
||||
sidebar_bmp_path = os.path.join(ASSETS_DIR, "wizard_sidebar.bmp")
|
||||
sidebar_bmp_data = create_bmp_24bit(164, 314, draw_wizard_sidebar_bgr)
|
||||
with open(sidebar_bmp_path, "wb") as f:
|
||||
f.write(sidebar_bmp_data)
|
||||
print(f"[+] Saved Wizard Sidebar Bitmap: {sidebar_bmp_path}")
|
||||
|
||||
print("[+] All LOGAR branding and installer graphics generated successfully.")
|
||||
# 5. Write to target directories
|
||||
for target_dir in (ROOT_ASSETS_DIR, COMPILATION_ASSETS_DIR, LICENSING_ASSETS_DIR):
|
||||
# SVGs
|
||||
with open(os.path.join(target_dir, "logo.svg"), "w", encoding="utf-8") as f:
|
||||
f.write(svg_logo_dark)
|
||||
with open(os.path.join(target_dir, "logo_dark.svg"), "w", encoding="utf-8") as f:
|
||||
f.write(svg_logo_dark)
|
||||
with open(os.path.join(target_dir, "logo_transparent.svg"), "w", encoding="utf-8") as f:
|
||||
f.write(svg_logo_trans)
|
||||
with open(os.path.join(target_dir, "logo_banner.svg"), "w", encoding="utf-8") as f:
|
||||
f.write(svg_banner)
|
||||
|
||||
# PNGs
|
||||
with open(os.path.join(target_dir, "logo.png"), "wb") as f:
|
||||
f.write(png_dict[512])
|
||||
for s in png_sizes:
|
||||
with open(os.path.join(target_dir, f"logo_{s}x{s}.png"), "wb") as f:
|
||||
f.write(png_dict[s])
|
||||
|
||||
# ICOs
|
||||
with open(os.path.join(target_dir, "logo.ico"), "wb") as f:
|
||||
f.write(ico_data)
|
||||
with open(os.path.join(target_dir, "favicon.ico"), "wb") as f:
|
||||
f.write(ico_data)
|
||||
|
||||
# BMPs
|
||||
with open(os.path.join(target_dir, "wizard_header.bmp"), "wb") as f:
|
||||
f.write(header_bmp_data)
|
||||
with open(os.path.join(target_dir, "wizard_small.bmp"), "wb") as f:
|
||||
f.write(small_bmp_data)
|
||||
with open(os.path.join(target_dir, "wizard_sidebar.bmp"), "wb") as f:
|
||||
f.write(sidebar_bmp_data)
|
||||
|
||||
print(f"[+] Populated asset repository: {target_dir}")
|
||||
|
||||
print("[+] All LOGAR branding assets, icons, and banners generated successfully!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[Setup]
|
||||
AppName=LOGAR Client
|
||||
AppVersion=0.3.2
|
||||
AppPublisher=LOGAR Security Systems
|
||||
AppVersion=0.3.3
|
||||
AppPublisher=LOGAR
|
||||
AppPublisherURL=https://logar.eibl.tech
|
||||
AppSupportURL=https://logar.eibl.tech
|
||||
AppUpdatesURL=https://logar.eibl.tech
|
||||
@@ -15,11 +15,11 @@ WizardStyle=modern
|
||||
SetupIconFile=assets\logo.ico
|
||||
WizardImageFile=assets\wizard_sidebar.bmp
|
||||
WizardSmallImageFile=assets\wizard_small.bmp
|
||||
VersionInfoCompany=LOGAR Security Systems
|
||||
VersionInfoCompany=LOGAR
|
||||
VersionInfoDescription=LOGAR Windows Edge Log Forwarder Setup
|
||||
VersionInfoVersion=0.3.2.0
|
||||
VersionInfoVersion=0.3.3.0
|
||||
VersionInfoProductName=LOGAR Client
|
||||
VersionInfoProductVersion=0.3.2
|
||||
VersionInfoProductVersion=0.3.3
|
||||
|
||||
[Files]
|
||||
Source: "..\dist\Win_Client.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
|
||||
@@ -9,13 +9,13 @@ RequestExecutionLevel admin
|
||||
|
||||
BrandingText "LOGAR Centralized Log Aggregator & Forwarder"
|
||||
|
||||
VIProductVersion "0.3.2.0"
|
||||
VIProductVersion "0.3.3.0"
|
||||
VIAddVersionKey "ProductName" "LOGAR Client"
|
||||
VIAddVersionKey "CompanyName" "LOGAR Security Systems"
|
||||
VIAddVersionKey "LegalCopyright" "© 2026 LOGAR Security Systems"
|
||||
VIAddVersionKey "CompanyName" "LOGAR"
|
||||
VIAddVersionKey "LegalCopyright" "© 2026 LOGAR"
|
||||
VIAddVersionKey "FileDescription" "LOGAR Windows Edge Log Forwarder Setup"
|
||||
VIAddVersionKey "FileVersion" "0.3.2.0"
|
||||
VIAddVersionKey "ProductVersion" "0.3.2.0"
|
||||
VIAddVersionKey "FileVersion" "0.3.3.0"
|
||||
VIAddVersionKey "ProductVersion" "0.3.3.0"
|
||||
|
||||
# --- Visual Graphics & Branding ---
|
||||
!define MUI_ICON "assets/logo.ico"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[Setup]
|
||||
AppName=LOGAR Server
|
||||
AppVersion=0.3.2
|
||||
AppPublisher=LOGAR Security Systems
|
||||
AppVersion=0.3.3
|
||||
AppPublisher=LOGAR
|
||||
AppPublisherURL=https://logar.eibl.tech
|
||||
AppSupportURL=https://logar.eibl.tech
|
||||
AppUpdatesURL=https://logar.eibl.tech
|
||||
@@ -15,11 +15,11 @@ WizardStyle=modern
|
||||
SetupIconFile=assets\logo.ico
|
||||
WizardImageFile=assets\wizard_sidebar.bmp
|
||||
WizardSmallImageFile=assets\wizard_small.bmp
|
||||
VersionInfoCompany=LOGAR Security Systems
|
||||
VersionInfoCompany=LOGAR
|
||||
VersionInfoDescription=LOGAR Cloud Hub & TCP Ingestion Server Setup
|
||||
VersionInfoVersion=0.3.2.0
|
||||
VersionInfoVersion=0.3.3.0
|
||||
VersionInfoProductName=LOGAR Server
|
||||
VersionInfoProductVersion=0.3.2
|
||||
VersionInfoProductVersion=0.3.3
|
||||
|
||||
[Files]
|
||||
Source: "..\dist\Server.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||
|
||||
@@ -8,13 +8,13 @@ RequestExecutionLevel admin
|
||||
|
||||
BrandingText "LOGAR Centralized Log Aggregator & Ingestion Hub"
|
||||
|
||||
VIProductVersion "0.3.2.0"
|
||||
VIProductVersion "0.3.3.0"
|
||||
VIAddVersionKey "ProductName" "LOGAR Server"
|
||||
VIAddVersionKey "CompanyName" "LOGAR Security Systems"
|
||||
VIAddVersionKey "LegalCopyright" "© 2026 LOGAR Security Systems"
|
||||
VIAddVersionKey "CompanyName" "LOGAR"
|
||||
VIAddVersionKey "LegalCopyright" "© 2026 LOGAR"
|
||||
VIAddVersionKey "FileDescription" "LOGAR Cloud Hub & TCP Ingestion Server Setup"
|
||||
VIAddVersionKey "FileVersion" "0.3.2.0"
|
||||
VIAddVersionKey "ProductVersion" "0.3.2.0"
|
||||
VIAddVersionKey "FileVersion" "0.3.3.0"
|
||||
VIAddVersionKey "ProductVersion" "0.3.3.0"
|
||||
|
||||
# --- Visual Graphics & Branding ---
|
||||
!define MUI_ICON "assets/logo.ico"
|
||||
|
||||