$ grep -r Tag: «code snippets»

-rw-r--r-- 2.1K 11 апр. 2024 · FC685FE · ~1 мин

Создание DMG файла в терминале

dmg code snippets шпаргалки bash

Создание DMG-файла через Терминал

Вам когда-нибудь нужно было упаковать ваше приложение для распространения на macOS? Решение проще, чем вы думаете, и оно прямо у вас под рукой в Терминале. Недавно я наткнулся на удобную bash-функцию, которая упрощает создание DMG (Disk Image) файла. Вот как её настроить:

Шаг 1: Редактирование профиля

nano ~/.zprofile

Шаг 2: Добавление bash-функции

Затем вставьте следующую функцию в ваш .zprofile. Этот скрипт использует встроенную в macOS команду hdiutil для создания файловой системы HFS+ внутри DMG-файла.

dmg(){
    hdiutil create -fs HFS+ -srcfolder "$1" -volname "$2" "$2.dmg"
}

Шаг 3: Сохранение и применение изменений в профиле

После добавления кода сохраните изменения и выйдите из `nano`. Чтобы функция стала доступна немедленно без перезапуска терминала, примените конфигурацию вашего профиля:

source ~/.zprofile

Шаг 4: Использование функции

Теперь вы можете легко создавать DMG-файл для любой папки или приложения. Например, чтобы создать DMG для 'ModulbankInformer.app', просто выполните:

dmg ModulbankInformer.app ModulbankInformer

Эта команда создаст файл ModulbankInformer.dmg с содержимым директории ModulbankInformer.app.

Вот и всё — быстрый и эффективный способ создания DMG-файлов прямо из вашего Терминала!

[↵] открыть пост creating-a-dmg-file-from-terminal.md
-rw-r--r-- 1.4K 4 апр. 2024 · 0427246 · ~1 мин

Middleware для роутинга в Vapor 4 для обрезания слеша в url

vapor code snippets шпаргалки swift server side swift

Для веб-сайта или бэкенда — обычное дело, когда такие URL, как mySite.com/webpage и mySite.Com/webpage/, ведут на одну и ту же страницу. Для поисковых систем это разные адреса. Чтобы избежать дублирования контента, можно добавить простую middleware, которая будет удалять завершающий слеш и перенаправлять пользователя.

Вот пример кода для такого класса middleware в Vapor 4:

final class TrimSlashInPathMiddleware: Middleware {
    func respond(to request: Request, chainingTo next: Responder) -> EventLoopFuture<Response> {
        if request.url.path.count > 1, request.url.path.hasSuffix("/") {
            let newPath = String(request.url.path.trimmingSuffix(while: { $0 == "/" }))
            let response = request.redirect(to: newPath, redirectType: .permanent)
            return request.eventLoop.makeSucceededFuture(response)
        }
        return next.respond(to: request)
    }
}

Просто добавьте его в файл configure.swift:

import Vapor

public func configure(_ app: Application) throws {
    app.middleware.use(TrimSlashInPathMiddleware())

    app.http.server.configuration.port = 8081

    try routes(app)
}

Работает с Vapor 4.92.5.

[↵] открыть пост a-middleware-for-vapor4-to-trim-a-slash-in-url-path.md
makoni@arm1:~/blog$ cd .. // ↵ ко всем постам