Skip to content

Commit

Permalink
Corrections sur l'installation
Browse files Browse the repository at this point in the history
  • Loading branch information
Bouhmarc committed Jun 27, 2021
1 parent 7f1cf0e commit 45410f4
Show file tree
Hide file tree
Showing 6 changed files with 1,462 additions and 57 deletions.
2 changes: 2 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# répertoire des modules
NODE_PATH="../node_modules"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ src/connectors_list.json
node_modules
connectors_list.json
secret.json
Test Connecteurs (23 MAI 2021)
2 changes: 2 additions & 0 deletions DownloadDocument_StandAlone.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ sFichierConfig = process.argv[2]
process.env.COZY_PARAMETERS = JSON.stringify(stParametres)
process.env.COZY_FIELDS = JSON.stringify(stOptions)



// Importe le connecteur
require(stUnElement.source)

Expand Down
130 changes: 74 additions & 56 deletions InstallConnector.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,14 @@ async function installConnector(sURLGit) {
}
async function DeclareConnecteur(sRepertoireConnecteur)
{
// objet final
MonPackage = {}

let sIndex = path.join(sRepertoireConnecteur, '/src/','index.js')
// récupère le dernier répertoire :
let tabRepertoires = sRepertoireConnecteur.split('/')

sIndex = path.join(sRepertoireConnecteur, '/src/','index.js')
let sRepertoire = tabRepertoires[tabRepertoires.length -1]

console.log('Saisissez le nom du plugin : ')
let sNomPlugin = await readlineSync();
Expand All @@ -79,12 +85,36 @@ async function DeclareConnecteur(sRepertoireConnecteur)


// Lit le manifest du connecteur pour savoir si il reste des paramètres
//sContenuManifest = fs.readFileSync(path.join(sRepertoireConnecteur,'manifest.konnector'), 'utf8')
sContenuManifest = fs.readFileSync(path.join(sRepertoireConnecteur,'manifest.konnector'), 'utf8')
// Parse le fichier JSON
//let oManifest = JSON.parse(sContenuManifest)
let oManifest = JSON.parse(sContenuManifest)

//oManifest.fields

MonPackage["name"] = sNomPlugin
MonPackage["source"] = sIndex
MonPackage["directoryName"] = sRepertoire
MonPackage["folder_to_save"] = sRepertoireTelechargement
MonPackage["login"] = sLogin
MonPackage["password"] = sMotDePasse

MonPackage["others"] = []

for (key in oManifest.fields) {
let stParametreSupplémentaire = {}

if (key == 'login' || key == 'password' || key == 'advancedFields')
continue;

console.log('Saisissez la valeur correspondant à "' + key + '" : ')
let sVariable = await readlineSync();

stParametreSupplémentaire.name = key
stParametreSupplémentaire.value = sVariable

// on l'ajoute au tableau
MonPackage["others"].push(stParametreSupplémentaire)

}

// Lit le JSON de configuration
sFichierPackage = path.join(__dirname , '/connectors_list.json')
Expand All @@ -95,13 +125,7 @@ async function DeclareConnecteur(sRepertoireConnecteur)
ConnectorsList = []
}

MonPackage = {}
MonPackage["name"] = sNomPlugin
MonPackage["source"] = sIndex
MonPackage["folder_to_save"] = sRepertoireTelechargement
MonPackage["login"] = sLogin
MonPackage["password"] = sMotDePasse


// Supprime les dépendances de dev
ConnectorsList.push(MonPackage)

Expand Down Expand Up @@ -180,65 +204,59 @@ function InstallDependances(sRepertoire)

async function UpdateConnector(sNomPlugin) {

let sRepertoirePlugin = path.join(process.cwd(),'/plugins/')

// Récupère le nom du connecteur (le nom du répertoire dans lequel sera cloné le repo)

// On se positionne dans le répertoire du plugin
sRepertoirePluginUpdate = path.join(sRepertoirePlugin, sNomPlugin)
var sRepertoireOrigine = process.cwd()

// Si le répertoire n'existe pas, on sort en erreur
// if (fs.existsSync(sRepertoirePluginUpdate) == false)
// return false
// Liste les connecteurs
ConnectorsList = JSON.parse(fs.readFileSync(__dirname + '/connectors_list.json'))

// On change le répertoire pour faire la maj
process.chdir(sRepertoirePluginUpdate)
await ConnectorsList.forEach(stUnElement => {

// Annulation des modifications
await StartProcess('git checkout .')

console.log('Récupération du repository')

// Clone le repo
await StartProcess('git pull')
if (sNomPlugin && sNomPlugin != '' && stUnElement.name != sNomPlugin)
return

console.log('Remplacement de référence aux libs de cozy')

// Remplace tous les cozy-lib par cozy-without-cozy
await RemplaceLibs(sRepertoirePluginUpdate)
let sRepertoirePlugin = path.join(sRepertoireOrigine,'/plugins/')

// Récupère le nom du connecteur (le nom du répertoire dans lequel sera cloné le repo)
var extension = path.extname(stUnElement.directoryName)
var sRepertoire = path.basename(stUnElement.directoryName, extension)

console.log('Installation de dépendances')
// Récupère le nom du connecteur (le nom du répertoire dans lequel sera cloné le repo)

// On se positionne dans le répertoire du plugin
sRepertoirePluginUpdate = path.join(sRepertoirePlugin, sRepertoire)

process.chdir(sRepertoirePlugin)
// Si le répertoire n'existe pas, on sort en erreur
// if (fs.existsSync(sRepertoirePluginUpdate) == false)
// return false

// Install les modules nodes dans le répertoire parent
await StartProcess('npm install ./' + sNomPlugin + ' -g')
// On change le répertoire pour faire la maj
process.chdir(sRepertoirePluginUpdate)

await StartProcess('npm upgrade ./' + sNomPlugin + ' -g')
// Annulation des modifications
StartProcess('git checkout .')

// Installe toutes les dépendances
await InstallDependances(sRepertoirePlugin)
console.log('Récupération du repository')

// Clone le repo
StartProcess('git pull')

console.log("Le connecteur est correctement mis à jour")
console.log('Remplacement de référence aux libs de cozy')

// Remplace tous les cozy-lib par cozy-without-cozy
RemplaceLibs(sRepertoirePluginUpdate)

}
console.log('Installation de dépendances')

/*
function ListeDependances(sFichierOrigine)
{
var requiredFiles = [];
var contents = fs.readFileSync(sFichierOrigine, 'utf8').split('\n');
process.chdir(sRepertoirePluginUpdate)

contents.forEach(function(line){
var re = /(?:require\('?"?)(.*?)(?:'?"?\))/;
var matches = re.exec(line);
// Install les modules nodes dans le répertoire parent (comme ca on partage les modules)
StartProcess('npm install --prefix ../../')

if(matches){
requiredFiles.push(matches[1]);
}
// Installe toutes les dépendances
InstallDependances(sRepertoirePlugin)

});
console.log("Le connecteur est correctement mis à jour")
})
}

return requiredFiles;
}*/
module.exports = {installConnector, UpdateConnector}
Loading

0 comments on commit 45410f4

Please sign in to comment.