diff --git a/README.md b/README.md index fb8490b..d06d6ba 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# gastrack +# Overpass -gas tracking without the ads +The best iOS gas tracking app! -The canonical repo for this is hosted on tangled over at [`dunkirk.sh/gastrack`](https://tangled.org/dunkirk.sh/gastrack) +The canonical repo for this is hosted on tangled over at [`dunkirk.sh/overpass`](https://tangled.org/dunkirk.sh/overpass)

@@ -13,5 +13,5 @@ The canonical repo for this is hosted on tangled over at [`dunkirk.sh/gastrack`]

- +

diff --git a/api/package.json b/api/package.json index 4d22f24..6b09c43 100644 --- a/api/package.json +++ b/api/package.json @@ -1,10 +1,10 @@ { - "name": "gastrack-api", + "name": "overpass-api", "version": "0.1.0", "scripts": { "dev": "bun run --watch src/index.ts", "start": "bun run src/index.ts", - "build": "bun build --compile --outfile dist/gastrack --production ./src/index.ts" + "build": "bun build --compile --outfile dist/overpass --production ./src/index.ts" }, "dependencies": {}, "devDependencies": { diff --git a/api/src/db.ts b/api/src/db.ts index 53fdf3b..f5a5861 100644 --- a/api/src/db.ts +++ b/api/src/db.ts @@ -37,7 +37,7 @@ let _db: Database | null = null; export function getDb(): Database { if (_db) return _db; - _db = new Database(process.env.DB_PATH ?? "./gastrack.db"); + _db = new Database(process.env.DB_PATH ?? "./overpass.db"); _db.exec("PRAGMA journal_mode = WAL"); _db.exec("PRAGMA foreign_keys = ON"); migrate(_db); diff --git a/api/src/index.ts b/api/src/index.ts index b6a7050..4b2b9bd 100644 --- a/api/src/index.ts +++ b/api/src/index.ts @@ -55,7 +55,7 @@ const server = serve({ }, }); -console.log(`gastrack listening on ${server.hostname}:${server.port}`); +console.log(`overpass listening on ${server.hostname}:${server.port}`); process.on("SIGINT", () => process.exit(0)); process.on("SIGTERM", () => process.exit(0)); diff --git a/gastrack/.DS_Store b/overpass/.DS_Store similarity index 100% rename from gastrack/.DS_Store rename to overpass/.DS_Store diff --git a/gastrack/Assets.xcassets/AccentColor.colorset/Contents.json b/overpass/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from gastrack/Assets.xcassets/AccentColor.colorset/Contents.json rename to overpass/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/gastrack/Assets.xcassets/AppIcon.appiconset/Contents.json b/overpass/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from gastrack/Assets.xcassets/AppIcon.appiconset/Contents.json rename to overpass/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/gastrack/Assets.xcassets/Contents.json b/overpass/Assets.xcassets/Contents.json similarity index 100% rename from gastrack/Assets.xcassets/Contents.json rename to overpass/Assets.xcassets/Contents.json diff --git a/gastrack/ContentView.swift b/overpass/ContentView.swift similarity index 100% rename from gastrack/ContentView.swift rename to overpass/ContentView.swift diff --git a/gastrack/Models/Station.swift b/overpass/Models/Station.swift similarity index 100% rename from gastrack/Models/Station.swift rename to overpass/Models/Station.swift diff --git a/gastrack/Services/APIClient.swift b/overpass/Services/APIClient.swift similarity index 96% rename from gastrack/Services/APIClient.swift rename to overpass/Services/APIClient.swift index 14846cf..500fbde 100644 --- a/gastrack/Services/APIClient.swift +++ b/overpass/Services/APIClient.swift @@ -18,10 +18,10 @@ enum APIError: LocalizedError { final class APIClient: ObservableObject { static let shared = APIClient() - // Base URL of the gastrack server on Tailscale + // Base URL of the Overpass server var baseURL: String { - get { UserDefaults.standard.string(forKey: "gastrack_base_url") ?? "" } - set { UserDefaults.standard.set(newValue, forKey: "gastrack_base_url") } + get { UserDefaults.standard.string(forKey: "sh.dunkirk.overpass.base_url") ?? "" } + set { UserDefaults.standard.set(newValue, forKey: "sh.dunkirk.overpass.base_url") } } var userKey: String? { diff --git a/gastrack/Services/BackgroundRefreshService.swift b/overpass/Services/BackgroundRefreshService.swift similarity index 100% rename from gastrack/Services/BackgroundRefreshService.swift rename to overpass/Services/BackgroundRefreshService.swift diff --git a/gastrack/Services/EIAService.swift b/overpass/Services/EIAService.swift similarity index 100% rename from gastrack/Services/EIAService.swift rename to overpass/Services/EIAService.swift diff --git a/gastrack/Services/KeychainService.swift b/overpass/Services/KeychainService.swift similarity index 95% rename from gastrack/Services/KeychainService.swift rename to overpass/Services/KeychainService.swift index 1cde377..f2f64ee 100644 --- a/gastrack/Services/KeychainService.swift +++ b/overpass/Services/KeychainService.swift @@ -2,7 +2,7 @@ import Foundation import Security enum KeychainService { - private static let service = "com.gastrack.app" + private static let service = "sh.dunkirk.overpass" static func save(_ value: String, forKey key: String) { let data = Data(value.utf8) diff --git a/gastrack/Services/LocationManager.swift b/overpass/Services/LocationManager.swift similarity index 100% rename from gastrack/Services/LocationManager.swift rename to overpass/Services/LocationManager.swift diff --git a/gastrack/Services/StationStore.swift b/overpass/Services/StationStore.swift similarity index 100% rename from gastrack/Services/StationStore.swift rename to overpass/Services/StationStore.swift diff --git a/gastrack/Views/MapStationsView.swift b/overpass/Views/MapStationsView.swift similarity index 100% rename from gastrack/Views/MapStationsView.swift rename to overpass/Views/MapStationsView.swift diff --git a/gastrack/Views/NearbyView.swift b/overpass/Views/NearbyView.swift similarity index 100% rename from gastrack/Views/NearbyView.swift rename to overpass/Views/NearbyView.swift diff --git a/gastrack/Views/PrefetchView.swift b/overpass/Views/PrefetchView.swift similarity index 100% rename from gastrack/Views/PrefetchView.swift rename to overpass/Views/PrefetchView.swift diff --git a/gastrack/Views/SettingsView.swift b/overpass/Views/SettingsView.swift similarity index 100% rename from gastrack/Views/SettingsView.swift rename to overpass/Views/SettingsView.swift diff --git a/gastrack/Views/StationDetailView.swift b/overpass/Views/StationDetailView.swift similarity index 100% rename from gastrack/Views/StationDetailView.swift rename to overpass/Views/StationDetailView.swift diff --git a/gastrack/Views/StationRow.swift b/overpass/Views/StationRow.swift similarity index 100% rename from gastrack/Views/StationRow.swift rename to overpass/Views/StationRow.swift diff --git a/gastrack/gas.icon/Assets/emoji_u26fd.svg b/overpass/gas.icon/Assets/emoji_u26fd.svg similarity index 100% rename from gastrack/gas.icon/Assets/emoji_u26fd.svg rename to overpass/gas.icon/Assets/emoji_u26fd.svg diff --git a/gastrack/gas.icon/icon.json b/overpass/gas.icon/icon.json similarity index 100% rename from gastrack/gas.icon/icon.json rename to overpass/gas.icon/icon.json diff --git a/gastrack/gastrack.xcodeproj/project.pbxproj b/overpass/overpass.xcodeproj/project.pbxproj similarity index 94% rename from gastrack/gastrack.xcodeproj/project.pbxproj rename to overpass/overpass.xcodeproj/project.pbxproj index 7fb5050..a0f6c63 100644 --- a/gastrack/gastrack.xcodeproj/project.pbxproj +++ b/overpass/overpass.xcodeproj/project.pbxproj @@ -7,7 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - 0B5E3B392F75ACD9005F7F70 /* gastrackApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B5E3B382F75ACD9005F7F70 /* gastrackApp.swift */; }; + 0B5E3B392F75ACD9005F7F70 /* overpassApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B5E3B382F75ACD9005F7F70 /* overpassApp.swift */; }; 0B5E3B3B2F75ACD9005F7F70 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B5E3B3A2F75ACD9005F7F70 /* ContentView.swift */; }; 0B5E3B3D2F75ACDA005F7F70 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0B5E3B3C2F75ACDA005F7F70 /* Assets.xcassets */; }; 0B5E3B502F75B002005F7F70 /* LocationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B5E3B482F75B002005F7F70 /* LocationManager.swift */; }; @@ -28,10 +28,10 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 0B5E3B382F75ACD9005F7F70 /* gastrackApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = gastrackApp.swift; sourceTree = ""; }; + 0B5E3B382F75ACD9005F7F70 /* overpassApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = overpassApp.swift; sourceTree = ""; }; 0B5E3B3A2F75ACD9005F7F70 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 0B5E3B3C2F75ACDA005F7F70 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 0B5E3B432F75ACFB005F7F70 /* gastrack.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = gastrack.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0B5E3B432F75ACFB005F7F70 /* overpass.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = overpass.app; sourceTree = BUILT_PRODUCTS_DIR; }; 0B5E3B442F75B002005F7F70 /* Station.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Station.swift; sourceTree = ""; }; 0B5E3B462F75B002005F7F70 /* APIClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIClient.swift; sourceTree = ""; }; 0B5E3B472F75B002005F7F70 /* KeychainService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainService.swift; sourceTree = ""; }; @@ -68,8 +68,8 @@ 0B5E3B4F2F75B002005F7F70 /* Views */, 0B5E3B3C2F75ACDA005F7F70 /* Assets.xcassets */, 0B5E3B3A2F75ACD9005F7F70 /* ContentView.swift */, - 0B5E3B382F75ACD9005F7F70 /* gastrackApp.swift */, - 0B5E3B432F75ACFB005F7F70 /* gastrack.app */, + 0B5E3B382F75ACD9005F7F70 /* overpassApp.swift */, + 0B5E3B432F75ACFB005F7F70 /* overpass.app */, 0B5E3B5D2F75C0B6005F7F70 /* gas.icon */, ); sourceTree = ""; @@ -111,9 +111,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 0B5E3B342F75ACD9005F7F70 /* gastrack */ = { + 0B5E3B342F75ACD9005F7F70 /* overpass */ = { isa = PBXNativeTarget; - buildConfigurationList = 0B5E3B402F75ACDA005F7F70 /* Build configuration list for PBXNativeTarget "gastrack" */; + buildConfigurationList = 0B5E3B402F75ACDA005F7F70 /* Build configuration list for PBXNativeTarget "overpass" */; buildPhases = ( 0B5E3B312F75ACD9005F7F70 /* Sources */, 0B5E3B322F75ACD9005F7F70 /* Frameworks */, @@ -123,12 +123,12 @@ ); dependencies = ( ); - name = gastrack; + name = overpass; packageProductDependencies = ( 0B5E3B692F75F12D005F7F70 /* GRDB */, ); - productName = gastrack; - productReference = 0B5E3B432F75ACFB005F7F70 /* gastrack.app */; + productName = overpass; + productReference = 0B5E3B432F75ACFB005F7F70 /* overpass.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -146,7 +146,7 @@ }; }; }; - buildConfigurationList = 0B5E3B302F75ACD9005F7F70 /* Build configuration list for PBXProject "gastrack" */; + buildConfigurationList = 0B5E3B302F75ACD9005F7F70 /* Build configuration list for PBXProject "overpass" */; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -163,7 +163,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 0B5E3B342F75ACD9005F7F70 /* gastrack */, + 0B5E3B342F75ACD9005F7F70 /* overpass */, ); }; /* End PBXProject section */ @@ -197,7 +197,7 @@ 0B5E3B622F75C40F005F7F70 /* PrefetchView.swift in Sources */, 0B5E3B572F75B002005F7F70 /* MapStationsView.swift in Sources */, 0B5E3B582F75B002005F7F70 /* KeychainService.swift in Sources */, - 0B5E3B392F75ACD9005F7F70 /* gastrackApp.swift in Sources */, + 0B5E3B392F75ACD9005F7F70 /* overpassApp.swift in Sources */, 0B5E3B602F75C0F1005F7F70 /* StationStore.swift in Sources */, 0B5E3B6C2F76D765005F7F70 /* BackgroundRefreshService.swift in Sources */, ); @@ -337,7 +337,7 @@ DEVELOPMENT_TEAM = M67B42LX8D; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_CFBundleDisplayName = Gastrack; + INFOPLIST_KEY_CFBundleDisplayName = "Overpass: Gas Prices"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.navigation"; INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Used to find gas stations near you"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; @@ -350,7 +350,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 0.1.0; - PRODUCT_BUNDLE_IDENTIFIER = sh.dunkirk.gastrack; + PRODUCT_BUNDLE_IDENTIFIER = sh.dunkirk.overpass; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_APPROACHABLE_CONCURRENCY = YES; @@ -372,7 +372,7 @@ DEVELOPMENT_TEAM = M67B42LX8D; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_CFBundleDisplayName = Gastrack; + INFOPLIST_KEY_CFBundleDisplayName = "Overpass: Gas Prices"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.navigation"; INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Used to find gas stations near you"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; @@ -385,7 +385,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 0.1.0; - PRODUCT_BUNDLE_IDENTIFIER = sh.dunkirk.gastrack; + PRODUCT_BUNDLE_IDENTIFIER = sh.dunkirk.overpass; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_APPROACHABLE_CONCURRENCY = YES; @@ -400,7 +400,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 0B5E3B302F75ACD9005F7F70 /* Build configuration list for PBXProject "gastrack" */ = { + 0B5E3B302F75ACD9005F7F70 /* Build configuration list for PBXProject "overpass" */ = { isa = XCConfigurationList; buildConfigurations = ( 0B5E3B3E2F75ACDA005F7F70 /* Debug */, @@ -409,7 +409,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 0B5E3B402F75ACDA005F7F70 /* Build configuration list for PBXNativeTarget "gastrack" */ = { + 0B5E3B402F75ACDA005F7F70 /* Build configuration list for PBXNativeTarget "overpass" */ = { isa = XCConfigurationList; buildConfigurations = ( 0B5E3B412F75ACDA005F7F70 /* Debug */, diff --git a/overpass/overpass.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/overpass/overpass.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/overpass/overpass.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/gastrack/gastrack.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/overpass/overpass.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved similarity index 100% rename from gastrack/gastrack.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved rename to overpass/overpass.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/gastrack/gastrackApp.swift b/overpass/overpassApp.swift similarity index 99% rename from gastrack/gastrackApp.swift rename to overpass/overpassApp.swift index 2a613d0..2187ad1 100644 --- a/gastrack/gastrackApp.swift +++ b/overpass/overpassApp.swift @@ -46,7 +46,7 @@ final class AppDelegate: NSObject, UIApplicationDelegate { } @main -struct gastrackApp: App { +struct overpassApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate @StateObject private var api = APIClient.shared @StateObject private var eia = EIAService.shared