passepartout-apple/Packages/App/Sources/CommonLibrary/Domain/SystemInformation.swift
Davide 45e33ae314
Resolve logging issues (#1102)
- Purge tunnel logs properly
- Prepend sessions with system information (app/system version, device
type)
2025-01-24 23:21:53 +01:00

54 lines
1.5 KiB
Swift

//
// SystemInformation.swift
// Passepartout
//
// Created by Davide De Rosa on 1/24/25.
// Copyright (c) 2025 Davide De Rosa. All rights reserved.
//
// https://github.com/passepartoutvpn
//
// This file is part of Passepartout.
//
// Passepartout is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Passepartout is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
//
#if os(macOS)
import AppKit
#endif
import Foundation
#if !os(macOS)
import UIKit
#endif
public struct SystemInformation {
public let osString: String
public let deviceString: String?
public init() {
#if os(macOS)
let os = ProcessInfo().operatingSystemVersion
let osName = "macOS"
let osVersion = "\(os.majorVersion).\(os.minorVersion).\(os.patchVersion)"
deviceString = nil
#else
let device: UIDevice = .current
let osName = device.systemName
let osVersion = device.systemVersion
deviceString = device.model
#endif
osString = "\(osName) \(osVersion)"
}
}