La Main Rouge

Ce matin, en revenant de l’école, je me suis arrêté chez le marchand de journaux, histoire de voir s’il n’avait pas reçu des nouveautés dans le présentoir planqué dans un recoin de sa boutique où il mélange allègrement la presse d’opinion de gauche et d’extrême droite. Surprise, le présentoir ne contenait que le Figaro et Libé. Le buraliste m’a expliqué qu’un agent de police était passé un peu plus tôt. Il était tombé sur une Une sarcastique qui lui avait déplu, et avait décidé de confisquer tous les journaux et de les remplacer par d’autres titres.

Troublé, je suis entré dans la librairie voisine où je trouve parfois quelques revues. J’avais à peine évoqué l’incident avec la libraire qu’elle me montrait, attristée, les rayonnages où elle se faisait un point d’honneur de toujours proposer les grands noms de l’écologie politique : Dumont, Gorz, Illich… À ma grande surprise, toutes les étagères ne présentaient plus que la couverture d’une unique revue, l’Information agricole. Un représentant de la FNSEA était passé la veille faire du ménage, il avait confisqué certains ouvrages et les avait remplacés par la revue de son organisation. La libraire n’avait rien pu dire, c’était la Loi. Elle m’expliqua qu’en 2014, une loi avait été votée qui permettait à la police d’empêcher l’accès aux sites Web dont elle estimait que le contenu pouvait troubler l’Ordre. Le texte était entré en application début 2015 et rapidement, plusieurs sites avaient étaient bloqués. Les internautes qui essayaient d’y accéder étaient redirigés vers le Ministère de l’intérieur où on leur expliquait le danger du site, et les interrogeait sur les raisons qui les avaient poussés à vouloir le consulter.

La procédure était si simple qu’elle eut rapidement beaucoup de succès. Rapide, efficace, ce blocage des contenus dangereux fut étendu dans les mois suivants. Aux sites critiquant les Élites de la nation. À ceux défendant l’anorexie. À ceux diffusant des informations susceptibles de nuire à la Compétitivité de l’Économie Nationale. La liste des contenus dont la police pouvait ainsi interdire l’accès sans la lourdeur d’une procédure contradictoire devant un juge comporta rapidement plusieurs centaines de cas. Mais, parallèlement, on s’avisa que quelques technophobes, rétifs à l’usage d’Internet, s’informaient encore en lisant des livres et des journaux en papier. Et qu’il serait sans doute utile d’étendre le blocage aux kiosques à journaux, aux librairies et aux bibliothèques. Les syndicats de fonctionnaire de police protestèrent. S’ils ne contestaient pas l’utilité de la démarche, ils demandaient plus d’effectifs pour pouvoir faire quotidiennement la traque aux contenus licencieux chez les distributeurs de papiers. En cette période d’austérité où l’embauche de fonctionnaires n’était pas à l’ordre du jour, le gouvernement hésitait.

Il fut heureusement une nouvelle fois tiré d’affaire par une association citoyenne, la Manif pour tous. Celle-ci avait acquis depuis des mois une expérience en contrôle de la moralité des bibliothèques. Elle disposait d’un efficace réseau de retraités qui épluchaient le contenu des bibliothèques et en faisait retirer tous les ouvrages qui participaient au Déclin de la France en prétendant que l’identité était une construction sociale et non un don du Bon Dieu. Ravi, le gouvernement sauta sur l’occasion et adouba les forces vives de la nation, associations citoyennes comme LMPT ou syndicats d’entrepreneurs comme le MEDEF et la FNSEA : elles pourraient désormais assister la Police Nationale dans sa Mission de choix des contenus que les citoyens ont le droit de consulter. En quelques mois, la nouvelle législation était en place, sans la moindre résistance et à la satisfaction unanime du peuple : après tout, ne s’agissait-il pas de défendre Notre Liberté contre la Barbarie ?

Tout ceci n’est bien entendu qu’une complète fiction, issue de mes délires paranoïaques. Depuis quelques heures, la police a bloqué l’accès à un site, avant que moindre juge se soit prononcé sur le contenu de ce site. Mais nous sommes en démocratie, et ce précédent n’ouvre en rien la voie à quelques dérives liberticides.

Acthésis : prothèse pour activités Web

