Page MenuHomeSoftware Heritage
Paste P115

ctags schema + output sample
ActivePublic

Authored by ardumont on Oct 20 2016, 9:33 AM.
# schema
-- SWH DB schema upgrade
-- from_version: 88
-- to_version: 89
-- description: indexer: Add content_ctags
insert into dbversion(version, release, description)
values(89, now(), 'Work In Progress');
-- ctags metadata
create table content_ctags (
id sha1 primary key references content(sha1) not null,
ctags jsonb
);
comment on table content_ctags is 'Ctags information on a raw content';
comment on column content_ctags.ctags is 'Ctags information';
-- add tmp_content_ctags entries to content_ctags, overwriting
-- duplicates if conflict_update is true, skipping duplicates otherwise.
--
-- If filtering duplicates is in order, the call to
-- swh_ctags_missing must take place before calling this function.
--
--
-- operates in bulk: 0. swh_mktemp(content_ctags), 1. COPY to tmp_content_ctags,
-- 2. call this function
create or replace function swh_content_ctags_add(conflict_update boolean)
returns void
language plpgsql
as $$
begin
if conflict_update then
insert into content_ctags (id, ctags)
select id, ctags
from tmp_content_ctags
on conflict(id)
do update set ctags = excluded.ctags;
else
insert into content_ctags (id, ctags)
select id, ctags
from tmp_content_ctags
on conflict do nothing;
end if;
return;
end
$$;
comment on function swh_content_ctags_add(boolean) IS 'Add new ctags symbols per content';
-- check which entries of tmp_bytea are missing from content_ctags
--
-- operates in bulk: 0. swh_mktemp_bytea(), 1. COPY to tmp_bytea,
-- 2. call this function
create or replace function swh_content_ctags_missing()
returns setof sha1
language plpgsql
as $$
begin
return query
(select id::sha1 from tmp_bytea as tmp
where not exists
(select 1 from content_ctags as c where c.id = tmp.id));
return;
end
$$;
comment on function swh_content_ctags_missing() IS 'Filter missing content ctags';
-- Retrieve list of content ctags from the temporary table.
--
-- operates in bulk: 0. mktemp(tmp_bytea), 1. COPY to tmp_bytea, 2. call this function
create or replace function swh_content_ctags_get()
returns setof content_ctags
language plpgsql
as $$
begin
return query
select id::sha1, ctags
from tmp_bytea t
inner join content_ctags using(id);
return;
end
$$;
comment on function swh_content_ctags_get() IS 'List content ctags';
# sample output
 tony  ⋯  repo  swh  swh-environment  TMP=$(mktemp -d); cd $TMP; pigz -dc /srv/swh/objects/e3464/e3464269ecc70c77699e5d6177806297e5310cd5 > e3464269ecc70c77699e5d6177806297e5310cd5    master 
 tony  /  tmp  tmp.FUGVIXvXH7  /usr/local/bin/ctags --fields=+lnz --sort=no --links=no --output-format=json --language-force=Make e3464269ecc70c77699e5d6177806297e5310cd5
{"_type": "tag", "name": "SHELL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 14, "kind": "macro"}
{"_type": "tag", "name": "srcdir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 16, "kind": "macro"}
{"_type": "tag", "name": "top_srcdir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 17, "kind": "macro"}
{"_type": "tag", "name": "VPATH", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 18, "kind": "macro"}
{"_type": "tag", "name": "prefix", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 19, "kind": "macro"}
{"_type": "tag", "name": "exec_prefix", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 20, "kind": "macro"}
{"_type": "tag", "name": "bindir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 22, "kind": "macro"}
{"_type": "tag", "name": "sbindir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 23, "kind": "macro"}
{"_type": "tag", "name": "libexecdir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 24, "kind": "macro"}
{"_type": "tag", "name": "datadir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 25, "kind": "macro"}
{"_type": "tag", "name": "sysconfdir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 26, "kind": "macro"}
{"_type": "tag", "name": "sharedstatedir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 27, "kind": "macro"}
{"_type": "tag", "name": "localstatedir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 28, "kind": "macro"}
{"_type": "tag", "name": "libdir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 29, "kind": "macro"}
{"_type": "tag", "name": "infodir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 30, "kind": "macro"}
{"_type": "tag", "name": "mandir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 31, "kind": "macro"}
{"_type": "tag", "name": "includedir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 32, "kind": "macro"}
{"_type": "tag", "name": "oldincludedir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 33, "kind": "macro"}
{"_type": "tag", "name": "DESTDIR", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 35, "kind": "macro"}
{"_type": "tag", "name": "pkgdatadir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 37, "kind": "macro"}
{"_type": "tag", "name": "pkglibdir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 38, "kind": "macro"}
{"_type": "tag", "name": "pkgincludedir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 39, "kind": "macro"}
{"_type": "tag", "name": "top_builddir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 41, "kind": "macro"}
{"_type": "tag", "name": "ACLOCAL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 43, "kind": "macro"}
{"_type": "tag", "name": "AUTOCONF", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 44, "kind": "macro"}
{"_type": "tag", "name": "AUTOMAKE", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 45, "kind": "macro"}
{"_type": "tag", "name": "AUTOHEADER", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 46, "kind": "macro"}
{"_type": "tag", "name": "INSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 48, "kind": "macro"}
{"_type": "tag", "name": "INSTALL_PROGRAM", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 49, "kind": "macro"}
{"_type": "tag", "name": "INSTALL_DATA", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 50, "kind": "macro"}
{"_type": "tag", "name": "INSTALL_SCRIPT", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 51, "kind": "macro"}
{"_type": "tag", "name": "INSTALL_STRIP_FLAG", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 52, "kind": "macro"}
{"_type": "tag", "name": "transform", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 53, "kind": "macro"}
{"_type": "tag", "name": "NORMAL_INSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 55, "kind": "macro"}
{"_type": "tag", "name": "NORMAL_INSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 55, "kind": "target"}
{"_type": "tag", "name": "PRE_INSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 56, "kind": "macro"}
{"_type": "tag", "name": "PRE_INSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 56, "kind": "target"}
{"_type": "tag", "name": "POST_INSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 57, "kind": "macro"}
{"_type": "tag", "name": "POST_INSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 57, "kind": "target"}
{"_type": "tag", "name": "NORMAL_UNINSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 58, "kind": "macro"}
{"_type": "tag", "name": "NORMAL_UNINSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 58, "kind": "target"}
{"_type": "tag", "name": "PRE_UNINSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 59, "kind": "macro"}
{"_type": "tag", "name": "PRE_UNINSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 59, "kind": "target"}
{"_type": "tag", "name": "POST_UNINSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 60, "kind": "macro"}
{"_type": "tag", "name": "POST_UNINSTALL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 60, "kind": "target"}
{"_type": "tag", "name": "host_alias", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 61, "kind": "macro"}
{"_type": "tag", "name": "host_triplet", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 62, "kind": "macro"}
{"_type": "tag", "name": "APACHE", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 63, "kind": "macro"}
{"_type": "tag", "name": "APACHE_MODULES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 64, "kind": "macro"}
{"_type": "tag", "name": "AS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 65, "kind": "macro"}
{"_type": "tag", "name": "CC", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 66, "kind": "macro"}
{"_type": "tag", "name": "CXX", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 67, "kind": "macro"}
{"_type": "tag", "name": "CXXCPP", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 68, "kind": "macro"}
{"_type": "tag", "name": "DLLTOOL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 69, "kind": "macro"}
{"_type": "tag", "name": "LD", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 70, "kind": "macro"}
{"_type": "tag", "name": "LEX", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 71, "kind": "macro"}
{"_type": "tag", "name": "LIBLTDL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 72, "kind": "macro"}
{"_type": "tag", "name": "LIBTOOL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 73, "kind": "macro"}
{"_type": "tag", "name": "LN_S", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 74, "kind": "macro"}
{"_type": "tag", "name": "MAINT", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 75, "kind": "macro"}
{"_type": "tag", "name": "MAKEINFO", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 76, "kind": "macro"}
{"_type": "tag", "name": "MIFLUZ", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 77, "kind": "macro"}
{"_type": "tag", "name": "MYSQL_HOME", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 78, "kind": "macro"}
{"_type": "tag", "name": "NM", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 79, "kind": "macro"}
{"_type": "tag", "name": "OBJDUMP", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 80, "kind": "macro"}
{"_type": "tag", "name": "PACKAGE", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 81, "kind": "macro"}
{"_type": "tag", "name": "PERL", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 82, "kind": "macro"}
{"_type": "tag", "name": "RANLIB", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 83, "kind": "macro"}
{"_type": "tag", "name": "TCONFIG", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 84, "kind": "macro"}
{"_type": "tag", "name": "URI_HOME", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 85, "kind": "macro"}
{"_type": "tag", "name": "USER", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 86, "kind": "macro"}
{"_type": "tag", "name": "VERSION", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 87, "kind": "macro"}
{"_type": "tag", "name": "WEBBASEDIRS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 88, "kind": "macro"}
{"_type": "tag", "name": "WEBBASE_MAJOR_VERSION", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 89, "kind": "macro"}
{"_type": "tag", "name": "WEBBASE_MICRO_VERSION", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 90, "kind": "macro"}
{"_type": "tag", "name": "WEBBASE_MINOR_VERSION", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 91, "kind": "macro"}
{"_type": "tag", "name": "INCLUDES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 93, "kind": "macro"}
{"_type": "tag", "name": "THE_LIBS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 94, "kind": "macro"}
{"_type": "tag", "name": "bin_PROGRAMS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 95, "kind": "macro"}
{"_type": "tag", "name": "crawler_SOURCES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 97, "kind": "macro"}
{"_type": "tag", "name": "crawler_LDFLAGS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 98, "kind": "macro"}
{"_type": "tag", "name": "crawler_LDADD", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 99, "kind": "macro"}
{"_type": "tag", "name": "crawler_DEPENDENCIES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 100, "kind": "macro"}
{"_type": "tag", "name": "consistentc_SOURCES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 102, "kind": "macro"}
{"_type": "tag", "name": "consistentc_LDFLAGS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 103, "kind": "macro"}
{"_type": "tag", "name": "consistentc_LDADD", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 104, "kind": "macro"}
{"_type": "tag", "name": "consistentc_DEPENDENCIES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 105, "kind": "macro"}
{"_type": "tag", "name": "dumpdata_SOURCES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 107, "kind": "macro"}
{"_type": "tag", "name": "dumpdata_LDFLAGS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 108, "kind": "macro"}
{"_type": "tag", "name": "dumpdata_LDADD", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 109, "kind": "macro"}
{"_type": "tag", "name": "dumpdata_DEPENDENCIES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 110, "kind": "macro"}
{"_type": "tag", "name": "furi2md5_SOURCES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 112, "kind": "macro"}
{"_type": "tag", "name": "furi2md5_LDFLAGS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 113, "kind": "macro"}
{"_type": "tag", "name": "furi2md5_LDADD", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 114, "kind": "macro"}
{"_type": "tag", "name": "furi2md5_DEPENDENCIES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 115, "kind": "macro"}
{"_type": "tag", "name": "html2text_SOURCES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 117, "kind": "macro"}
{"_type": "tag", "name": "html2text_LDFLAGS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 118, "kind": "macro"}
{"_type": "tag", "name": "html2text_LDADD", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 119, "kind": "macro"}
{"_type": "tag", "name": "html2text_DEPENDENCIES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 120, "kind": "macro"}
{"_type": "tag", "name": "mkinstalldirs", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 121, "kind": "macro"}
{"_type": "tag", "name": "CONFIG_HEADER", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 122, "kind": "macro"}
{"_type": "tag", "name": "CONFIG_CLEAN_FILES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 123, "kind": "macro"}
{"_type": "tag", "name": "PROGRAMS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 124, "kind": "macro"}
{"_type": "tag", "name": "DEFS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 127, "kind": "macro"}
{"_type": "tag", "name": "CPPFLAGS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 128, "kind": "macro"}
{"_type": "tag", "name": "LDFLAGS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 129, "kind": "macro"}
{"_type": "tag", "name": "LIBS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 130, "kind": "macro"}
{"_type": "tag", "name": "crawler_OBJECTS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 131, "kind": "macro"}
{"_type": "tag", "name": "consistentc_OBJECTS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 132, "kind": "macro"}
{"_type": "tag", "name": "dumpdata_OBJECTS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 133, "kind": "macro"}
{"_type": "tag", "name": "html2text_OBJECTS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 134, "kind": "macro"}
{"_type": "tag", "name": "furi2md5_OBJECTS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 135, "kind": "macro"}
{"_type": "tag", "name": "CFLAGS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 136, "kind": "macro"}
{"_type": "tag", "name": "COMPILE", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 137, "kind": "macro"}
{"_type": "tag", "name": "LTCOMPILE", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 138, "kind": "macro"}
{"_type": "tag", "name": "CCLD", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 139, "kind": "macro"}
{"_type": "tag", "name": "LINK", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 140, "kind": "macro"}
{"_type": "tag", "name": "DIST_COMMON", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 141, "kind": "macro"}
{"_type": "tag", "name": "DISTFILES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 144, "kind": "macro"}
{"_type": "tag", "name": "TAR", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 146, "kind": "macro"}
{"_type": "tag", "name": "GZIP_ENV", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 147, "kind": "macro"}
{"_type": "tag", "name": "SOURCES", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 148, "kind": "macro"}
{"_type": "tag", "name": "OBJECTS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 149, "kind": "macro"}
{"_type": "tag", "name": "all", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 151, "kind": "target"}
{"_type": "tag", "name": "$(srcdir)/Makefile.in", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 154, "kind": "target"}
{"_type": "tag", "name": "Makefile", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 157, "kind": "target"}
{"_type": "tag", "name": "mostlyclean-binPROGRAMS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 162, "kind": "target"}
{"_type": "tag", "name": "clean-binPROGRAMS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 164, "kind": "target"}
{"_type": "tag", "name": "distclean-binPROGRAMS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 167, "kind": "target"}
{"_type": "tag", "name": "maintainer-clean-binPROGRAMS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 169, "kind": "target"}
{"_type": "tag", "name": "install-binPROGRAMS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 171, "kind": "target"}
{"_type": "tag", "name": "uninstall-binPROGRAMS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 181, "kind": "target"}
{"_type": "tag", "name": ".c.o", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 187, "kind": "target"}
{"_type": "tag", "name": ".s.o", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 190, "kind": "target"}
{"_type": "tag", "name": ".S.o", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 193, "kind": "target"}
{"_type": "tag", "name": "mostlyclean-compile", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 196, "kind": "target"}
{"_type": "tag", "name": "clean-compile", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 199, "kind": "target"}
{"_type": "tag", "name": "distclean-compile", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 201, "kind": "target"}
{"_type": "tag", "name": "maintainer-clean-compile", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 204, "kind": "target"}
{"_type": "tag", "name": ".c.lo", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 206, "kind": "target"}
{"_type": "tag", "name": ".s.lo", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 209, "kind": "target"}
{"_type": "tag", "name": ".S.lo", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 212, "kind": "target"}
{"_type": "tag", "name": "mostlyclean-libtool", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 215, "kind": "target"}
{"_type": "tag", "name": "clean-libtool", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 218, "kind": "target"}
{"_type": "tag", "name": "distclean-libtool", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 221, "kind": "target"}
{"_type": "tag", "name": "maintainer-clean-libtool", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 223, "kind": "target"}
{"_type": "tag", "name": "crawler", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 225, "kind": "target"}
{"_type": "tag", "name": "consistentc", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 229, "kind": "target"}
{"_type": "tag", "name": "dumpdata", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 233, "kind": "target"}
{"_type": "tag", "name": "html2text", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 237, "kind": "target"}
{"_type": "tag", "name": "furi2md5", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 241, "kind": "target"}
{"_type": "tag", "name": "tags", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 245, "kind": "target"}
{"_type": "tag", "name": "ID", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 247, "kind": "target"}
{"_type": "tag", "name": "TAGS", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 255, "kind": "target"}
{"_type": "tag", "name": "mostlyclean-tags", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 265, "kind": "target"}
{"_type": "tag", "name": "clean-tags", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 267, "kind": "target"}
{"_type": "tag", "name": "distclean-tags", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 269, "kind": "target"}
{"_type": "tag", "name": "maintainer-clean-tags", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 272, "kind": "target"}
{"_type": "tag", "name": "distdir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 274, "kind": "macro"}
{"_type": "tag", "name": "subdir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 276, "kind": "macro"}
{"_type": "tag", "name": "distdir", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 278, "kind": "target"}
{"_type": "tag", "name": "info-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 290, "kind": "target"}
{"_type": "tag", "name": "info", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 291, "kind": "target"}
{"_type": "tag", "name": "dvi-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 292, "kind": "target"}
{"_type": "tag", "name": "dvi", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 293, "kind": "target"}
{"_type": "tag", "name": "check-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 294, "kind": "target"}
{"_type": "tag", "name": "check", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 295, "kind": "target"}
{"_type": "tag", "name": "installcheck-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 296, "kind": "target"}
{"_type": "tag", "name": "installcheck", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 297, "kind": "target"}
{"_type": "tag", "name": "install-exec-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 298, "kind": "target"}
{"_type": "tag", "name": "install-exec", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 299, "kind": "target"}
{"_type": "tag", "name": "install-data-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 301, "kind": "target"}
{"_type": "tag", "name": "install-data", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 302, "kind": "target"}
{"_type": "tag", "name": "install-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 304, "kind": "target"}
{"_type": "tag", "name": "install", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 306, "kind": "target"}
{"_type": "tag", "name": "uninstall-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 307, "kind": "target"}
{"_type": "tag", "name": "uninstall", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 308, "kind": "target"}
{"_type": "tag", "name": "all-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 309, "kind": "target"}
{"_type": "tag", "name": "all-redirect", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 310, "kind": "target"}
{"_type": "tag", "name": "install-strip", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 311, "kind": "target"}
{"_type": "tag", "name": "installdirs", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 313, "kind": "target"}
{"_type": "tag", "name": "mostlyclean-generic", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 317, "kind": "target"}
{"_type": "tag", "name": "clean-generic", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 319, "kind": "target"}
{"_type": "tag", "name": "distclean-generic", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 321, "kind": "target"}
{"_type": "tag", "name": "maintainer-clean-generic", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 325, "kind": "target"}
{"_type": "tag", "name": "mostlyclean-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 326, "kind": "target"}
{"_type": "tag", "name": "mostlyclean", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 330, "kind": "target"}
{"_type": "tag", "name": "clean-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 332, "kind": "target"}
{"_type": "tag", "name": "clean", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 335, "kind": "target"}
{"_type": "tag", "name": "distclean-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 337, "kind": "target"}
{"_type": "tag", "name": "distclean", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 341, "kind": "target"}
{"_type": "tag", "name": "maintainer-clean-am", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 343, "kind": "target"}
{"_type": "tag", "name": "maintainer-clean", "path": "e3464269ecc70c77699e5d6177806297e5310cd5", "pattern": "", "language": "Make", "line": 350, "kind": "target"}
#
```
 tony  ~  TMP=$(mktemp -d); cp -v Downloads/fo*py $TMP; cd $TMP
'Downloads/foo-iso8859-15.py' -> '/tmp/tmp.bziat4VBO9/foo-iso8859-15.py'
'Downloads/foo-utf8.py' -> '/tmp/tmp.bziat4VBO9/foo-utf8.py'
 tony  /  tmp  tmp.bziat4VBO9  ls
foo-iso8859-15.py foo-utf8.py
 tony  /  tmp  tmp.bziat4VBO9  file --mime foo-iso8859-15.py
foo-iso8859-15.py: text/x-python; charset=iso-8859-1
 tony  /  tmp  tmp.bziat4VBO9  file --mime foo-utf8.py
foo-utf8.py: text/x-python; charset=utf-8
 tony  /  tmp  tmp.bziat4VBO9  /usr/local/bin/ctags --fields=+lnz --sort=no --links=no --output-format=json --language-force=Python foo-iso8859-15.py
(null)
 tony  /  tmp  tmp.bziat4VBO9  /usr/local/bin/ctags --fields=+lnz --sort=no --links=no --output-format=json --language-force=Python foo-utf8.py
{"_type": "tag", "name": "üñîçóÐè", "path": "foo-utf8.py", "pattern": "/^üñîçóÐè = 'åèíôü'$/", "language": "Python", "line": 6, "kind": "variable"}
 tony  /  tmp  tmp.bziat4VBO9  /usr/local/bin/ctags --fields=+lnz --sort=no --links=no foo-iso8859-15.py  tony  /  tmp  tmp.bziat4VBO9  /usr/bin/ctags --fields=+lnz --sort=no --links=no foo-iso8859-15.py
 tony  /  tmp  tmp.bziat4VBO9  
# recompiling universal-ctags with --enable-iconv to have --input-encoding flag
 tony  /  tmp  tmp.bziat4VBO9  /usr/local/bin/ctags --fields=+lnz --sort=no --links=no --input-encoding=ISO8859-15 foo-iso8859-15.py
tony  /  tmp  tmp.bziat4VBO9 
```
Note:
- /usr/local/bin/ctags is universal-ctags
- /usr/bin/ctags is exuberant-ctags

Event Timeline

ardumont changed the title of this paste from ctags output sample to ctags schema + output sample.