Skip to content

Commit

Permalink
Merge pull request #46 from ortfo/simplified-data-flow
Browse files Browse the repository at this point in the history
Upgrade to ortfo v1.4.1
gwennlbh authored Apr 20, 2024
2 parents 908a1f7 + 849e7e7 commit 176a4c9
Showing 53 changed files with 4,011 additions and 3,439 deletions.
1 change: 1 addition & 0 deletions .current-config-dir
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -41,7 +41,7 @@ public/build/
.config

mock-projects/
!mock-projects/*/.portfoliodb/
!mock-projects/*/.ortfo/
!mock-projects/neptune/cover-arts/renders/square.png

vite.config.ts.js
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -16,5 +16,6 @@
"& add(e)}\n\t\t\t/>\n\t\t",
" e.code === \"Enter\" ",
" e.code === \"Enter\" "
]
],
"svg.preview.background": "transparent"
}
18 changes: 9 additions & 9 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -5,9 +5,9 @@
"label": "front",
"type": "shell",
"command": "pnpm frontend-dev",
"runOptions": {
"runOn": "folderOpen"
},
// "runOptions": {
// "runOn": "folderOpen"
// },
"presentation": {
"group": "dev"
},
@@ -17,9 +17,9 @@
"label": "back",
"type": "shell",
"command": "pnpm backend-dev",
"runOptions": {
"runOn": "folderOpen"
},
// "runOptions": {
// "runOn": "folderOpen"
// },
"presentation": {
"group": "dev"
}
@@ -28,9 +28,9 @@
"label": "tests",
"type": "shell",
"command": "pnpm vitest watch",
"runOptions": {
"runOn": "folderOpen"
},
// "runOptions": {
// "runOn": "folderOpen"
// },
"presentation": {
"group": "tdd"
}
1 change: 1 addition & 0 deletions .wakatime-project
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ortfo
14 changes: 4 additions & 10 deletions Makefile → Justfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
.PHONY: build, installers

build:
# Build frontend
pnpm frontend-build
# Gather generated files
statik -f -src=dist/
# Build backend
cd backend && go build -o ../ortfo

install:
mv ortfo ~/.local/bin/

installers:
$(MAKE) build
just build
cd installers && ./create.sh