Mozilla travaille d’arrache-pied pour faire du Web une plate-forme applicative de premier plan, c’est à dire pour permettre aux applications développées avec les technologies du Web et s’exécutant dans les navigateurs d’être aussi puissantes que les applications « natives ». À cet effet, Mozilla enrichit fréquemment la plateforme de nouvelles APIs, offrant des fonctionnalités avancées aux applications Web. Avec l’arrivée de Firefox OS et la volonté de transformer le navigateur en système d’exploitation complet, le nombre de nouvelles APIs a cru rapidement.

Malheureusement, la standardisation n’avance pas aussi rapidement que la technique, et la plupart des APIs créées pour Firefox OS n’ont pas encore été approuvées comme des standards, et ne sont implémentées par aucun autre navigateur. La plupart ne sont même disponibles que pour Firefox OS, et non dans Firefox. Ce qui pose un problème : les applications Web qui les utilisent ne peuvent fonctionner que sur Firefox OS. Ce sont donc pour l’instant non de vrais applications Web, avec ce que ça implique d’universalité, mais des applications spécifiques à Firefox OS, utilisant des technologies Web.

Cette situation n’est pas nouvelle, car c’est souvent ainsi qu’avance le Web : un navigateur implémente une fonctionnalité, elle est ensuite standardisée et implémentée par les autres navigateurs. Et comme le Web est une plateforme géniale, il dispose d’une technique permettant souvent de pallier les problèmes de compatibilité le temps qu’une technologie soit disponible dans tous les navigateurs : les prothèses, ou polyfill. Ce sont des bouts de code qui implémentent une nouvelle fonctionnalité en utilisant celles existantes.

Pour permettre aux nouvelles APIs proposées par Mozilla d’être utilisées partout, nous devons donc créer des prothèses qui les rendent disponibles dans les autres navigateurs. C’est ce à quoi je me suis modestement attelé avec une bibliothèque, Acthesis, qui essaie de rendre utilisable dans tous les navigateurs l’API Web Activity. Celle-ci permet à une application de déléguer certaines activités à une autre application. Chaque applications peut ainsi se concentrer sur une tâche et interagir avec d’autres pour tout ce qui n’est pas son cœur de métier. Par exemple, votre application de courrier électronique pourra communiquer via Web Activity avec celles qui gérent votre carnet d’adresses, vos fichiers, votre agenda…

Les programmes qui prennent en charge une activité l’indiquent à un registre central. Une application souhaitant déléguer une activité interroge ce registre, qui répond avec la liste des prestataires disponibles. L’utilisateur choisit un de ces prestataires, qui est alors lancé, et une réponse est éventuellement envoyée à l’application initiale. Dans le cas de Firefox OS, le registre central jouant l’intermédiaire entre les applications est l’OS lui-même. Pour ma prothèse, j’ai choisi de passer par un serveur Web. C’est la solution la plus portable, mais elle présente quelques inconvénients (en particulier elle ne fonctionne pas lorsque le navigateur est hors ligne). Une alternative serait de proposer la prothèse sous forme d’extension pour les navigateurs.

L’utilisation d’Acthésis implique donc de disposer d’un serveur et de configurer toutes les applications pour l’utiliser (WebFinger pourrait probablement être ici de quelqu’aide) Par ailleurs, je ne gère pour l’instant pas de notions de droits d’accès, donc le serveur doit être personnel.

Acthésis est avant tout une démonstration pour valider la possibilité de créer de créer des prothèses pour certaines des APIs développées par Mozilla pour Firefox OS. Je pense que le jeu en vaut la chandelle, mais j’attend à présent des retours.

Accessoirement, j’utilise aussi cette bibliothèque pour des démonstrations (tout ce que je sais faire) de communication entre les applications de Cozy Cloud. J’ai dans mes tiroirs un prototype fonctionnel de communication entre la messagerie et le gestionnaire des fichiers. Il permet d’attacher à un nouveau message des fichiers stockés dans dans son nuage personnel, et d’enregistrer dans son nuage les pièces jointes des messages reçus. Le gestionnaire de fichiers étant, grâce à ce module complémentaire, capable de recevoir et partager des fichiers via des Web Activities, toute autre application externe à Cozy peut utiliser ce mécanisme pour accéder à un de mes fichiers stockés dans le nuage.

À titre expérimental, j’ai commencé à implémenter d’autres APIs dans Acthésis : - MozAlarms permet de créer des alarmes qui lanceront une application et lui feront exécuter une tâche. Par exemple, une application de lecture de flux RSS pourra être réveillée toutes les heures pour récupérer les nouveaux articles parus dans les flux, les enregistrer, puis se rendormir ; - Simple Push permet d’envoyer à une application des informations sans qu’elle les ait demandées.

