Ho un sistema incorporato in cui non riesco a installare nulla e l'unico strumento che potrei potenzialmente utilizzare per recuperare qualcosa è wget. Si scopre che non puoi fare le stesse cose con wget che puoi con arricciatura. Non posso nemmeno eseguire la compilazione incrociata per questo sistema, quindi ho bisogno di ricorrere a Python o agli script della shell. Lì l'implementazione di git in puro Python chiamata Dulwich ha in realtà qualche codice C che avrei bisogno di compilare a croce ... Quindi ho persino pensato di farlo, FYI.Download di un tarball da github senza arricciatura
Quello che mi serve è ottenere il codice dal repository github e la soluzione ovvia a ciò è l'utilizzo di archivi tar che forniscono. Di solito copio il link per scaricare il pulsante zip dalla pagina del repository e uso un token di autorizzazione al posto del nome utente e della password. Funziona abbastanza semplicemente con l'arricciatura in questo modo:
curl -L https://<token>@github.com/<org|user>/<repo>/archive/master.tar.gz | tar xz
Risulta wget è un po 'più scomodo e tutto ciò che ho provato appena funziona.
Perché non puoi cross-compilazione? –
Causa Non ho la stessa toolchain per compilare la versione di ricciolo (o git) collegata dinamicamente. Se provo a compilare una versione collegata staticamente di uno dei due, probabilmente ci vorrà un'ora buona per mettere insieme da zero tutte le dipendenze. E perché devo davvero farlo, se la versione completa di wget è già lì ... E ho avuto anche Python, ma usare urllib2 sarebbe probabilmente abbastanza noioso e avrei bisogno di gestire esplicitamente cose come i reindirizzamenti e riprovare ... – errordeveloper
Il codice C di Dulwich è facoltativo. Puoi usare Dulwich senza farlo costruendo con "setup.py install --pure". Le estensioni C miglioreranno significativamente le prestazioni per i repository più grandi. – jelmer