Skip to content
Snippets Groups Projects
main.go 1.23 KiB
Newer Older
Hugo Hörnquist's avatar
Hugo Hörnquist committed
package main

import (
	"log"
	"os"
Hugo Hörnquist's avatar
Hugo Hörnquist committed
	_ "strings"
	"git.lysator.liu.se/hugo/foremanFS/dir"
	"git.lysator.liu.se/hugo/foremanFS/fetch"

	"bazil.org/fuse"
	"bazil.org/fuse/fs"
	_ "bazil.org/fuse/fs/fstestutil"
Hugo Hörnquist's avatar
Hugo Hörnquist committed
var classesForHost = map[string][]string{}
Hugo Hörnquist's avatar
Hugo Hörnquist committed
// const apiurl := "http://localhost:8000/hosts.json"

Hugo Hörnquist's avatar
Hugo Hörnquist committed
func main() {
	password := os.Args[1:][0]
Hugo Hörnquist's avatar
Hugo Hörnquist committed

	fetch.Init(password)
Hugo Hörnquist's avatar
Hugo Hörnquist committed

	c, err := fuse.Mount(
		"mnt",
		fuse.FSName("Foreman"),
		fuse.Subtype("foreman"),
	)
	if err != nil {
		log.Fatal(err)
	}
	// defer c.Unmount()
	defer c.Close()

Hugo Hörnquist's avatar
Hugo Hörnquist committed
	log.Print("Serving filesystem")
	err = fs.Serve(c, FS{})
	if err != nil {
		log.Fatal(err)
	}

}

Hugo Hörnquist's avatar
Hugo Hörnquist committed
type FS struct {
	// data []ResultRecord
}

func (fs FS) Root() (fs.Node, error) {
Hugo Hörnquist's avatar
Hugo Hörnquist committed
	// return Dir{   /*fs.data*/ }, nil
Hugo Hörnquist's avatar
Hugo Hörnquist committed
	return dir.DirHostList{ /*fs.data*/ }, nil
Hugo Hörnquist's avatar
Hugo Hörnquist committed
/*
func (FS) GenerateInode(parentInode uint64, name string) uint64 {
	sum := uint64(0)
	sum += parentInode
	for _, c := range []byte(name) {
		sum += uint64(c)
	}
Hugo Hörnquist's avatar
Hugo Hörnquist committed
	log.Printf("Generating inode for %v (inode = %v, parent = %v)",
		name, sum, parentInode)
	return sum
}
Hugo Hörnquist's avatar
Hugo Hörnquist committed
*/
Hugo Hörnquist's avatar
Hugo Hörnquist committed
/* dir hashable? */
/* TODO does two Dir object with same value hash become the same
* object? */
Hugo Hörnquist's avatar
Hugo Hörnquist committed
/*
type Dir struct{
	// data []ResultRecord
	// name []string
Hugo Hörnquist's avatar
Hugo Hörnquist committed
	name string
Hugo Hörnquist's avatar
Hugo Hörnquist committed
*/