Ces deux APIs posent cependant un problème : la prothèse ne peut fonctionner que si l’application est déjà ouverte dans un onglet du navigateur. Pour résoudre ce souci, il faudrait soit avoir une application toujours ouverte qui jouerait un rôle d’intermédiaire et ouvrirait à la demande les autres applications dans de nouvelles fenêtres, soit implémenter la prothèse sous la forme d’une extension pour les navigateurs. Une solution moins portable et moins universelle, mais qui rendrait la prothèse plus proche des fonctionnalités émulées.

Voilà. Quelqu’un a un avis ?

Charlie

« J’essaie de me rassurer en me disant que lesgens pleurent davantage l’assassinat d’une partie de leur enfance (RécréA2) qu’un torchon réac ». J’espérais me débarrasser de mon malaise en 140 caractère et pouvoir retourner à mon code, mais comme je vois que tout le monde a retrouvé aujourd’hui le mode d’emploi de son carnet, je m’en voudrais de ne pas apporter ma voix à la cacophonie.

Les histoires d’A…

J’ai commencé à acheter Charlie Hebdo et le Canard Enchainé un mercredi matin au printemps 1994. Une élection approchant, j’avais décidé de m’intéresser un peu à la politique. Je n’ai plus la moindre idée de pourquoi mon choix s’est porté sur ces deux titres. Je leur ai de ce jour été fidèle tous les mercredis pendant des années.

J’ai acheté Charlie pour la dernière fois le 17 janvier 2001, date du mythique éditorial de Philippe Val décrivant les internautes comme « des tarés, des maniaques, des fanatiques, des mégalomanes, des paranoïaques, des nazis, des délateurs, qui trouvent là un moyen de diffuser mondialement leurs délires, leurs haines, ou leurs obsessions ».

Entre les deux… Charlie a très largement contribué à l’éclosion de ma conscience politique. Je suis à peu près sûr que c’est grâce à lui que j’ai découvert les contacts qui m’ont mis sur la voie d’une grosse décennie de militantisme politique. Une vraie histoire d’amour qui s’est mal finie. À mesure que je me formais une conscience, les leçons serinées par Val à longueur d’édito me paraissaient de plus en plus pesantes. Il y eut son soutien à l’OTAN pendant la guerre du Kosovo. Son lâchage dégueulasse de Patrick Font (quels que soient les crimes que celui-ci ait commis). D’autres trucs que j’ai oubliés. Et bien sûr son aversion pour le Net alors que la blogosphère vivait son âge d’or.

Un amour déçu, donc, par la faute d’un individu (je sais que toute le rédaction était loin de partager ses opinions, mais c’est lui qui tenait la barre et emmenait le navire vers des eaux qui ne m’intéressaient plus)

Ma relation à Charlie Hebdo est donc chargée d’émotion. Un amour de jeunesse qui m’a beaucoup déçu et auquel j’en veux, mais pour lequel je garde une vague affection en souvenir du bon vieux temps. Affection aussi pour quelques-un de ses piliers. Luz, heureusement réchappé du carnage, que j’avais croisé une fois ou l’autre à l’époque. Cabu surtout. Pas celui de Dorothée (je me suis toujours demandé ce qu’il foutait là), mais celui de Pilote et de Droit de réponse (souvenirs inventés, je ne suis quant même pas assez vieux pour avoir connu ça à l’époque, mais l’ai découvert et adoré bien plus tard), Cabu du Grand Duduche, Cabu dont, hormis le nouveau beauf, les dessins dans le Canard étaient toujours aussi frais… La mort de Cabu m’a fait beaucoup de peine.

Voilà pourquoi, malgré ce qui suit, le massacre de la rédaction de Charlie m’a bouleversé.

Je ne suis pas Charlie

