Commit 239776ad5f7f38f1c25dbd8afe9526628ba1596f

Thomas de Grivel 2025-03-24T00:25:02

move most files to lib

diff --git a/kpkg b/kpkg
index e5bc926..701e62f 100755
--- a/kpkg
+++ b/kpkg
@@ -1,4 +1,4 @@
-#!/usr/bin/env kc3s
+#!/usr/bin/env -S kc3s --load /dev/stdin --quit
 # -*- elixir -*-
 # kc3
 # Copyright from 2022 to 2025 kmx.io <contact@kmx.io>
@@ -11,117 +11,7 @@
 # PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
 # AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
 # THIS SOFTWARE.
-
-defmodule Kpkg do
-
-  require Kpkg.Package
-
-  def dir = do
-    dir = if kpg_dir = getenv("KPKG_DIR") do
-      kpkg_dir
-    else
-      if home = getenv("HOME") do
-        "#{home}/kpkg"
-      end
-    end
-    if Str.ends_with?(dir, "/") do
-      dir
-    else
-      dir + "/"
-    end
-  end
-
-  def db = Facts.database()
-
-  def defpackage = fn (package) {
-    Facts.add_tags(db, package.name, :is_a, Kpkg.Package)
-    Facts.replace_tags(db, package.name,
-      :kpkg_package_depends_on, package.depends_on)
-    Facts.replace_tags(db, package.name,
-      :kpkg_package_dir, package.dir)
-    Facts.replace_tags(db, package.name,
-      :kpkg_package_git, package.git)
-    Facts.replace_tags(db, package.name,
-      :kpkg_package_module, package.module)
-  }
-
-  def defalias = fn (name, target) {
-    Facts.add_tags(db, name, :is_a, Kpkg.Package.Alias)
-    Facts.add_tags(db, name, :kpkg_package_alias_target, target)
-  }
-
-  def get_kpkg_package = fn (name) {
-    Facts.first_with(db, [[name, :is_a, Kpkg.Package],
-                          [name, :kpkg_package_dir, dir = ?],
-                          [name, :kpkg_package_git, git = ?],
-                          [name, :kpkg_package_module, module = ?]],
-      fn (fact) { %Kpkg.Package{name: name, dir: dir, git: git,
-                                module: module} })
-  }
+require Kpkg
   
-  def get_kpkg_package_alias = fn (name) {
-    if name = Sym.find(name) do
-      while (new_name = Facts.first_with_tags(db, name,
-               :kpkg_package_alias_target, new_name,
-               fn (fact) { new_name })) do
-        name = new_name
-      end
-      name
-    end
-  }
-        
-  def get_package = fn (name) {
-    if name = get_kpkg_package_alias(name) do
-      get_kpkg_package(name)
-    end
-  }
-
-  def load = fn () {
-    load_directory(__DIR__ + "repos/")
-    File.ensure_directory(dir, 0o755)
-  }
-
-  def main = fn {
-    ([]) {
-      puts("Usage: KPKG_DIR=~/kpkg kpkg PKG [OPTIONS] COMMAND [ARG ...] ...")
-      puts(" Options :")
-      puts("  --tree=TREE           work on $TREE")
-      puts(" Source directory commands :")
-      puts("  checkout              into src/$DIR/$TREE")
-      puts("  clone                 into git/$DIR")
-      puts("  clean-source-tree     clean src/$DIR/$TREE")
-      puts("  clean-source-git      clean git/$DIR")
-      puts("  clean-sources         clean src/$DIR and git/$DIR")
-      puts(" Build commands :")
-      puts("  configure")
-      puts("  clean-configure       remove configure-done tag")
-      puts("  build                 run parallel build")
-      puts("  clean-build           remove object files")
-      0
-    }
-    ([name | rest]) {
-       load()
-       if pkg = get_package(name) do
-         main_args(pkg, rest)
-       else
-         puts("kpkg: package not found: #{name}")
-         1
-       end
-     }
-  }
-
-  def main_args = fn {
-    (pkg, args) { main_args(pkg, args, 0) }
-    (pkg, ["checkout", tree | rest], ret) {
-      if ret == 0 do
-        main_args(pkg, rest, fetch(pkg, tree))
-      else
-        ret
-      end
-    }
-    (pkg, [], ret) { ret }
-  }
-
-end
-
-exit(Kpkg.main(args()))
+[argv0 | args_rest] = args()
+exit(Kpkg.main(args_rest))
diff --git a/package.kc3 b/package.kc3
deleted file mode 100644
index b3927ca..0000000
--- a/package.kc3
+++ /dev/null
@@ -1,10 +0,0 @@
-defmodule Kpkg.Package do
-
-  defstruct [name: (Sym) ?,
-             depends_on: [],
-             dir: "org/subdir/repo",
-             git: "https://github.com/dir.git",
-             make: "make",
-             module: Module]
-
-end
diff --git a/repos/kc3.kc3 b/repos/kc3.kc3
deleted file mode 100644
index 20a8a86..0000000
--- a/repos/kc3.kc3
+++ /dev/null
@@ -1,3 +0,0 @@
-defmodule Kpkg.Repos.Kc3 do
-
-  defpackage