Compare commits
7 Commits
v0.0.2
...
171ec8fe4b
Author | SHA1 | Date | |
---|---|---|---|
171ec8fe4b | |||
b7d5f4fcb1 | |||
e79f83f800 | |||
8416067007 | |||
1723bf75b8 | |||
8d68479194 | |||
4ae38ec2c9 |
48
.github/workflows/docs.yaml
vendored
Normal file
48
.github/workflows/docs.yaml
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
name: Docs
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "master" ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup V
|
||||||
|
run: |
|
||||||
|
wget -qO /tmp/v.zip https://github.com/vlang/v/releases/latest/download/v_linux.zip
|
||||||
|
unzip -q /tmp/v.zip -d /tmp
|
||||||
|
echo /tmp/v >> "$GITHUB_PATH"
|
||||||
|
|
||||||
|
- name: Build docs
|
||||||
|
run: |
|
||||||
|
v doc -f html -m .
|
||||||
|
pushd _docs
|
||||||
|
ln -vs embedfs.html index.html
|
||||||
|
ls -alFh
|
||||||
|
popd
|
||||||
|
|
||||||
|
- name: Upload static files as artifact
|
||||||
|
id: deployment
|
||||||
|
uses: actions/upload-pages-artifact@v3
|
||||||
|
with:
|
||||||
|
path: _docs/
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
needs: build
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v4
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
24
.github/workflows/test.yaml
vendored
Normal file
24
.github/workflows/test.yaml
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
name: Tests
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "master" ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ "master" ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup V
|
||||||
|
run: |
|
||||||
|
wget -qO /tmp/v.zip https://github.com/vlang/v/releases/latest/download/v_linux.zip
|
||||||
|
unzip -q /tmp/v.zip -d /tmp
|
||||||
|
echo /tmp/v >> "$GITHUB_PATH"
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
run: |
|
||||||
|
v -stats test .
|
20
Makefile
20
Makefile
@ -1,20 +0,0 @@
|
|||||||
SRC_DIR ?= src
|
|
||||||
DOC_DIR ?= doc
|
|
||||||
TESTS_DIR ?= .
|
|
||||||
|
|
||||||
all: test
|
|
||||||
|
|
||||||
test:
|
|
||||||
v test $(TESTS_DIR)
|
|
||||||
|
|
||||||
doc:
|
|
||||||
v doc -f html -m ./$(SRC_DIR) -o $(DOC_DIR)
|
|
||||||
|
|
||||||
serve: clean doc
|
|
||||||
v -e "import net.http.file; file.serve(folder: '$(DOC_DIR)')"
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -r $(DOC_DIR) || true
|
|
||||||
|
|
||||||
cli:
|
|
||||||
v cmd/mkembedfs -o mkembedfs
|
|
@ -7,7 +7,7 @@ import net.http.mime
|
|||||||
pub struct CodeGenerator {
|
pub struct CodeGenerator {
|
||||||
pub:
|
pub:
|
||||||
// Path to file or directory to embed
|
// Path to file or directory to embed
|
||||||
path string
|
path string @[required]
|
||||||
// Path prefix if you want to add extra prefix for file paths
|
// Path prefix if you want to add extra prefix for file paths
|
||||||
prefix string
|
prefix string
|
||||||
// Glob patterns to match files the must be ignored when generating the code
|
// Glob patterns to match files the must be ignored when generating the code
|
@ -1,7 +1,6 @@
|
|||||||
module main
|
module main
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
println(embedfs)
|
|
||||||
$if bare_map ? {
|
$if bare_map ? {
|
||||||
json_file := embedfs['assets/example.json'] or { EmbedFile{} }
|
json_file := embedfs['assets/example.json'] or { EmbedFile{} }
|
||||||
println(json_file.data.to_string().trim_space())
|
println(json_file.data.to_string().trim_space())
|
||||||
|
@ -1,12 +1 @@
|
|||||||
EmbedFileSystem{
|
|
||||||
files: {'assets/example.json': EmbedFile{
|
|
||||||
data: embed_file.EmbedFileData{ len: 22, path: "assets/example.json", apath: "", uncompressed: 846284 }
|
|
||||||
meta: EmbedFileMetadata{
|
|
||||||
key: 'assets/example.json'
|
|
||||||
name: 'example.json'
|
|
||||||
ext: 'json'
|
|
||||||
mimetype: 'application/json'
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
}
|
|
||||||
{"some": "JSON data"}
|
{"some": "JSON data"}
|
||||||
|
@ -20,7 +20,7 @@ fn test_mymod() {
|
|||||||
|
|
||||||
fn test_mymod_bare_map() {
|
fn test_mymod_bare_map() {
|
||||||
oldpwd := os.getwd()
|
oldpwd := os.getwd()
|
||||||
expected_out := os.read_file('tests/mymod_test_bare_map.out')!
|
expected_out := os.read_file('tests/mymod_test.out')!
|
||||||
os.chdir('tests/mymod')!
|
os.chdir('tests/mymod')!
|
||||||
gen := embedfs.CodeGenerator{
|
gen := embedfs.CodeGenerator{
|
||||||
path: 'assets'
|
path: 'assets'
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
{'assets/example.json': EmbedFile{
|
|
||||||
data: embed_file.EmbedFileData{ len: 22, path: "assets/example.json", apath: "", uncompressed: 845da4 }
|
|
||||||
meta: EmbedFileMetadata{
|
|
||||||
key: 'assets/example.json'
|
|
||||||
name: 'example.json'
|
|
||||||
ext: 'json'
|
|
||||||
mimetype: 'application/json'
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
{"some": "JSON data"}
|
|
Reference in New Issue
Block a user