L’humour, comme toute forme d’expression, est, ou peut être, politique. Humour de résistance sous une dictature, humour contribuant à la cohésion d’un groupe en moquant ceux qui n’en font pas partie. L’humour peut aussi être un instrument au service de l’oppression, une forme « douce », insidieuse, de l’oppression. Une blague misogyne, ça peut être drôle. Des blagues misogynes en continu, à longueur de journée, c’est un moyen, pas forcément conscient, d’entretenir l’ordre patriarcal, de rappeler aux femmes, aux homosexuels, aux arabes… qui a le monopole de la violence symbolique. Je suis donc en désaccord avec Luz quand, dans un récent entretient, il minimise la responsabilité des gribouilleurs de petits mickeys. Les humoristes ont pour moi une responsabilité dans le façonnage de l’opinion publique. Ils peuvent choisir de contribuer à consolider l’ordre symbolique, ou à le dynamiter. Le Charlie des années soixante-dix était probablement un dynamiteur. Le Charlie de 2014 contribue, de mon point de vue, à renforcer certaines discriminations.

Je suis anticlérical pratiquant. Je n’aime aucune religion, et combat leurs prosélytes. Mais si, dans l’absolu, je range toutes les religions dans la même poubelle, dans la pratique je fais quelques différences entre leurs adeptes. Non en me basant sur une analyse des textes, mais plutôt sur le contexte historique et politique. Le monde est dominé par l’« occident » dont le christianisme est la religion officielle. Avec beaucoup de nuances, mais globalement le christianisme est dans notre société la religion des dominants, des oppresseurs. Cette influence est sans doute en perte de vitesse en France, mais elle a tellement modelé notre société qu’elle ne peut être niée. Dans ce contexte, quelle que soit l’aversion que j’ai pour l’Islam, je ne peux faire abstraction que c’est la religion d’une partie de la population qui est encore aujourd’hui opprimée, et qu’en tant que telle, elle est pour ces gens une forme de résistance. S’ils préfèrent revendiquer une identité religieuse plutôt qu’une identité de classe, s’ils préfèrent s’en remettre à l’Islam plutôt qu’au Communisme, c’est en partie de notre faute, nous les militants de Gauche, qui n’arrivons plus à créer de l’espoir en une transformation de ce monde-ci pour en faire un truc un peu plus juste.

Aussi, je pense que si, dans l’absolu, l’Islam doit être la cible de nos attaques tout autant que le Christianisme, dans la pratique et compte tenu du contexte, un acharnement dans la satire des musulmans contribue au maintien des discriminations dont sont victimes nombre d’entre eux en france, non parce qu’ils sont musulmans, mais parce qu’ils ont de lointaines origines extra-européennes. Car c’est l’autre point. L’extrême droite a depuis fort longtemps troqué ses discours racistes pour des tirades contre l’Islam. La cible est toujours la même, et peu de gens sont dupes, mais cette mutation sémantique a contribué à un renouveau du racisme, sous les oripeaux de l’islamophobie. Critiquer l’Islam est donc devenu aujourd’hui extrêmement casse-gueule, tant le risque est grand de contribuer à renforcer le racisme ou les discriminations. Ça ne signifie pas qu’il faut s’abstenir de toute critique. Mais qu’il faut le faire en essayant de ne pas apporter des grains à moudre au moulin des fachos.

J’estime que Charlie a mal négocié ce virage. Peut-être par refus d’accorder une valeur politique au message véhiculé par le journal. Peut-être se sont-ils fait piéger par la publication des caricatures de 2007, et se sont sentis obligés de faire toujours plus fort pour ne pas être accusés de reculer. Je ne sais pas. Mais je sais que pour moi le Charlie de 2014 ne cherche plus à bousculer le désordre établi, mais bien plutôt à le renforcer. Et pour cette raison, je ne suis pas Charlie.

Malaise et beaucoup de questions

De cette analyse de ce qu’était Charlie découle mon malaise face au slogan « je suis Charlie ». Les gens qui l’affichent connaissent-ils et adhèrent-ils à la ligne éditoriale réactionnaire du journal ? Ou à un journal fantasmé, jamais lu mais faisant partie de la culture générale commune ? Et si c’est le cas, quelle est la tronche du fantasme ? L’héritier de Hara Kiri (que, soit dit en passant, pas grand monde ne doit connaitre de première main) ? Le défenseur auto-proclamé de la Liberté de la Presse qui a publié les caricatures ? Les mots ont un sens. Exprimer sa compassion aux proches des victimes, défendre la liberté d’expression, ce n’est pas la même chose que de se revendiquer de la ligne éditoriale d’un journal. Je ne peux m’empêcher de me demander ce qui se serait passé si la cible des fanatiques bas du plafond n’avait pas été Charlie Hebdo mais Valeur Actuelle ou Minute.