format:
@@ -18,14 +16,10 @@ format:
prettier --write frontend/** --plugin-search-dir=.

setup:
# Install frontend dependencies
pnpm install || yarn install || npm install
# Install the statik tool
go install github.com/rakyll/statik
# Prepare statik content
mkdir -p dist/
statik -f -src=dist/
# Install backend dependencies
go mod tidy

test:
Binary file added backend/backend
Binary file not shown.
32 changes: 18 additions & 14 deletions backend/database.go
Original file line number Diff line number Diff line change
@@ -4,10 +4,10 @@ import (
"encoding/json"
"fmt"
"os"
"strings"

"github.com/mitchellh/go-homedir"
ortfodb "github.com/ortfo/db"
ortfomk "github.com/ortfo/mk"
)

func (settings *Settings) InitializeDatabase() error {
@@ -16,7 +16,7 @@ func (settings *Settings) InitializeDatabase() error {
return fmt.Errorf("couldn't create data directories: %w", err)
}
// initialize portfolio database
err = WriteIfNotExist(ConfigurationDirectory("portfolio-database", "database.json"), []byte("[]"))
err = WriteIfNotExist(ConfigurationDirectory("portfolio-database", "database.json"), []byte("{}"))
if err != nil {
return fmt.Errorf("couldn't initialize portfolio database file: %w", err)
}
@@ -48,7 +48,7 @@ func (settings *Settings) InitializeDatabase() error {
return nil
}

func (settings *Settings) LoadDatabase() (db ortfomk.Database, err error) {
func (settings *Settings) LoadDatabase() (db ortfodb.Database, err error) {
// Check if projects folder exists
projectsFolder, err := homedir.Expand(settings.ProjectsFolder)
if err != nil {
@@ -64,25 +64,27 @@ func (settings *Settings) LoadDatabase() (db ortfomk.Database, err error) {
}

println("Not re-building database...")
return ortfomk.LoadDatabase(ConfigurationDirectory("portfolio-database"))
return ortfodb.LoadDatabase(ConfigurationDirectory("portfolio-database", "database.json"), true)
}

func (settings *Settings) RebuildDatabase() error {
os.Chdir(ConfigurationDirectory("portfolio-database"))
LogToBrowser("Rebuilding database...")
LogToBrowser(fmt.Sprintf("context is %#v", ctx))
projectsFolder, err := homedir.Expand(settings.ProjectsFolder)
if err != nil {
return fmt.Errorf("while expanding ~: %w", err)
}
ortfodbConfig, err := ortfodb.NewConfiguration(ConfigurationDirectory("ortfodb.yaml"), ConfigurationDirectory("portfolio-database"))
ortfodbConfig, err := ortfodb.NewConfiguration(ConfigurationDirectory("ortfodb.yaml"))
if err != nil {
return fmt.Errorf("couldn't load database configuration: %w", err)
}

go ortfodb.BuildAll(
LogToBrowser("building with ctx %#v", ctx)
ctx.BuildAll(
projectsFolder,
ConfigurationDirectory("portfolio-database", "database.json"),
ortfodb.Flags{Scattered: true, Silent: true, ProgressFile: ConfigurationDirectory("portfolio-database", "progress.json")},
ortfodb.Flags{Scattered: true, Silent: true, ProgressInfoFile: ConfigurationDirectory("progress.jsonl")},
ortfodbConfig,
)
if crash := recover(); crash != nil {
@@ -91,15 +93,14 @@ func (settings *Settings) RebuildDatabase() error {
if err != nil {
return fmt.Errorf("couldn't build the portfolio's database: %w", err)
}
LogToBrowser("Finish rebuilding database")
return nil
}

func (settings *Settings) DeleteWorks(ids []string) error {
var err error
for _, id := range ids {
LogToBrowser("Deleting %s", JoinPaths(settings.ProjectsFolder, id, ".portfoliodb"))
err = os.RemoveAll(JoinPaths(settings.ProjectsFolder, id, ".portfoliodb"))
LogToBrowser("Deleting %s", JoinPaths(settings.ProjectsFolder, id, ".ortfo"))
err = os.RemoveAll(JoinPaths(settings.ProjectsFolder, id, ".ortfo"))
if err != nil {
ErrorToBrowser(err.Error())
return err
@@ -108,21 +109,24 @@ func (settings *Settings) DeleteWorks(ids []string) error {
return nil
}

func (settings *Settings) ProgressFile() ortfomk.ProgressFile {
var progressFile ortfomk.ProgressFile
progressFilePath := ConfigurationDirectory("portfolio-database", "progress.json")
func (settings *Settings) ProgressFile() ortfodb.ProgressInfoEvent {
var progressFile ortfodb.ProgressInfoEvent
progressFilePath := ConfigurationDirectory("progress.jsonl")
if _, err := os.Stat(progressFilePath); os.IsNotExist(err) {
return progressFile
}
raw, err := os.ReadFile(progressFilePath)
if string(raw) == "" {
return settings.ProgressFile()
}
LogToBrowser("Progress file raw is %s", string(raw))
// keep only the last line
if err != nil {
ErrorToBrowser("Couldn't read progress file: %s", err)
return progressFile
}
// Keep only the last line
lines := strings.Split(string(raw), "\n")
raw = []byte(lines[len(lines)-2])
err = json.Unmarshal(raw, &progressFile)
if err != nil {
ErrorToBrowser("Couldn't parse progress file: %s. Raw was %q", err, string(raw))
101 changes: 0 additions & 101 deletions backend/layout.go

This file was deleted.

Loading

0 comments on commit 176a4c9

Please sign in to comment.