History

experiment

Sigrid Haflínudóttir committed 6 years ago

Commit 2ddbb0bNo parent (first commit)9 files · +264 −0Browse files

Unified · Split

9 files
  1. devs.c +8 −0
  2. devs.h +1 −0
  3. mkfile +23 −0
  4. p_graphics.c +20 −0
  5. p_music.c +41 −0
  6. p_network.c +20 −0
  7. pkg.c +103 −0
  8. pkg.h +48 −0
  9. pkg.man +0 −0
devs.c+8−0
@@ -0,0 +1,8 @@
1#include <u.h>
2#include "pkg.h"
3
4Dev ftrvxmtrx = {
5 .nick = "sigrid",
6 .name = "Sigrid Solveig Haflínudóttir",
7 .email = "ftrvxmtrx@gmail.com",
8};
devs.h+1−0
@@ -0,0 +1 @@
1extern Dev ftrvxmtrx;
mkfile+23−0
@@ -0,0 +1,23 @@
1</$objtype/mkfile
2
3TARG=pkg
4BIN=/$objtype/bin
5MAN=/sys/man/1
6
7HFILES=\
8
9PKGS=\
10 p_graphics.$O\
11 p_music.$O\
12 p_network.$O\
13
14OFILES=\
15 devs.$O\
16 pkg.$O\
17 $PKGS\
18
19default:V: all
20
21</sys/src/cmd/mkone
22
23install:V: $MAN/$TARG
p_graphics.c+20−0
@@ -0,0 +1,20 @@
1#include <u.h>
2#include "pkg.h"
3#include "devs.h"
4
5Pkg fontsel = {
6 .name = "fontsel",
7 .ver = "20200420",
8 .src = {
9 .url = "github://ftrvxmtrx/fontsel",
10 .rev = "1648e4b",
11 .hash = "base58 here",
12 },
13 .meta = {
14 .descr = "Font selector",
15 .web = "http://ftrv.se/_/9",
16 .license = "public domain",
17 .devs = {&ftrvxmtrx},
18 .cat = {Cgraphics},
19 },
20};
p_music.c+41−0
@@ -0,0 +1,41 @@
1#include <u.h>
2#include "pkg.h"
3#include "devs.h"
4
5Pkg libtags = {
6 .name = "libtags",
7 .ver = "20191219",
8 .src = {
9 .url = "github://ftrvxmtrx/libtags",
10 .rev = "63b1d8e",
11 .hash = "base58 here",
12 },
13 .meta = {
14 .descr = "A cross-platform library for reading tags",
15 .web = "http://ftrv.se/_/9",
16 .license = "MIT",
17 .devs = {&ftrvxmtrx},
18 .flags = Flib,
19 .cat = {Clib, Caudio},
20 },
21};
22
23Pkg zuke = {
24 .name = "zuke",
25 .ver = "20200328",
26 .src = {
27 .url = "github://ftrvxmtrx/zuke",
28 .rev = "334efc1",
29 .hash = "base58 here",
30 },
31 .inputs = {
32 .build = {&libtags},
33 },
34 .meta = {
35 .descr = "Music player",
36 .web = "http://ftrv.se/_/9",
37 .license = "public domain",
38 .devs = {&ftrvxmtrx},
39 .cat = {Caudio},
40 },
41};
p_network.c+20−0
@@ -0,0 +1,20 @@
1#include <u.h>
2#include "pkg.h"
3#include "devs.h"
4
5Pkg xmpp = {
6 .name = "xmpp",
7 .ver = "20200316",
8 .src = {
9 .url = "github://ftrvxmtrx/xmpp",
10 .rev = "cb2c30b",
11 .hash = "base58 here",
12 },
13 .meta = {
14 .descr = "XMPP client",
15 .web = "http://ftrv.se/_/9",
16 .license = "public domain",
17 .devs = {&ftrvxmtrx},
18 .cat = {Cnetwork},
19 },
20};
pkg.c+103−0
@@ -0,0 +1,103 @@
1#include <u.h>
2#include <libc.h>
3#include <thread.h>
4#include <libsec.h>
5#include "pkg.h"
6
7#define MAX(a,b) ((a)>=(b)?(a):(b))
8
9static int maxname;
10
11Pkg *pkgs[] = {
12 &fontsel,
13 &libtags,
14 &xmpp,
15 &zuke,
16};
17
18static void
19usage(void)
20{
21 print("usage: %s ...\n", argv0);
22 threadexitsall("usage");
23}
24
25static int
26pkgcmp(void *a_, void *b_)
27{
28 Pkg **a, **b;
29
30 a = a_;
31 b = b_;
32 maxname = MAX(maxname, MAX(strlen((*a)->name), strlen((*b)->name)));
33 return strcmp((*a)->name, (*b)->name);
34}
35
36static void
37pkginfo(Pkg *p, int v)
38{
39 int i;
40
41 if(p == nil)
42 return;
43
44 if(v){
45 print("name %s\n", p->name);
46 print("version %s\n", p->ver);
47 print("description %s\n", p->meta.descr);
48 print("web %s\n", p->meta.web);
49 print("license %s\n", p->meta.license);
50 if(p->meta.devs[0] != nil){
51 print("maintainers ");
52 for(i = 0; i < nelem(p->meta.devs) && p->meta.devs[i] != nil; i++)
53 print(" %s", p->meta.devs[i]->nick);
54 print("\n");
55 }
56 if(p->inputs.build[0] != nil || p->inputs.runtime[0] != nil){
57 print("dependencies ");
58 for(i = 0; i < nelem(p->inputs.build) && p->inputs.build[i] != nil; i++)
59 print(" %s", p->inputs.build[i]->name);
60 for(i = 0; i < nelem(p->inputs.build) && p->inputs.runtime[i] != nil; i++)
61 print(" %s", p->inputs.runtime[i]->name);
62 print("\n");
63 }
64 }else{
65 print("%-*s\t%s\n", maxname, p->name, p->meta.descr);
66 }
67}
68
69static Pkg *
70pkgfind(char *name)
71{
72 int i;
73
74 for(i = 0; i < nelem(pkgs); i++)
75 if(strcmp(pkgs[i]->name, name) == 0)
76 return pkgs[i];
77
78 return nil;
79}
80
81void
82threadmain(int argc, char **argv)
83{
84 int i;
85
86 ARGBEGIN{
87 }ARGEND
88
89 qsort(pkgs, nelem(pkgs), sizeof(*pkgs), pkgcmp);
90
91 if(argc < 1){
92 for(i = 0; i < nelem(pkgs); i++)
93 pkginfo(pkgs[i], 0);
94 goto done;
95 }else if(argc == 2 && strcmp(argv[0], "info") == 0){
96 pkginfo(pkgfind(argv[1]), 1);
97 }else{
98 usage();
99 }
100
101done:
102 threadexitsall(nil);
103}
pkg.h+48−0
@@ -0,0 +1,48 @@
1enum {
2 Flib = 1<<0,
3
4 Clib = 1,
5 Caudio,
6 Cgraphics,
7 Cnetwork,
8 Cnum,
9};
10
11typedef struct Dev Dev;
12typedef struct Meta Meta;
13typedef struct Pkg Pkg;
14
15struct Dev {
16 char *nick;
17 char *name;
18 char *email;
19};
20
21struct Meta {
22 char *descr;
23 char *web;
24 char *license;
25 Dev *devs[4];
26 int flags;
27 int cat[Cnum];
28};
29
30struct Pkg {
31 char *name;
32 char *ver;
33 struct {
34 char *url;
35 char *rev;
36 char *hash;
37 }src;
38 struct {
39 Pkg *build[4];
40 Pkg *runtime[4];
41 }inputs;
42 Meta meta;
43};
44
45extern Pkg fontsel;
46extern Pkg libtags;
47extern Pkg xmpp;
48extern Pkg zuke;
pkg.man+0−0

Empty file added.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t