Dernier point, je m’interroge sur l’ampleur des mobilisations en réaction au massacre du 7. Je ne comprend pas.

Je ne crois pas que le massacre nous choque à ce point à cause de la proximité. Bien d’autres faits divers tragiques nous atteignent moins, alors qu’ils serait plus simple de s’identifier. N’importe quel accident impliquant des enfants devrait nous remuer en tant que parents. Ça n’est pas le cas. Je ne crois pas non plus qu’il s’agisse directement de défendre la liberté d’expression. D’abord parce que l’attaque du 7, pour horrible qu’elle soit, n’aura que très peu d’impact sur le degré de liberté d’expression dans ce pays. Elle aura une influence, je ne le nie pas, mais comme de nombreux autres faits. Chaque fois que la liberté d’expression est attaquée, par exemple parce que Facebook ou Apple censurent un contenu, notre réaction est dérisoire. Certes, les actions des GAFA sont moins horribles qu’un bain de sang, mais leurs conséquences sont bien plus surement funestes. J’ai l’impression que quelque chose d’autre se joue, mais je peine à l’identifier. Ou refuse de le faire.

Pour que tant de personnes se sentent aussi touchées, sans-doute l’attentat a-t-il touché à quelque chose d’intime, à une identité inconsciente. À certaines valeurs que l’éducation et la propagande ont réussi à inscrire profondément en nous. Des saloperies petites-bourgeoises que nous n’avons pas encore réussi à extirper de notre crane. Oui, justement, notre identité de petit-bourgois. Bon, là c’est très flou donc je ne m’enfoncerai pas davantage.

Dernier dernier tiret, je crains que les rassemblements de soutien à Charlie Hebdo ne soient surtout un nouveau marqueur renforçant un clivag au sein de la société. On nous somme de choisir notre camp. Y aller c’est être avec les Bons. Ne pas y aller, c’est être dans le camp des barbares. Il en est de même des minutes de silence nationales. Refuser de s’y associer, c’est être aussitôt soupçonné de ne pas suffisamment condamner le massacre, donc en devenir complice. J’ai horreur qu’on m’impose ce genre de choix sans nuance. Et je pense que beaucoup de gens, parce qu’ils ne se sentent pas concernés par les deuils officiels, vont se sentir rejetés encore davantage, vont se sentir encore un peu moins égaux.

Mais tout cela est encore obscur, je vais aller butiner un peu ailleurs pour essayer d’y voir plus clair.

Ni logiciel démocratique, ni loi libre

J’essayais récemment d’expliquer le concept de logiciel libre à des gens qui s’y connaissent autant en informatique que moi en… n’importe quel autre domaine, c’est à dire qu’ils savent tourner le minuteur du micro-onde, mais ne comprennent aucun mot de la phrase « compiler le code source du logiciel ».

Et j’ai réalisé une fois de plus qu’en définitive, le logiciel est libre pour moi qui, de par ma culture, suis théoriquement capable de le modifier pour l’adapter à mes besoins, mais sûrement pas pour eux, qui auront toujours besoin de l’aide d’un tiers (oublions les autres libertés, droits d’usage et de redistribution, le néophyte est persuadé que comme pour n’importe quel outil acheté à la quincaillerie du coin, il peut utiliser et distribuer des copies de « ses » logiciels à sa guise).

Finalement, pour l’utilisateur final, qu’est-ce qui distingue un logiciel libre d’un logiciel privateur ? Dans le premier cas, c’est un logiciel conçu par des ingénieurs, dans le second par des marketeux. S’il veut une nouvelle fonctionnalité dans son logiciel, il devra dans un cas s’adresser à des geeks, dans l’autre à des commerciaux. Pour mon néophyte, la différence s’arrête là (au regard de ce critère, on remarquera que Firefox n’est pas un logiciel libre, ce qui explique sans doute son succès).

Aujourd’hui, au détour d’un gazouillis, j’ai vu quelqu’un considérer qu’une loi serait moins démocratique si elle était rédigée par des ingénieurs que par des juristes. Le parallèle m’a sauté aux yeux. Une loi rédigée par des juristes payés par un quelconque lobby n’est, à mes yeux de citoyen, pas plus représentative de ma volonté qu’un texte rédigé par des professionnels de l’informatique ou de la pâtisserie. Mais les juristes sont sans doute persuadés du contraire, comme les libristes de la liberté des utilisateurs de leur code.

