mirror of
https://github.com/samsonjs/samhuri.net.git
synced 2026-03-25 09:05:47 +00:00
Add a site URL override for building beta.samhuri.net
This commit is contained in:
parent
fa3ec10345
commit
23b3d2d625
5 changed files with 29 additions and 9 deletions
4
Makefile
4
Makefile
|
|
@ -8,8 +8,10 @@ publish: blog
|
|||
@echo
|
||||
./bin/publish --delete
|
||||
|
||||
publish_beta: blog
|
||||
publish_beta:
|
||||
@echo
|
||||
./bin/build-sitegen
|
||||
./bin/compile . www "https://beta.samhuri.net"
|
||||
./bin/publish --beta --delete
|
||||
|
||||
sitegen:
|
||||
|
|
|
|||
|
|
@ -20,9 +20,13 @@ public final class Generator {
|
|||
|
||||
let ignoredFilenames = [".DS_Store", ".gitkeep"]
|
||||
|
||||
public init(sourceURL: URL, renderers: [Renderer]) throws {
|
||||
public init(sourceURL: URL, siteURLOverride: URL? = nil, renderers: [Renderer]) throws {
|
||||
let siteURL = sourceURL.appendingPathComponent("site.json")
|
||||
let site = try Site.decode(from: siteURL)
|
||||
var site = try Site.decode(from: siteURL)
|
||||
if let url = siteURLOverride {
|
||||
print("Overriding site URL \(site.url) with \(url)")
|
||||
site.url = url
|
||||
}
|
||||
|
||||
let templatesURL = sourceURL.appendingPathComponent("templates")
|
||||
self.templateRenderer = SiteTemplateRenderer(site: site, templatesURL: templatesURL)
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ public struct Site {
|
|||
public let email: String?
|
||||
public let title: String
|
||||
public let description: String?
|
||||
public let url: URL
|
||||
public var url: URL
|
||||
public let template: String
|
||||
public let styles: [String]
|
||||
public let scripts: [String]
|
||||
|
|
|
|||
|
|
@ -8,12 +8,12 @@
|
|||
import Darwin
|
||||
import Foundation
|
||||
|
||||
func main(sourcePath: String, targetPath: String) throws {
|
||||
func main(sourcePath: String, targetPath: String, siteURLOverride: URL?) throws {
|
||||
let sourceURL = URL(fileURLWithPath: sourcePath)
|
||||
let targetURL = URL(fileURLWithPath: targetPath)
|
||||
let generator = try Generator(
|
||||
sourceURL: sourceURL,
|
||||
plugins: [ProjectsPlugin(), PostsPlugin(), RSSFeedPlugin(), JSONFeedPlugin()],
|
||||
siteURLOverride: siteURLOverride,
|
||||
renderers: [LessRenderer(), MarkdownRenderer()]
|
||||
)
|
||||
try generator.generate(targetURL: targetURL)
|
||||
|
|
@ -37,11 +37,24 @@ let targetPath = CommandLine.arguments[2]
|
|||
let targetExists = FileManager.default.fileExists(atPath: targetPath)
|
||||
guard !targetExists else {
|
||||
print("error: Refusing to clobber existing target \(targetPath)")
|
||||
exit(2)
|
||||
exit(3)
|
||||
}
|
||||
|
||||
let siteURLOverride: URL?
|
||||
if CommandLine.argc > 3, CommandLine.arguments[3].isEmpty == false {
|
||||
let urlString = CommandLine.arguments[3]
|
||||
guard let url = URL(string: urlString) else {
|
||||
print("error: invalid site URL \(urlString)")
|
||||
exit(4)
|
||||
}
|
||||
siteURLOverride = url
|
||||
}
|
||||
else {
|
||||
siteURLOverride = nil
|
||||
}
|
||||
|
||||
do {
|
||||
try main(sourcePath: sourcePath, targetPath: targetPath)
|
||||
try main(sourcePath: sourcePath, targetPath: targetPath, siteURLOverride: siteURLOverride)
|
||||
exit(0)
|
||||
}
|
||||
catch {
|
||||
|
|
|
|||
|
|
@ -6,12 +6,13 @@ set -e
|
|||
THIS_DIR=$(dirname "$0")
|
||||
SOURCE_DIR="$1"
|
||||
TARGET_DIR="$2"
|
||||
URL_OVERRIDE="$3"
|
||||
|
||||
function main() {
|
||||
rm -rf "$TARGET_DIR"
|
||||
|
||||
echo "* generate site from $SOURCE_DIR into $TARGET_DIR"
|
||||
"$THIS_DIR/sitegen" "$SOURCE_DIR" "$TARGET_DIR"
|
||||
"$THIS_DIR/sitegen" "$SOURCE_DIR" "$TARGET_DIR" "$URL_OVERRIDE"
|
||||
|
||||
# echo "* inline CSS"
|
||||
# ruby -w $THIS_DIR/inline-css "$TARGET_DIR"
|
||||
|
|
|
|||
Loading…
Reference in a new issue