connorpower / horizon Goto Github PK
View Code? Open in Web Editor NEWA fileshare for the decentralized web.
A fileshare for the decentralized web.
horizon-cli shares add <contact-name> <file>
Further infos in the Command Line Tool Wiki.
Add dummy unit tests to ensure correct execution of tests and reportage of coverage metrics.
shares ls
correctly lists all shares
shares ls <contact-name>
is not recognized as a command and results in the command help being displayed.
horizon-cli help
Further infos in the Command Line Tool Wiki.
files cat
corrupts binary data – presumably due to the conversation to a UTF8 string.
Possibly print byte for byte?
horizon-cli contacts remove {name}
Further infos in the Command Line Tool Wiki.
The API layer performs crucial transformation of local data structures into IPFS documents and is already wrapped in a protocol. Implementing unit tests should be fairly easy and serve as self-documenting code.
Retrieve list of user data -> place in queue
Other process observes queue and acts on inputs
If the horizon daemon is not running, very few of the command will work.
Detect this and autostart if necessary – printing a message that the user should stop the daemon.
Document a getting started guide in the wiki.
horizon-cli contacts set-rcv-addr <name> <receive-hash>
Further infos in the Command Line Tool Wiki.
horizon-cli sync
Further infos in the Command Line Tool Wiki.
horizon-cli shares rm <contact-name> <file-hash>
Further infos in the Command Line Tool Wiki.
Currently the CI system automatically increases the build number, builds and optionally distributes the app, but not tags are left in git. Every CI build should be tagged appropriately.
horizon-cli daemon stop
Currently the IPFS daemon is killed with a SIGKILL
signal. We should instead send a SIGINT
to provide IPFS the opportunity to perform a clean shutdown.
horizon-cli files cp <hash> <to-location>
Further infos in the Command Line Tool Wiki.
Console messages should be displayed and formatted in a log window visible to the user/developer.
Currently the code is part of the horizon command line tool, but is well tested and much more generally applicable.
let targetLocation = (targetLocation as NSString).expandingTildeInPath
let location: URL
var isDir = ObjCBool(false)
if !FileManager.default.fileExists(atPath: targetLocation, isDirectory: &isDir) {
location = URL(fileURLWithPath: targetLocation)
} else {
var maybeLocation: URL?
var counter = 1
repeat {
if isDir.boolValue {
let filename = file.name + (counter == 1 ? "" : " (\(counter.description))")
maybeLocation = URL(fileURLWithPath: targetLocation).appendingPathComponent(filename)
} else {
let newSuffix = counter == 1 ? "" : " (\(counter.description))"
let baseBath = (targetLocation as NSString).deletingPathExtension
let pathExtension = (targetLocation as NSString).pathExtension
let newPath = baseBath + newSuffix + (pathExtension.isEmpty ? "" : ".") + pathExtension
maybeLocation = URL(fileURLWithPath: newPath)
}
counter += 1
} while FileManager.default.fileExists(atPath: maybeLocation!.path)
location = maybeLocation!
}
horizon-cli shares ls [<contact-name>]
Further infos in the Command Line Tool Wiki.
Update all associated documentation.
horizon-cli
is a pain to type.
horizon-cli contacts rename <name> <newName>
Further infos in the Command Line Tool Wiki.
horizon-cli contacts show <name>
Further infos in the Command Line Tool Wiki.
Change:
horizon --identity my-psuedoself
to:
horizon --identity=my-psuedoself
We require an update mechanism and central location for crash reports.
TestFlight is not available for macOS apps. Hockey App was purchased by Microsoft and recently relaunched as Visual Studio App Center. It is likely a pragmatic place to start.
The current proof-of-concept code is completely undocumented. This is somewhat unhelpful when returning to the project after a couple of months of inactivity.
horizon-cli files help
Further infos in the Command Line Tool Wiki.
Further infos in the Horizon CLI Wiki.
peers
to contacts
horizon-cli shares help
Further infos in the Command Line Tool Wiki.
SwiftLint has been integrated as a build step and revealed both inconsistencies and build errors. These should be quickly remedied.
File pinning should be optionally provided to allow offline access to certain content.
horizon-cli files cat <hash>
Further infos in the Command Line Tool Wiki.
horizon-cli stat
Further infos in the Command Line Tool Wiki.
Currently, the list of shared files is concatenate-only. This has the unwanted side effect of never being able to unshare a file or clean up the list of shared files.
The entire sync operation fails if a contact is offline. Allow sync to continue, but print after completion a summary of warnings, i.e.
> horizon-cli sync
contact-x: synced
contact-y: failed
....
horizon-cli contacts list
Further infos in the Command Line Tool Wiki.
horizon-cli files ls [<contact-name>]
Further infos in the Command Line Tool Wiki.
brew
will both provide an update mechanism and allow us to formally specify a dependency on IPFS.
Project is missing a readme. Add basic instructions, particularly around the local IPFS node requirements.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.