Qu’il s’agisse d’écrire le code source d’une loi ou d’un logiciel, tant que l’usager ne sera pas le pilote, on ne pourra pas parler de liberté ni de démocratie, juste de guéguerre de pouvoir entre techniciens de disciplines différentes.

Installer une application Web statique sur CozyCloud

Je l’ai déjà expliqué, je rêve de pouvoir faire de Cozy le pendant serveur de Firefox OS, une plateforme applicative libre et personnelle hébergeant des applications purement Web. J’ai donc essayé d’y installer certaine application Web conçue pour Firefox OS. Pour l’instant, ça n’est pas possible directement, car Cozy ne sait pas encore héberger des pages Web statiques. Une application Cozy nécessite un composant serveur. J’ai donc écrit rapidement un adaptateur pour transformer une application Web statique en application Cozy.

Écrire cet adaptateur s’est révélé être très simple.

Pour simplifier la gestion de dépendances entre l’adaptateur et mon application, j’ai d’abord rendu cette dernière disponible via npm. Il suffit pour cela de créer un fichier package.json (npm init permet de le faire de façon interactive) puis de le publier avec npm publish.

Pour ce qui est de l’adaptateur, Cozy est capable d’installer une application dotée d’un fichier package.json depuis un dépôt Git public. J’ai donc créé un dossier et l’ai initialisé :

mkdir toto
cd toto
git init
npm init
npm install --save express
npm install --save myapp

Pour des raisons de simplicité, j’utilise Express, qui fait tout ce que je veux en deux lignes de code. Il est probablement possible de réduire la taille de l’application installée et son empreinte en se passant d’Express et utilisant directement l’API Node.js. Toute contribution en ce sens sera la bienvenue ☺

Normalement, votre application devrait avoir été installée dans le dossier node_modules/myapp. Il suffit donc de demander à Express de servir les fichiers présents dans ce dossier :

var express = require('express');
var app  = express();
var port = process.env.PORT || 9250;
var host = process.env.HOST || "127.0.0.1";
// Serve static content
app.use(express.static(__dirname + '/node_modules/myapp'));
// Starts the server itself
http.createServer(app).listen(port, host, function() {
  console.log("Server listening to %s:%d within %s environment", host, port, app.get('env'));
});

Et c’est tout, il ne vous reste plus qu’à publier cet adaptateur, et vous devriez pouvoir utiliser vos applications Web statiques dans votre instance Cozy. Pour cela, il suffit de saisir l’URL du dépôt dans le formulaire en bas du gestionnaire d’applications de Cozy et de cliquer sur Installer.

Si vous voulez personnaliser l’icône de l’application dans Cozy, ajoutez le chemin d’une image dans le fichier package.json de l’adaptateur :

{
  "name": "cozy-myapp",
  "version": "0.0.1",
  "description": "CozyCloud wrapper for MyApp",
  "main": "server.js",
  "dependencies": {
    "myapp": ">= 0.0.1",
    "express": "^4.10.1"
  },
  "scripts": {
    "start": "node server.js"
  },
  "author": "Clochix",
  "license": "GPLv3",
  "icon-path": "myapp.png"
}

Adaptez votre application pour Cozy

L’application que j’ai portée permet de synchroniser des données avec un serveur remoteStorage. Or, vous pouvez [installer un tel serveur dans votre Cozy]((http://blog.cozycloud.cc/news/2014/08/12/when-unhosted-meets-cozy-cloud/). D’où l’idée de pousser un peu l’intégration et de préconfigurer mon application pour qu’elle utilise le serveur RS installé sur l’instance.

J’ai donc légèrement modifié mon application pour qu’elle utilise un fichier default.js contenant quelques valeurs par défaut. Je ne concatène pas ce fichier avec les autres fichiers javascript, obligeant le navigateur à faire une requête spécifique pour le récupérer. Je peux ainsi demander à Express d’intercepter cette requête et de renvoyer en lieu et place du fichier de mon application un autre fichier, contenant des options spécifiques à l’installation sur Cozy :

app.get('/js/default.js', function (req, res) {
  res.setHeader('Content-Type', 'text/javascript');
  res.sendFile('customConfig.js');
});

Le code étant plus parlant que les longues tirades, si le sujet vous intéresse je vous invite à jeter un œil au code de mon adaptateur, et n’hésitez pas à essayer de l’installer sur votre instance Cozy.

Fork me on GitHub