C'è una buona ragione per cui ogni applicazione Linux pesantemente usata e ampiamente sviluppata è strutturata come un eseguibile ( eg , /usr/bin/blarf
) che gestisce l'input e output della riga di comando e una libreria ( eg , /usr/lib/libblarf.so
). L'idea è che il lavoro reale avvenga all'interno delle funzioni o dei metodi della libreria, che può essere chiamato da qualsiasi programma che vuole eseguire l'operazione e che l'interfaccia della riga di comando è solo uno dei possibili modi per chiedi che ciò accada. Ad esempio, il Subversion sistema di controllo versione ha libsvn
, che viene utilizzato sia dal comando svn
che dai vari GUI.
Quando dici " faccio una biblioteca o scrivo un servizio ", suppongo per "biblioteca", intendi qualcosa come libsvn
, e che per "servizio", tu significa qualcosa come un'interfaccia REST . Direi, inizia rifattorizzando la libreria dal tuo programma principale e poi crea un servizio che usa la libreria se ne senti la necessità.