Skip to content

Instantly share code, notes, and snippets.

View scorredoira's full-sized avatar

Santiago Corredoira scorredoira

View GitHub Profile
@scorredoira
scorredoira / timetable.json
Created June 1, 2018 17:59
timetable view demo
{
"type": "a.adminview",
"path": "/timetable",
"title": "@@Ocupación",
"children": {
"body": {
"type": "dashboard",
"children": [
{
"type": "row",
/**
* ------------------------------------------------------------------
* Compare and update the database with entity definitions.
* ------------------------------------------------------------------
*/
import "lib/std"
import "lib/array"
import * as config from "lib/config"
import * as orm from "lib/orm";
import "lib/std";
import * as web from "lib/web";
import * as orm from "lib/orm";
import * as crud from "lib/crud";
function init() {
initEntities();
web.addRoute("/crm/clients.json", crud.listHandler("client"), [web.adminFilter])
web.addRoute("/crm/clients/:id.json", crud.detailHandler("client"), [web.adminFilter])
web.addRoute("/crm/saveClient.json", crud.saveHandler("client"), [web.adminFilter])
namespace crm {
window.addEventListener("load", () => {
initRoutes();
});
function initRoutes() {
web.addRoute("/crm/clients", clients)
}
function clients(data: any) {
/**
* ------------------------------------------------------------------ *
* Recursively enable/disable git repos
* Poor man's submodules
* ------------------------------------------------------------------
*/
export function main(enabled: string) {
let b = convert.toBool(enabled);
processDir(".", b, true, os.fileSystem)
namespace web {
let global = sync.newMutex();
let locks: Map<sync.Mutex> = <any>{}
export function getLockedMutex(key: string): sync.Mutex {
global.lock()
try {
let m = locks[key]
if (!m) {
#!/bin/bash
set -e
cd githubliteide/build
# -f first time install, clones the repo and prepares the build env.
# -u update build
# -k install original
#
f, err := os.Open("access.log")
if err != nil {
panic(err)
}
defer f.Close()
sc, err := files.NewBackScanner(f)
if err != nil {
panic(err)
}
package files
import (
"bytes"
"os"
)
func NewBackScanner(f *os.File) (*BackScanner, error) {
s, err := f.Stat()
if err != nil {
@scorredoira
scorredoira / .go
Last active October 16, 2016 16:26
read a file from the end
// Tail returns the last n lines of a file. It's not optimized but scans
// from the end so it's fast for large files.
func Tail(path string, lines int) ([]string, error) {
f, err := os.Open(path)
if err != nil {
return nil, err
}
defer f.Close()
s, err := os.Stat(path)