commit - 35e7d1ea65e988b0b158fd2aa25cd9bb86f4190d
commit + 2aea4626e87e725c3c2c9e32ed124ed327d8c910
blob - /dev/null
blob + 325ac523b34145f1154086984c2a08b8876507ac (mode 644)
--- /dev/null
+++ apple/Info.plist
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!--
+ Info.plist
+ mailmux
+
+ Created by Oliver Lowe on 4/7/2022.
+ Copyright (c) 2022 ___ORGANIZATIONNAME___. All rights reserved.
+-->
+<plist version="1.0">
+<dict/>
+</plist>
blob - /dev/null
blob + ff0c655b56381b26f0a591de623b3f6b7b324439 (mode 644)
--- /dev/null
+++ apple/Shared/Client.swift
+//
+// Client.swift
+// mailmux
+//
+// Created by Oliver Lowe on 4/7/2022.
+//
+
+import Foundation
blob - 6ae8ce1425c4b42fd87fd78105f6c9d965663378 (mode 644)
blob + /dev/null
--- apple/iOS/Settings.swift
+++ /dev/null
-import SwiftUI
-
-struct Settings: View {
- var body: some View {
- CredentialsForm()
- }
-}
blob - /dev/null
blob + 4a1fe5d58fa8dd3456eaf502f9d4eccd7ad2bd08 (mode 644)
--- /dev/null
+++ apple/iOS/iSettings.swift
+import SwiftUI
+
+struct iSettings: View {
+ @Binding var presented: Bool
+ var body: some View {
+ NavigationView {
+ CredentialsForm()
+ .navigationTitle("Settings")
+ .toolbar {
+ ToolbarItem(placement: .navigation) {
+ Button(action: {
+ presented = false
+ }) {
+ Label("Done", systemImage: "checkmark")
+ }
+ }
+ }
+ }
+ }
+}
blob - /dev/null
blob + 4ad6eaad36df0c66bcb1e4fd9045d38829fcb964 (mode 644)
--- /dev/null
+++ cmd/changeuser/changeuser.go
+package main
+
+import (
+ "fmt"
+ "os"
+ "path"
+
+ mailmux "mailmux.net"
+)
+
+const usage string = "usage: changeuser user"
+
+func openUserDB() (mailmux.UserStore, error) {
+ cachedir, err := os.UserCacheDir()
+ if err != nil {
+ return nil, err
+ }
+ dbpath := path.Join(cachedir, "mailmux/db")
+ ticketdir := path.Join(cachedir, "mailmux/ticket")
+ return mailmux.OpenUserDB(dbpath, ticketdir)
+}
+
+func main() {
+ if len(os.Args) != 2 {
+ fmt.Println(usage)
+ os.Exit(1)
+ }
+ username := os.Args[1]
+ var password, confirm string
+ for {
+ fmt.Print("Password: ")
+ if _, err := fmt.Scanln(&password); err != nil {
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }
+ fmt.Print("Confirm password: ")
+ if _, err := fmt.Scanln(&confirm); err != nil {
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }
+ if password != confirm {
+ fmt.Println("mismatch, try again")
+ continue
+ }
+ break
+ }
+ db, err := openUserDB()
+ if err != nil {
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }
+ if err := db.Change(username, mailmux.Password(password)); err != nil {
+ fmt.Fprintln(os.Stderr, err)
+ os.Exit(1)
+ }
+}