From 9788df48a9638c6bf37bc161abefcee7f583b64c Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 18 Nov 2013 01:03:10 +0100 Subject: Use git and filesystem as data back-end --- upgrade-git.hy | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100755 upgrade-git.hy (limited to 'upgrade-git.hy') diff --git a/upgrade-git.hy b/upgrade-git.hy new file mode 100755 index 0000000..036f7c0 --- /dev/null +++ b/upgrade-git.hy @@ -0,0 +1,48 @@ +#!/usr/bin/env hy +;; Hypo -- Quickly share stuff +;; Copyright (C) 2013 Tom Willemse + +;; Hypo is free software: you can redistribute it and/or modify it +;; under the terms of the GNU Affero General Public License as +;; published by the Free Software Foundation, either version 3 of the +;; License, or (at your option) any later version. + +;; Hypo is distributed in the hope that it will be useful, but WITHOUT +;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General +;; Public License for more details. + +;; You should have received a copy of the GNU Affero General Public +;; License along with Hypo. If not, see . + +(import web os + [gittle [Gittle]]) + +(try (import [config [*]]) + (catch [ImportError] + (print "Please copy the config.example.hy to config.hy and set" + "the values to your preference.") + (sys.exit 1))) + +(def db + (kwapply (web.database) + {"dbn" "postgres" "user" *dbuser* "pw" *dbpw* "db" *dbname*})) + +(defun get-file [name] + (let ((res (kwapply (.select db "hfile" {"shash" name}) + {"where" "shash = $shash"}))) + (if res (car res)))) + +(foreach [f (os.listdir "files/")] + (let ((file (get-file f))) + (os.rename (+ "files/" f) + (+ "files/" file.filename)) + (os.mkdir (+ "files/" f)) + (os.rename (+ "files/" file.filename) + (+ "files/" f "/" file.filename)) + (let ((repo (Gittle.init (+ "files/" f)))) + (.stage repo [(str file.filename)]) + (kwapply (repo.commit) + {"name" "System" + "email" "tom@ryuslash.org" + "message" "Initial commit for upgrade to git"})))) -- cgit v1.2.3-54-g00ecf