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
|
@echo
|
||||||
./bin/publish --delete
|
./bin/publish --delete
|
||||||
|
|
||||||
publish_beta: blog
|
publish_beta:
|
||||||
@echo
|
@echo
|
||||||
|
./bin/build-sitegen
|
||||||
|
./bin/compile . www "https://beta.samhuri.net"
|
||||||
./bin/publish --beta --delete
|
./bin/publish --beta --delete
|
||||||
|
|
||||||
sitegen:
|
sitegen:
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,13 @@ public final class Generator {
|
||||||
|
|
||||||
let ignoredFilenames = [".DS_Store", ".gitkeep"]
|
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 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")
|
let templatesURL = sourceURL.appendingPathComponent("templates")
|
||||||
self.templateRenderer = SiteTemplateRenderer(site: site, templatesURL: templatesURL)
|
self.templateRenderer = SiteTemplateRenderer(site: site, templatesURL: templatesURL)
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ public struct Site {
|
||||||
public let email: String?
|
public let email: String?
|
||||||
public let title: String
|
public let title: String
|
||||||
public let description: String?
|
public let description: String?
|
||||||
public let url: URL
|
public var url: URL
|
||||||
public let template: String
|
public let template: String
|
||||||
public let styles: [String]
|
public let styles: [String]
|
||||||
public let scripts: [String]
|
public let scripts: [String]
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,12 @@
|
||||||
import Darwin
|
import Darwin
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
func main(sourcePath: String, targetPath: String) throws {
|
func main(sourcePath: String, targetPath: String, siteURLOverride: URL?) throws {
|
||||||
let sourceURL = URL(fileURLWithPath: sourcePath)
|
let sourceURL = URL(fileURLWithPath: sourcePath)
|
||||||
let targetURL = URL(fileURLWithPath: targetPath)
|
let targetURL = URL(fileURLWithPath: targetPath)
|
||||||
let generator = try Generator(
|
let generator = try Generator(
|
||||||
sourceURL: sourceURL,
|
sourceURL: sourceURL,
|
||||||
plugins: [ProjectsPlugin(), PostsPlugin(), RSSFeedPlugin(), JSONFeedPlugin()],
|
siteURLOverride: siteURLOverride,
|
||||||
renderers: [LessRenderer(), MarkdownRenderer()]
|
renderers: [LessRenderer(), MarkdownRenderer()]
|
||||||
)
|
)
|
||||||
try generator.generate(targetURL: targetURL)
|
try generator.generate(targetURL: targetURL)
|
||||||
|
|
@ -37,11 +37,24 @@ let targetPath = CommandLine.arguments[2]
|
||||||
let targetExists = FileManager.default.fileExists(atPath: targetPath)
|
let targetExists = FileManager.default.fileExists(atPath: targetPath)
|
||||||
guard !targetExists else {
|
guard !targetExists else {
|
||||||
print("error: Refusing to clobber existing target \(targetPath)")
|
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 {
|
do {
|
||||||
try main(sourcePath: sourcePath, targetPath: targetPath)
|
try main(sourcePath: sourcePath, targetPath: targetPath, siteURLOverride: siteURLOverride)
|
||||||
exit(0)
|
exit(0)
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,13 @@ set -e
|
||||||
THIS_DIR=$(dirname "$0")
|
THIS_DIR=$(dirname "$0")
|
||||||
SOURCE_DIR="$1"
|
SOURCE_DIR="$1"
|
||||||
TARGET_DIR="$2"
|
TARGET_DIR="$2"
|
||||||
|
URL_OVERRIDE="$3"
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
rm -rf "$TARGET_DIR"
|
rm -rf "$TARGET_DIR"
|
||||||
|
|
||||||
echo "* generate site from $SOURCE_DIR into $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"
|
# echo "* inline CSS"
|
||||||
# ruby -w $THIS_DIR/inline-css "$TARGET_DIR"
|
# ruby -w $THIS_DIR/inline-css "$TARGET_DIR"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue