org.das2.util.filesystem.GitHubFileSystem
GitHubFileSystem allows GitHub directories to be mounted directly, even
though it is not a conventional filesystem with files residing in folders.
For example, the file resource README.md found in
https://github.com/autoplot/scripts/ is downloaded from
https://github.com/autoplot/scripts/blob/master/README.md,
with "blob/master/" added to the URL. Likewise directory "demos" is found
under "tree/master/".
GitHub also introduced a new problem, where dates cannot be used for
evaluating file freshness. ETags are now supported in WebFileSystem to
provide this functionality.
Note, GitHub is slow to update the raw view, so five minutes may pass
before a pushed change is visible. See
https://sourceforge.net/p/autoplot/bugs/2203/ . This can be resolved
by maintaining a local clone of the repo.
createGitHubFileSystem
createGitHubFileSystem( java.net.URI root ) → GitHubFileSystem
create GitLabs instance
Parameters
root - the root
Returns:
the filesystem.
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]
createGitHubFileSystem( java.net.URI root, int baseOffset ) → GitHubFileSystem
getFileObject
getFileObject( String filename ) → FileObject
Parameters
filename - a String
Returns:
org.das2.util.filesystem.FileObject
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]
getLocalRoot
getLocalRoot( java.net.URI root ) → File
return the location within the file cache of this GitHub filesystem.
TODO: There's something with branches that still needs work. Also the constructor
does not use this.
Parameters
root - an URI
Returns:
the directory containing the resource.
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]
getURI
getURI( String filename ) → URI
Parameters
filename - a String
Returns:
java.net.URI
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]
getURL
getURL( String filename ) → URL
return the URL for the internal filename
Parameters
filename - internal filename
Returns:
a java.net.URL
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]
gitHubMapDir
gitHubMapDir( java.net.URI root, String filename ) → URL
github puts directories for each project under "tree/master".
Parameters
root - an URI
filename - a String
Returns:
a java.net.URL
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]
gitHubMapFile
gitHubMapFile( java.net.URI root, String filename ) → URL
Given the URI, convert this to the link which will download the file.
github puts directories for each project under "raw/master".
Parameters
root - an URI
filename - a String
Returns:
Translate:%{code
https://abbith.physics.uiowa.edu/jbf/myawesomepublicproject/blob/24dff04b9bcb275d8bfd85b38e0e8b039b21d655/sayAwesome.jy to
https://abbith.physics.uiowa.edu/jbf/myawesomepublicproject/raw/24dff04b9bcb275d8bfd85b38e0e8b039b21d655/sayAwesome.jy
https://github.com/autoplot/app/raw/master/Autoplot/src/resources/badge_ok.png to
https://github.com/autoplot/app/master/Autoplot/src/resources/badge_ok.png
https://jfaden.net/git/jbfaden/public/blob/master/u/jeremy/2019/20191023/updates.jy
https://research-git.uiowa.edu/space-physics/juno/ap-script/master/test/testap.jy to
https://research-git.uiowa.edu/space-physics/juno/ap-script/-/raw/master/test/testap.jy
https://research-git.uiowa.edu/jbf/testproject/-/blob/master/script/testScript.jy to
https://research-git.uiowa.edu/jbf/testproject/master/script/testScript.jy
}
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]
isGithubFileSystem
isGithubFileSystem( String h, String path ) → String
one place that lists the GitHub (GitLab) filesystems.
Parameters
h - the host
path - path to the top of the GitLabs instance.
Returns:
null if it is not a GitHub filesystem, or the initial path otherwise
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]
listDirectory
listDirectory( String directory ) → String
Parameters
directory - a String
Returns:
java.lang.String[]
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]
listDirectoryGitlab
listDirectoryGitlab( String directory ) → String
At some point, Gitlab started returning the filename listing in a
separate JSON response. TODO: It's impossible to distinguish
files from folders. On jfaden.net/git, this API does not work.
Parameters
directory - a String
Returns:
a java.lang.String[]
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]
strjoin
strjoin( java.lang.String[] c, String delim, int start, int end ) → String
this will be replaced in Java 8.
Parameters
c - a java.lang.String[]
delim - a String
start - positive index, or negative from end.
end - positive index, or negative from end.
Returns:
a String
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]
toString
toString( ) → String
Returns:
java.lang.String
[search for examples]
[view on GitHub]
[view on old javadoc]
[view source]