Compare commits

..

44 Commits

Author SHA1 Message Date
1138-4EB
b66adcb582 chore: version v1.10.0
Former-commit-id: 74446bfe3c27c860a34021c9fbc072a1d1b82bc5 [formerly cb41bf65c06e12bfdba229e337204dfe5e00c3c6] [formerly 5482d87a53717bc557d984d87f6448a0ee955503 [formerly b579350798]]
Former-commit-id: 38679cbcad1ab3e5bde96897048fc90594bcc5dd [formerly 775d5d1d240ae13649f383bdbc170ea906d969e8]
Former-commit-id: 941367abeb3f691ef5017d59c7a2543cc4caddab
2018-08-16 07:33:20 +01:00
1138-4EB
5ec06fa0cd chore: fix release conditions
Former-commit-id: 6300d99faea5b807ba90ca409bcc683eefb5cf67 [formerly e9ce861912c0b03f64bded2ed44896d6ae79a485] [formerly 8acca6c5ecf8b56e85e22271addaa7ce396bc676 [formerly 714876e3d0]]
Former-commit-id: bcc4154cbe9a0dbe6819b3ac3236d98c3b8f6010 [formerly 00da283ee494ad42a7e886f52fa5c8ec34860c68]
Former-commit-id: 4f8963ab76da8a9230e835ba8ef82b7893516b20
2018-08-16 07:32:46 +01:00
1138-4EB
c163318ce5 chore: make release.sh executable, update frontend
Former-commit-id: 239ec73aad2905eb0ffaf2318b1f6166bb910da1 [formerly 723297d061329c46876a4bfc534c1bd83a1249a4] [formerly 0293f9a819d58f62b00c51894bb7e33d0af9cab9 [formerly 0854c423c3]]
Former-commit-id: 2cb8474af898a81cdcce7d6a0c109854efa7c0c9 [formerly 48013895c67ac2cb22097fb5dde040747a231dfd]
Former-commit-id: 06799635ff5acfa1a79f4c41f22b187aa92b2b98
2018-08-16 04:30:28 +01:00
Henrique Dias
98dabff1e7 docs: update docker iamge
Former-commit-id: fb8c8d07d7c50a916b9142ae674a0d080af4bad5 [formerly 37c016849e2bc83f184eb1cb3b881c3fa300bdb4] [formerly 05c42ceabed6b64d5b4550fa32b07d3d3d976c50 [formerly 10607eb6bb]]
Former-commit-id: 525cbecb6754d4bc3c440053880440dfdb16acd7 [formerly 03e66762e36fb88cf738c21238faa7f72463d486]
Former-commit-id: 723f07c766502c2f49305baf79ebde41e9e15098
2018-08-08 11:50:59 +01:00
maweck
50dcf35eda feat: proxy auth support (#485)
* Change the order of commands to be able to cache more layers in case of multiple builds triggered in a row

* Fix #471

* Format Code

* Revert "Change the order of commands to be able to cache more layers in case of multiple builds triggered in a row"

This reverts commit 29217f66ee6aee63d2c03ac86de4ad437876317d [formerly ebff3e9d79ac9eca44d7b3caf7814be62c784d43] [formerly 9b95d9e986254d55405cd0e9484dcbbadc54c87b [formerly d13fd2878c38a46f91da30de150624200f0b32e9]] [formerly 3ec8fb12d8b6e1942ebae6abb00c5f15b03d6412 [formerly 6a70bdaf457f50896dd9826608666a39babae666] [formerly 063a6fe9d4991b7b6c257ae081288ea40efbe8b5 [formerly 01362f34ee]]].

* Adjustment based on the review

* Rename "login-header" to "loginHeader" and prepare auth.method to accept "none" as a value

* Fixed line break

* Readd "lumberjack.v2" import which was removed by gofmt

Sorry - I do my tests and run "gofmt" before comitting the changes - It sadly seems like it is messing up the imports over and over again.


Former-commit-id: 252e65171f70ee87238b5542e6af81d90bdaed6b [formerly fa843827feaab389550f32ba3a629e1968bcea3d] [formerly 942986226dbb56ef1cb4dff24445406cfa699d2d [formerly ed62451ea0]]
Former-commit-id: e87377dd6f30012b0d602b592100a7deb39a8632 [formerly f8198aa8a51fd5e727c31df0918ab62024520cef]
Former-commit-id: 019de07d53c3da16354e228330c14efb0dfb2122
2018-08-08 10:06:16 +01:00
Henrique Dias
769e634bdd docs: add freenode badge
Former-commit-id: adbba24f2d206e5f70e062c3733dc4737b2be85c [formerly d74e2307695c122fe4ad8118aa73d4af91fc7d5c] [formerly 1428ecc21a5031949b8bb04b43a31db7dbe1ca5c [formerly b90e7b8d26]]
Former-commit-id: ddbb0a87937d4704e1e14fbd16a9a129b26cceb4 [formerly 90a491507a9f9e8dfe78329ae6b51dd722859855]
Former-commit-id: 724bae950c0affd84fd9066ac016e318c5b7c115
2018-08-08 09:14:55 +01:00
1138-4EB
dead024e53 add pull request template (#501)
Related to #477.

Former-commit-id: f3020544c0b03295d5c4c79a678a4a1acc47884e [formerly 10c8b8febfa720d1e719f5e4735259b6427b9df0] [formerly 3d0b90a6b6c62bed99d8347066befff8a29f4525 [formerly 8186e8f02f]]
Former-commit-id: ccbd134d4e7d8eb7a362a2e34fa2828f2b86766d [formerly 2f9b979b97a8086136cdf36c68cdaeb2b36ef7da]
Former-commit-id: 6855aafd45b5c526b91fd3acdd95af4fec68175f
2018-08-07 13:53:51 +01:00
Henrique Dias
f4982cff5e style: fix linting issues
License: MIT
Signed-off-by: Henrique Dias <hacdias@gmail.com>

Former-commit-id: 10657ab9cff2ee94dd7c0082bfe2cbfa07865022 [formerly 5501af1ace43a089ac4222cf9da2f5176242f817] [formerly 39c72e2e9235a822a30c0b338f55c441f3b3024d [formerly b7022bdfe3]]
Former-commit-id: 5941e4ab1295b90371ba60003f69939559dc8060 [formerly 3513d92ba403133d7b53aa19c92e4356f9e68b75]
Former-commit-id: 3657f6f659e893928bd2b9f64afecdaa41d587a6
2018-08-07 13:34:06 +01:00
1138-4EB
bfbb7b5ee1 chore: move filebrowser/dev img to separate repo (#500)
Former-commit-id: e54327906c7e4923debd36fff1dc31886440463c [formerly 72506b1b7f04ba728532ab6e94bd3e482ce38cda] [formerly 1195ba2763a02f47797bb529a7f89fa625e4c3ca [formerly 5afe2cc52d]]
Former-commit-id: 022049582a495c141024ceaa43516541a8c72628 [formerly 6a29708b0a57ae9aad227fec96983218d50da38b]
Former-commit-id: b9b48ad2b8e5d0b3b96f2b15fefe785a830240dd
2018-08-07 13:29:50 +01:00
1138-4EB
7c09473312 chore(gometalinter): exclude vendor
Former-commit-id: 8e99e3c0802a1f8acbed90047f0143789da771ad [formerly 94a11f954bdbdb4f295ecfb53ed786241a2a7fb5] [formerly 165c7ed873e40b703e3c910678479212f5f78fec [formerly 65ea97b32e]]
Former-commit-id: b144f646b8808e500209056d35994f4b9cb60773 [formerly 964ce718e4661dd15d3a7311637d4105d381b320]
Former-commit-id: ffc4f157a492490b95df3849d52218ae142581fc
2018-08-07 12:31:27 +01:00
1138-4EB
b6a8472722 fix: use './...' when running gometalinter
Former-commit-id: a3f2c975184928b042e09a42a2006c54fc3c9026 [formerly 3f80e808255c869732bc31f981f3a9256f151cc7] [formerly facb7e61332d3fb6fb18e5ac36771141474935c8 [formerly 69f11ed80b]]
Former-commit-id: fd86fb79039c33f22aaf05ca7023c74ad8d0036b [formerly 990a472cde58a891c01d673e1b1fb570b07868f1]
Former-commit-id: 887b84b6134135b268d4aa82d9c65990fc7d86c9
2018-08-07 12:04:43 +01:00
1138-4EB
db01cfa2f0 fix multiple entries in script deploy [travis-ci/travis-ci#7641]
Former-commit-id: 32d1205b18e256f94831485837b868f1cdf30bb1 [formerly 8caae9f4acbfc93df6729a28ecb0f136bff3cc3e] [formerly c988834f5d4a7a08796d538626c2b3f042fbe1eb [formerly 81f05aa894]]
Former-commit-id: 8b2f7f547441f01f853a67d8edca7c54fc6cf0db [formerly d4c50007f20825ef35cf767ce7b31ed76848e341]
Former-commit-id: ff4fab2a46d70189ba0a977c372db7cf7c5c0bd3
2018-08-06 22:14:40 +01:00
Henrique Dias
4267ebf0b4 fix: error at first sign
License: MIT
Signed-off-by: Henrique Dias <hacdias@gmail.com>

Former-commit-id: 649162e55f57817c6e2fd8cb66fb4de1ada68199 [formerly fe5e1f6df6320c2eb6f24ca64ebffd6cedf6659b] [formerly 2f6eea9879c754d67acdf8f0809dd9c39cc12df0 [formerly 4470e0b450]]
Former-commit-id: 3a3500d1492db1ca7c262c60390452892fccb97b [formerly 2ea468347c670e8dfeda99be204e0b22072ea9c5]
Former-commit-id: be6a317810a0a465db2e852c6839308bf4d346ad
2018-08-06 20:53:48 +01:00
Henrique Dias
d4e9f5ba53 Merge pull request #492 from filebrowser/chore/build
chore: new build process
Former-commit-id: 5c703aea976d95470a5f427a2c2d7b15d08c0e9e [formerly 326fcdd2d11d414c557986c74ec343d5c2221168] [formerly 7a5991c0e85806e82256b201b515a070e0e95ec9 [formerly 8ad626b0bc]]
Former-commit-id: f78d78c109181cd9c52bd91753d4e39e8f65e077 [formerly 05e6b729485ddfa48ad428c389bd85d8ab11f366]
Former-commit-id: e91d24edfdff15c075e4f980a88b3dc8cf9d5254
2018-08-06 20:40:57 +01:00
1138-4EB
4ace991b8a update ricebox in caddy/assets
Former-commit-id: af8d9982d961f4c8e5a301dc0eeb1dc790f35231 [formerly 6f678bfadf1e1db8c8dc5e368087a23a3dba8b65] [formerly 3d06b4d8d6b2ffe209f10b9ae4ce30955839e721 [formerly 6f7fded3f1]]
Former-commit-id: 4016e6b9b12d5f945c67fd0960a3460cd1fbfda1 [formerly 1ead636502f6b0991e1b18f3de5889546cedfa24]
Former-commit-id: 03bb7d11a2062ca3fe4ffd5d3efc702e4652c260
2018-08-06 20:08:56 +01:00
1138-4EB
e0c91bb747 update frontend submodule
Former-commit-id: d1cbaf35191dfbdf499909baed77d16daa54ce4c [formerly edb3f13a7a6fd20a8377bee0c1eb9814dedcb615] [formerly b5566691de3d26ffaaaa0a9df77d517a8290a2cd [formerly 1149092d73]]
Former-commit-id: 642d0481907ba86e2fde0940e02bdfad4e04c898 [formerly 4f90dfe05f65af83234eb32e62fc4476ecdc5a75]
Former-commit-id: c858f5c393bfdc4de23c7fcc50cd1f2145ec44cf
2018-08-06 18:26:59 +01:00
1138-4EB
557e5922d2 fix(publish): fetch all before checking a matching semver in the frontend
Former-commit-id: 922b633d536f4102d8ec3e68a7d7fa12270e21c9 [formerly 7c8b0295aebc6819a162f94d23821e7728ebabc0] [formerly efad5cfea2c8bf1a1617dea5e9e6d0903d2d44d7 [formerly 18a9d977c2]]
Former-commit-id: c48391a56546742845c697d0b6494b1230bdf529 [formerly 4609f232086d4c5096c2a937cdf980f1b1a786cc]
Former-commit-id: 50ac09f7bca6d3541c0b8eb70ad672ed6768b2ca
2018-08-06 12:46:59 +01:00
1138-4EB
cea4d2aae9 fix rice-box dir in travis
Former-commit-id: a4de4d83ab964c11bb0375a66af7b011f39990bc [formerly e93bcfd8f83c089d72245ffa79785860f00b3758] [formerly 364f472f6e27004dab8bffa8674c855e9e6d4213 [formerly ac3ad47a92]]
Former-commit-id: 4c8cebdea67e8cd88c58563702489f7549aaa222 [formerly 1d6a75e82822a33f8edde2d64077196454f460ed]
Former-commit-id: 4230de67e7923ef7450385c8c9d25654f19f18c7
2018-08-06 12:46:59 +01:00
Filebrowser Bot
bb5c041d5c add deploy_key.enc 9ca81b5594f5
Former-commit-id: ed1098dcc37748ac3253be57416ba10aed0786e2 [formerly 4f791e75150f7947ea9bfac6e7e13bf3316f21d7] [formerly 140301afea7e83c08649870eb8cd6ee8bd111353 [formerly 43288e9b86]]
Former-commit-id: a8e5cee586fadff0a107d47cdb10573eb9aa30f5 [formerly 2eaf33fe47c4c56277284733251be36cfc0956e9]
Former-commit-id: 6d7a694ae4b0328c092ee342b96b226f464e526b
2018-08-06 05:01:44 +01:00
1138-4EB
bf1ef5b0f8 setup travis releases with filebrowserbot
Former-commit-id: 0593d1dd3883e25a44588131fa6fe69df815fd87 [formerly 429f789e0c54719595830f2290985be1f5899fb1] [formerly bb5b0328aa951f5534ab29e5070a1aa4da9ec2e2 [formerly 52aebd0444]]
Former-commit-id: 0cd117cb81b2a38b2646cc880c8774fed786d45c [formerly bf046ec317be577c8c3c4613d81272f6ae7fcabc]
Former-commit-id: 5066ef1dc9b898e8cf9909c03dede43690325815
2018-08-06 05:01:42 +01:00
1138-4EB
08ebe0fbb0 release all the files in dist
Former-commit-id: 9ac3858d788425d5c447f5a5ce068db71ba3bac2 [formerly 1eb037fc961dcb2d288d3f9edb7ee0867456aeef] [formerly 8633b5ef520ec3d4873a8b93925f90b4d129713e [formerly 6c98dfc9fc]]
Former-commit-id: 80f9ee49a48f953108813af26d8d576b17793245 [formerly 8cb7931e12674c248c68a90a3de2d5054646e089]
Former-commit-id: 2f0a1639a58ed6c8b56c178675829b05d8b08f30
2018-08-06 05:01:41 +01:00
1138-4EB
bdd7c269ed add docker-credential-pass to dev img and use it in travis
Former-commit-id: 3deff7d6b345fd6c1e9bac71b446730631e891c9 [formerly 2525a27cb90b003f72c7d936e2f0224848e3e49f] [formerly c699da2816b0c61bfdaf0a8b40612b9d50734d73 [formerly 5ab5c7c243]]
Former-commit-id: 7ed9366f3c83f50afef6b40d0006c32256d053f7 [formerly 0fc1beb902fbadc6f6388b10b7ed319e15fcb7d4]
Former-commit-id: 7bd6bacacb114d72808ded8c102f8f14de450625
2018-08-06 05:01:39 +01:00
1138-4EB
292ef7ea8a replace publish.sh with build/release.sh
Former-commit-id: 89636040fe653a0e2917a51fd7e557b0a9d2436c [formerly b052d724fe2381766bfd225d451cc7a077f82db4] [formerly e9e6f9066892058cf2780d33db8e561281bb1597 [formerly 2592c5eb43]]
Former-commit-id: d29d1a3284e7e84c80324d7591623644e5c3fac9 [formerly 3417ad7fe90ed523a0bc9bd67beafbb7b7ff3a80]
Former-commit-id: 5ac4f1ea442c54a401c66203343fa0373b5ffa9c
2018-08-06 05:01:38 +01:00
Henrique Dias
03ab2199d4 update repo
License: MIT
Signed-off-by: Henrique Dias <hacdias@gmail.com>

Former-commit-id: c78a96fbc7f65f0504e28ac2a59130d060cfc3d2 [formerly 5b8124120440eef3f81bef7a1354897c1e88e0ef] [formerly bbfcefaad0bd8e345f8463ad6f3ef7e5a65ea152 [formerly c6c915e387]]
Former-commit-id: 4af0f562b1c42e28e50f51c368544b957e3954b7 [formerly fa4050a8f763b7fea686617842610c526ed077b1]
Former-commit-id: 789e64f89019211fc541cbbc2e67655899b294ae
2018-08-06 05:01:36 +01:00
1138-4EB
41489f9e89 chore(gometalinter): gas is renamed to gosec [alecthomas/gometalinter#505]
Former-commit-id: 9d049a2544677a82892d61b046d9ca02719fd64e [formerly 75108904316b277fcdbd28145d0abff61c4c7d04] [formerly c28ae59c1ed7230f7f9ac4c5d6b27a014bac506b [formerly 993bab4687]]
Former-commit-id: b2bcc79aa40cb727315e0ec1007deea3a74358c6 [formerly 35c44ec3706ef141489d1c65309b55e21f03b4a0]
Former-commit-id: bce721ae0ca43b5b9667c31ccb2a3b64b48b7a71
2018-08-06 05:01:35 +01:00
1138-4EB
3bc5f6e0df build docker images with goreleaser
Former-commit-id: 5f8a21053734ba6c507b7d39fca57c0dcb9994fa [formerly 2ecda20825d40484ae2a24fba6dff4dfa63bf5df] [formerly a13bb1c1d1d812c86d8d92521bb48f7102b6725e [formerly 6cb2e30143]]
Former-commit-id: 553cb8f6ac4f89a4ab9574a72a2dd54e384f1072 [formerly 64e289831d826b28cc777c7ee7a79c8938f2a706]
Former-commit-id: 587e569d59adf142a24513bce9bc764841f8a550
2018-08-06 05:01:33 +01:00
1138-4EB
42d33cf595 add docker static client to filebrowser/dev
Former-commit-id: c9e14d35f42c240caf16c7ffaf03b56dac75588f [formerly bf92002b6cac66b3fca8fd68e7a19284983973d1] [formerly 3954699af9e3dad46a0026b07fd5ebb13796fabd [formerly 7459e66b71]]
Former-commit-id: 8f65bfb661773bd587243e84e9381d0e9a77ff50 [formerly 72cb26e555e2dd113a7c7e77fff71ae0abf440de]
Former-commit-id: dfe6091913bbcaf6bd87f8e1f3b06d5d5c84d14e
2018-08-06 05:01:31 +01:00
1138-4EB
0fbde826bf move caddy to separate repo
Former-commit-id: 38db4637c287a3f77a8e3fc39b0344a0d0ea0e94 [formerly aa94394d631efb107b6597e8bf2ec8d68f754fc8] [formerly efcef3211664021f7b23b9e6f1dcb7b5dbfc68a7 [formerly 28952e81bb]]
Former-commit-id: b7c4dbc1a19630c9116d640f96c52eccb6c66ab4 [formerly 5f2c74aa1fd92fdd3cd5917b21b5f6034d024748]
Former-commit-id: 3d6ad271b8f507f479ab9375419ad4b74594e719
2018-08-06 05:01:29 +01:00
1138-4EB
578f3e9bdd ignore rice-box.go
Former-commit-id: d416e0328a439e90100a8898b4eecd0d841094f0 [formerly 2ae0702ee23cb54706f34a01e2adadc8d71af201] [formerly e14ada686593af7f4e51df3631388e2564cc48d8 [formerly 569354c493]]
Former-commit-id: 55f994a485f1c19e0f217ef5a0a9eb929c0cb602 [formerly fc5f991702704d2b39bd3d557a7972a8da0190d7]
Former-commit-id: 0da0e4d08c933641f4212ec5e528da384eee315a
2018-08-06 05:01:27 +01:00
1138-4EB
f1e5cd490e add gometalinter and goreleaser to travis, drop circleci
Former-commit-id: dc44ea15987447b0f179bb2011c000f6d7224898 [formerly 3192a7ad777c6ff93fdd0d62a1d9f4c466c5b06e] [formerly 5bb95d586cf0dbf48355142fe17dfa8d162923c5 [formerly de7a8cee60]]
Former-commit-id: 129d25ece6e5ad704f3ef98bc4a59db70d0c9e10 [formerly f51552b629dbd69810e51142c9a66ab708d96d39]
Former-commit-id: 39d64538f9edcb5933c5cff8904f86691bf75ed3
2018-08-06 05:01:25 +01:00
1138-4EB
40b0cd4b66 add travis
Former-commit-id: a68e501a962cdd7c3a9e5a3d91433cbec34265e3 [formerly ab4763c975794e5997fab6abb51b2e91bda6e08a] [formerly 709e134df8986005308f3e125348fe13cf92919a [formerly 703318c214]]
Former-commit-id: 6672ab0918f84d73819f038cc5a24f1ce22625b4 [formerly 21d926cefe6d46ec2a99eba5e589b264e818d22d]
Former-commit-id: 294b3fa3faae6363f483388ccbedcf091d1f837c
2018-08-06 05:01:16 +01:00
1138-4EB
f9e3923ae7 add filebrowser/frontend as a submodule
Former-commit-id: 689395356dc1860d0f0f5786986cbbc4238a1fe0 [formerly 0c528dae26624fad221c4fa6b273a02dc030e81c] [formerly f353338b249c2ed818611ac6a91939bc87356de9 [formerly a2e293292e]]
Former-commit-id: 647dac9f8eed2df57191a75e4b199aebb18375fc [formerly 000079405f67a4bff2098c2cddc082a4374e0bd5]
Former-commit-id: 89c911c807783e2176994fc6949bf8221ca5e5a3
2018-08-05 10:58:21 +01:00
1138-4EB
32f7efbde5 add filebrowser/filebrowser:dev, move dep execution to build.sh
Former-commit-id: 691201333f6c76d5fe8d7134a1d68c4cc50404a7 [formerly a9973160b528bfe6b26bac2a6e1236e6e9192f0c] [formerly 84f8fdb79bd0929ef84a969a688ef1381e6ac691 [formerly d11aa8de6b]]
Former-commit-id: 5d10ebcf1f43a9854aa8b66b1227220e81e34473 [formerly a6e486b7c3a40fa821c2250bcd9edc1841775887]
Former-commit-id: 7367476016ce2499441cdb2d050fb2f961eed4d0
2018-08-05 10:58:21 +01:00
1138-4EB
56e5005484 drop package.json, use yarn instad of npm, add build_in_docker.sh
Former-commit-id: 1f1ce1a5350eb1d4d12dc3b90bae20d6df6048f9 [formerly fae0cae6f369574aab49ab952e1aa681c97f7067] [formerly 6f8245ec50d0d2485a263e5877a6a353837b1197 [formerly f91ee24858]]
Former-commit-id: b9bb3ad6a460de55851943bbbc62aee74e32028c [formerly 049f6c239d7a936d70493e68f23838c0ec11af88]
Former-commit-id: 81f69427472bbeb3f82e6bd2c3a114e2c5fb47d7
2018-08-05 10:58:21 +01:00
Henrique Dias
6bf0e8c063 chore: disable gosec (#490)
Former-commit-id: 515a160e341e7dcd338c7aea0a73c8dea0a917ca [formerly 85d6e4c2e150055fd8a2ba223bf8a7ee92116f72] [formerly 703c59c0f952f0fb7e43159c98328e53d1a92c04 [formerly 46b5fa013c]]
Former-commit-id: 1f6a9e78cdab0a6a6066248d98464bafd9d3f1c3 [formerly e102d783604d0afaff7e45a6dfd6eed9b7065e0d]
Former-commit-id: 22ffc5fbb93cd96609b04baf437e63db7bbfbe1b
2018-08-04 16:24:16 +01:00
1138-4EB
7445d73cf6 new issue templates (#477)
Former-commit-id: a28d3ceeb4a70ec5c59c7ad159952c4d453c8bca [formerly 1bcbffccb6aa9ccadf8ea43a7ffe4eb14cd7ec2b] [formerly 1d27bddbcf066bf32160c9b422bd927802ae8daa [formerly fb1dbb4276]]
Former-commit-id: 5fca1e72ba88f574059c4cf6ce92a13eac1919ed [formerly 3b928a4ec672b17f72ecfbc71bd7764e7cf7a31c]
Former-commit-id: 613be772339dcf2e4d422d5ddd361b66c95e7b2c
2018-07-29 20:20:24 +01:00
1138-4EB
af095a71e7 add ca-certificates to scratch docker image (#478)
Former-commit-id: aa531b84a518c6e4b48edc1231f663c316f36c23 [formerly 2b724b5f31ddbd39b1f9fb6df7ed4cff481b30db] [formerly 8f803379488acbc1149161b7df0eed4455ba876f [formerly 4e454f4bd2]]
Former-commit-id: 1579bebb11497abcdb83a4141af9da8bf681f8a9 [formerly c3943d81a5e4e66b4c1407ea37f30044b65ce593]
Former-commit-id: b26678c4727c4ad42463e25c53b6982efc18330c
2018-07-29 20:20:06 +01:00
1138-4EB
ab87f76dcb docs: add note about filemanager migration
Close #467.

Former-commit-id: 18d26af7c8a72d6195db73b795734dd18b9b2441 [formerly 87bdb71d011899d5e3e4c8dd9f7da6f629dceb67] [formerly ad1ff095a6e5dcf0c5e9f203f2bc3aa8e515d71d [formerly 6bbedddf51]]
Former-commit-id: 5d27d3e8f271ee437cb119df21334a942687193a [formerly 4ed80cbda3c300b5b18657cbbb4897eeff10f3df]
Former-commit-id: bc9d48ea84661e0607f30af71036d2e4f9a574f1
2018-07-29 20:19:52 +01:00
Dawid 'DeyV' Polak
2cbe941202 updated readme - case sensitive (#481)
Former-commit-id: 2ba295ca7060930f1f84645eed1f402b6f322522 [formerly fc51c3822642127f1d6ef6752bbcf47a3691a630] [formerly 8c38dd9075aed5f7a0d1fd974aa3dcad9fee8445 [formerly 90ad46b881]]
Former-commit-id: c0cc1705d3a215f07635de8809ab53238fccb75f [formerly bb31830df2193330f7266a4c382a57b89301446b]
Former-commit-id: bee1cec2d7892350706b8f2b24481f41a93e1082
2018-07-29 20:18:42 +01:00
Dawid 'DeyV' Polak
5e58c25aa4 natural sort (#474)
Former-commit-id: 9865271f38824fd4762253014a7855ee087d315f [formerly 17c1a5f7e2cbbea4f01ba394f6ae76ded22594f3] [formerly 2087a30cb8fa514b33d99fb9797a0751a8f532cd [formerly 202c9c97e5]]
Former-commit-id: 513ed21a74e590d062f0974b0ea7af7381162df9 [formerly 3fb2617b7aa05abe93460e2ab25ba2369ce68095]
Former-commit-id: a038eda5003c044eeceeea46539f3673ebc16f95
2018-07-29 17:43:23 +01:00
1138-4EB
bdfca1be33 subdir 'logo' moved to separate repo (#473)
Former-commit-id: d8596d836d5f3a126e6c58bab8737ae3902c0e9f [formerly b71f4484566042f6e4450f8ffafbf09f7ac76d48] [formerly e0b9028417b62b2ef00df7ed4ffa5deedef2b4bd [formerly c6f60d298a]]
Former-commit-id: 74e17d4db50e7ce9a2c2e16b706bd9a037832953 [formerly ef09d2f245aac59b54c09d370677294eda305c5a]
Former-commit-id: fa358937f8c8e9ca24e45c2f8d2c9997587dd927
2018-07-28 16:14:41 +01:00
VLEFF
281b8dca23 feat: handle subtitles for video streaming (#468)
Former-commit-id: 4259259f666304a88a808093afd26967059bd702 [formerly c925c803e33aa5486e920291b97b27e15ee9e2b9] [formerly dfe55f167c82ce734968505765104f855284a095 [formerly eb12bf2c2d]]
Former-commit-id: 96c5284c2a8c00c97dce3965893b4820e7ed4e6e [formerly 84f9ed9f1256e89010c5e813dc0b589af6a32d4a]
Former-commit-id: 0c84bae4cefcd2fad3b65f0fbec31e565ca5f27b
2018-07-26 10:47:09 +01:00
Henrique Dias
2761302ddf Update .dockerignore
Former-commit-id: a81be3e8b6e2130c615bb41f67946f940590ab0e [formerly a0c08066d324572fbff46aad1697bb8eb51722ca] [formerly 86886ab818a9fff57402bc5fb2652554d3f3998e [formerly ccf1722e65]]
Former-commit-id: 735ed5b90b2c329b97dd1840f95616d4089c91e6 [formerly 81363b7cbbe2b06e23701460b5842d22d51eaf33]
Former-commit-id: d34170646d7bec7efeeb9558b0b048333b86e096
2018-07-25 10:16:26 +01:00
Henrique Dias
06f0d36dd8 chore: setting untracked version [ci skip]
Former-commit-id: 3f52c0a25429df791e76eb7b157f4fd977193597 [formerly beee01e81d8380725e8f6b351606a9d1121c53fe] [formerly 75a659afa40143517192f3c4e04fa4f2fda5acc7 [formerly 80da59dab0]]
Former-commit-id: 0a74edab781637aa33568654fc7c82574cff069c [formerly d15a8f7f1b994aa8f359b402367da0f9b39c6c8d]
Former-commit-id: 912c7ff7943300c3f4b6b89f021c9071831afd28
2018-07-23 14:54:28 +01:00
52 changed files with 622 additions and 1121 deletions

View File

@@ -1,83 +0,0 @@
version: 2
jobs:
linting:
docker:
- image: circleci/golang:1.10
working_directory: /go/src/github.com/filebrowser/filebrowser
steps:
- checkout
- run:
name: Install Dependencies
command: |
curl -sL -o $GOPATH/bin/dep https://github.com/golang/dep/releases/download/v0.4.1/dep-linux-amd64
chmod +x $GOPATH/bin/dep
dep ensure -v
go get github.com/alecthomas/gometalinter
gometalinter --install
- run:
name: Run linting
command: |
gometalinter --exclude="rice-box.go" \
--deadline=300s \
-D goconst \
-D gocyclo \
-D vetshadow \
-D errcheck \
-D golint \
-D gas
build:
docker:
- image: circleci/golang:1.10
working_directory: /go/src/github.com/filebrowser/filebrowser
steps:
- checkout
- run:
name: Install Dependencies
command: |
curl -sL -o $GOPATH/bin/dep https://github.com/golang/dep/releases/download/v0.4.1/dep-linux-amd64
chmod +x $GOPATH/bin/dep
dep ensure -v
- run:
name: Building
command: go build github.com/filebrowser/filebrowser/cmd/filebrowser
deploy:
docker:
- image: circleci/golang:1.10
working_directory: /go/src/github.com/filebrowser/filebrowser
steps:
- checkout
- run:
name: Install Dependencies
command: |
curl -sL -o $GOPATH/bin/dep https://github.com/golang/dep/releases/download/v0.4.1/dep-linux-amd64
chmod +x $GOPATH/bin/dep
dep ensure -v
- run:
name: Deploy
command: curl -sL https://git.io/goreleaser | bash
workflows:
version: 2
lint-build-deploy:
jobs:
- linting:
filters:
tags:
only: /.*/
branches:
only: /.*/
- build:
filters:
tags:
only: /.*/
branches:
only: /.*/
- deploy:
requires:
- linting
- build
filters:
tags:
only: /v[0-9]+(\.[0-9]+)*(-.*)*/
branches:
ignore: /.*/

View File

@@ -1,3 +1,3 @@
testdata/
.github/
.git/
**.git

View File

@@ -1,24 +0,0 @@
### Instructions (remove before submitting):
1. Are you asking for help with using Caddy or File Browser? Please use our forum instead: https://forum.caddyserver.com.
2. If you are filing a bug report, please answer the following questions.
3. If your issue is not a bug report, you do not need to use this template.
4. If not using with Caddy, ignore questions 1 and 2.
### 1. Have you downloaded File Browser from caddyserver.com? If yes, when have you done that? If no, and you are running a custom build, which is the revision of File Browser's repository?
### 2. What is your entire Caddyfile?
```text
(Put Caddyfile here)
```
### 3. What are you trying to do?
### 4. What did you expect to see?
### 5. What did you see instead (give full error messages and/or log)?
### 6. How can someone who is starting from scratch reproduce this behaviour as minimally as possible?

22
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,22 @@
---
name: Bug report
about: Create a report to help us improve
---
**Description**
A clear and concise description of what the issue is about. What are you trying to do?
**Expected behaviour**
What did you expect to happen?
**What is happening instead?**
Please, give full error messages and/or log.
**Additional context**
Add any other context about the problem here. If applicable, add screenshots to help explain your problem.
**How to reproduce?**
Tell us how to reproduce this issue. How can someone who is starting from scratch reproduce this behaviour as minimally as possible?
**Files**
A list of relevant files for this issue. Large files can be uploaded one-by-one or in a tarball/zipfile.

View File

@@ -0,0 +1,33 @@
---
name: Caddy related bug report
about: Create a report to help us improve
---
**Are you asking for help with using Caddy or File Browser?**
Please use our forum instead: https://forum.caddyserver.com.
**When did you download File Browser from caddyserver.com?**
**What is your entire Caddyfile?**
```text
(Put Caddyfile here)
```
**Description**
A clear and concise description of what the issue is about. What are you trying to do?
**Expected behaviour**
What did you expect to happen?
**What is happening instead?**
Please, give full error messages and/or log.
**Additional context**
Add any other context about the problem here. If applicable, add screenshots to help explain your problem.
**How to reproduce?**
Tell us how to reproduce this issue. How can someone who is starting from scratch reproduce this behaviour as minimally as possible?
**Files**
A list of relevant files for this issue. Large files can be uploaded one-by-one or in a tarball/zipfile.

View File

@@ -0,0 +1,16 @@
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
Add a clear and concise description of what the problem is. E.g. *I'm always frustrated when [...]*
**Describe the solution you'd like**
Add a clear and concise description of what you want to happen.
**Describe alternatives you've considered**
Add a clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

16
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,16 @@
**Description**
Please explain the changes you made here.
If the feature changes current behaviour, explain why your solution is better.
:rotating_light: Before submitting your PR, please read [community](https://github.com/filebrowser/community), and indicate which issues (in any of the repos) are either fixed or closed by this PR. See [GitHub Help: Closing issues using keywords](https://help.github.com/articles/closing-issues-via-commit-messages/).
- [ ] DO make sure you are requesting to **pull a topic/feature/bugfix branch** (right side). Don't request your master!
- [ ] DO make sure you are making a pull request against the **master branch** (left side). Also you should start *your branch* off *our master*.
- [ ] DO make sure that File Browser can be successfully built. See [builds](https://github.com/filebrowser/community/blob/master/builds.md) and [development](https://github.com/filebrowser/community/blob/master/development.md).
- [ ] DO make sure that related issues are opened in other repositories. I.e., the frontend, caddy plugins or the web page need to be updated accordingly.
- [ ] AVOID breaking the continuous integration build.
**Further comments**
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did, what alternatives you considered, etc.
:heart: Thank you!

14
.gitignore vendored
View File

@@ -1,13 +1,15 @@
.DS_Store
node_modules/
*/dist/*
*.db
*.db.lock
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.idea
.vscode
package-lock.json
yarn.lock
Dockerfile
filebrowser
rice-box.go
vendor
npm-debug.log*
package-lock.json
yarn-debug.log*
yarn-error.log*
yarn.lock

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "frontend"]
path = frontend
url = https://github.com/filebrowser/frontend

38
.gometalinter.json Normal file
View File

@@ -0,0 +1,38 @@
{
"Enable": [
"deadcode",
"gotype",
"gotypex",
"ineffassign",
"interfacer",
"maligned",
"megacheck",
"structcheck",
"unconvert",
"varcheck",
"vet"
],
"Disable": [
"dupl",
"errcheck",
"gochecknoglobals",
"gochecknoinits",
"goconst",
"gocyclo",
"gofmt",
"goimports",
"golint",
"gosec",
"gosimple",
"lll",
"misspell",
"nakedret",
"safesql",
"staticcheck",
"test",
"testify",
"unparam",
"unused",
"vetshadow"
]
}

View File

@@ -1,4 +1,8 @@
project_name: filebrowser
build:
env:
- CGO_ENABLED=0
main: cmd/filebrowser/main.go
binary: filebrowser
goos:
@@ -37,3 +41,19 @@ archive:
format_overrides:
- goos: windows
format: zip
release:
disable: true
dockers:
-
goos: linux
goarch: amd64
goarm: ''
image: filebrowser/filebrowser
skip_push: true
tag_templates:
- "{{ .Tag }}"
- latest
extra_files:
- Docker.json

52
.travis.yml Normal file
View File

@@ -0,0 +1,52 @@
os: linux
services: docker
language: minimal
install: skip
addons:
apt:
packages:
- docker-ce
- pass
env:
global:
- USE_DOCKER="true"
- WDIR=/go/src/github.com/filebrowser/filebrowser
stages:
- lint
- test
- release
cache:
directories:
- vendor
- rice-box.go
jobs:
include:
- stage: lint
script: "./build/run_gometalinter.sh"
- stage: test
script: "./build/build_all.sh"
deploy:
provider: script
skip_cleanup: true
script: docker build -t filebrowser/filebrowser . && ./build/docker_login.sh && docker push filebrowser/filebrowser && docker logout
on:
tags: false
repo: filebrowser/filebrowser
branch: master
- stage: release
script:
- docker run --rm -itv $(pwd):$WDIR -v /var/run/docker.sock:/var/run/docker.sock filebrowser/dev goreleaser
- ./build/push_images.sh
- ./build/push_ricebox.sh
if: tag IS present
deploy:
provider: releases
skip_cleanup: true
api_key:
secure: GCURbl9xmjOmeNc7cYSvfSwbEp46cacWmJRczcsU6rQa0aWqzjELYdyIsl6HWW+o0dzuZvbWRD6muxYqIud92oPLYDuXSnra9tM3mCjswrjiPCJ57bksWkSPBfFQcxIyB6c3o+A/FMnX3nnSE/2r5HYZnPNFbEcBbC7WSgwx9ejXUuyWn1PUFK9YQWANdl6J7b7EKsk+9MxS9Pmw6M2ycBwX8ScUQdofkUPvR/nqlXISm+3hs30VubqQi9Ha6DM9Bw3aFK3/Ts/ujCOxP1ZoMCBZ6tfnaQOElIG96WTwnt77eDYlZezBOLym3Z18iif+Qny+XndFKDbexaiUT06VlWFXCKtt3iLs6HJwRcjmiHmB0Z3v+W4cKPl3cEyxxrU2aal54k1PBhU+5L0Xc8ileKbDMYg5tps88zWHNefeZVfaxYSVrmUHkuygMe481oaBLacDXTxs4t6XEpStREuLmvx9NLTwTFAbWjMNM0PqlueDMxO4bdwNvzXg/TcKLWV9FezqAlre8lFNZK5wX6lKFVSZ3hFjxCfwrJL2cPwg5A8Yd5EOC4Nh81WdgYuFGOxZzMAoSJlaVRvQS1trCUP/++ONnDep3ExSxvw4B7vijGZWeXUhrOMiPQHXu+t6BnrlnDjQ4gi44QTW0y/iM2WC2DBKfgYjAKwyHx13hFrmOCg=
file: "dist/*.*"
file_glob: true
on:
repo: filebrowser/filebrowser
all_branches: true
tags: true

View File

@@ -1,24 +1,12 @@
FROM golang:alpine
COPY . /go/src/github.com/filebrowser/filebrowser
WORKDIR /go/src/github.com/filebrowser/filebrowser
RUN apk add --no-cache git curl && \
curl -fsSL -o /usr/local/bin/dep https://github.com/golang/dep/releases/download/v0.4.1/dep-linux-amd64 && \
chmod +x /usr/local/bin/dep
RUN dep ensure -vendor-only
WORKDIR /go/src/github.com/filebrowser/filebrowser/cmd/filebrowser
RUN CGO_ENABLED=0 go build -a
RUN mv filebrowser /go/bin/filebrowser
FROM scratch
COPY --from=0 /go/bin/filebrowser /filebrowser
COPY --from=filebrowser/dev /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
VOLUME /tmp
VOLUME /srv
EXPOSE 80
COPY filebrowser /filebrowser
COPY Docker.json /config.json
ENTRYPOINT ["/filebrowser", "--config", "/config.json"]

6
Gopkg.lock generated
View File

@@ -214,6 +214,12 @@
revision = "c3beff4c2358b44d0493c7dda585e7db7ff28ae6"
version = "v1.7.6"
[[projects]]
branch = "master"
name = "github.com/maruel/natural"
packages = ["."]
revision = "dbcb3e2e8cf10eb839718ba666ef1e21b1c8b847"
[[projects]]
name = "github.com/mholt/archiver"
packages = ["."]

View File

@@ -61,6 +61,10 @@
name = "gopkg.in/natefinch/lumberjack.v2"
version = "2.1.0"
[[constraint]]
branch = "master"
name = "github.com/maruel/natural"
[[override]]
name = "github.com/russross/blackfriday"
version = "^1.0.0"

View File

@@ -1,5 +1,9 @@
**In Q2 2018, this project was renamed from `filemanager` to `filebrowser`, a new GitHub organization was created and the main repo was moved from [hacdias/filemanager](https://github.com/hacdias/filemanager) to [filebrowser/filebrowser](https://github.com/filebrowser/filebrowser). Old refs will work, because permanent redirects are set up. However, we suggest every contributor to update the remote URLs in their local clones. See [Changing a remote's URL](https://help.github.com/articles/changing-a-remote-s-url/).**
**Moreover, the previously unique repo was split into multiple pieces: frontend, logo, caddy... At the same time, the official docker image was changed to [`filebrowser/filebrowser`](https://hub.docker.com/r/filebrowser/filebrowser/). Users are encouraged to check their sources and update them accordingly.**
<p align="center">
<img src="logo/banner.png" width="550"/>
<img src="https://raw.githubusercontent.com/filebrowser/logo/master/banner.png" width="550"/>
</p>
![Preview](https://user-images.githubusercontent.com/5447088/28537288-39be4288-70a2-11e7-8ce9-0813d59f46b7.gif)
@@ -10,6 +14,7 @@
[![Go Report Card](https://goreportcard.com/badge/github.com/filebrowser/filebrowser?style=flat-square)](https://goreportcard.com/report/github.com/filebrowser/filebrowser)
[![Documentation](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](http://godoc.org/github.com/filebrowser/filebrowser)
[![Version](https://img.shields.io/github/release/filebrowser/filebrowser.svg?style=flat-square)](https://github.com/filebrowser/filebrowser/releases/latest)
[![Chat IRC](https://img.shields.io/badge/freenode-%23filebrowser-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23filebrowser)
filebrowser provides a file managing interface within a specified directory and it can be used to upload, delete, preview, rename and edit your files. It allows the creation of multiple users and each user can have its own directory. It can be used as a standalone app or as a middleware.
@@ -68,10 +73,10 @@ If you search for that it will look at every file that contains "this", "are" or
That will search for any file that contains "this is the name" on its name. It won't search for each separated term this time.
By default, every search will be case sensitive. Although, you can make a case insensitive search by adding `case:insensitive` to the search terms, like this:
By default, every search will be case insensitive. Although, you can make a case sensitive search by adding `case:sensitive` to the search terms, like this:
```
this are keywords case:insensitive
this are keywords case:sensitive
```
# Contributing

12
build/build.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -e
cd $(dirname $0)/..
dep ensure -vendor-only
cd cmd/filebrowser
CGO_ENABLED=0 go build -a
cd ../..
cp cmd/filebrowser/filebrowser ./

47
build/build_all.sh Executable file
View File

@@ -0,0 +1,47 @@
#!/bin/sh
set -e
cd $(dirname $0)/..
if [ -d "rice-box.go" ]; then
rm -rf rice-box.go
fi
if [ "$USE_DOCKER" != "" ]; then
if [ -d "frontend/dist" ]; then
rm -rf frontend/dist
fi;
if [ "$WDIR" = "" ]; then
WDIR="/go/src/github.com/filebrowser/filebrowser"
fi;
$(command -v winpty) docker run -it \
--name filebrowser-tmp \
-v /$(pwd):/src:z \
-w /${WDIR} \
filebrowser/dev \
sh -c "\
cp -r //src/* /$WDIR && \
cd build && \
dos2unix build_assets.sh && \
dos2unix build.sh && \
./build_assets.sh && \
./build.sh \
"
exitcode=$?
if [ $exitcode -eq 0 ]; then
for d in "dist/" "node_modules/"; do
docker cp filebrowser-tmp:/$WDIR/frontend/$d frontend
done
for d in "vendor/" "rice-box.go" "filebrowser"; do
docker cp filebrowser-tmp:/$WDIR/$d ./
done
fi
docker rm -f filebrowser-tmp
else
./build/build_assets.sh
./build/build.sh
fi

18
build.sh → build/build_assets.sh Normal file → Executable file
View File

@@ -1,14 +1,22 @@
#!/bin/bash
#!/bin/sh
set -e
cd $(dirname $0)/..
# Clean the dist folder and build the assets
cd frontend
if [ -d "dist" ]; then
rm -rf dist/*
fi;
yarn install
yarn build
cd ..
# Install rice tool if not present
if ! [ -x "$(command -v rice)" ]; then
go get github.com/GeertJohan/go.rice/rice
fi
# Clean the dist folder and build the assets
rm -rf node_modules
npm install
# Embed the assets using rice
rice embed-go

BIN
build/deploy_key.enc Normal file

Binary file not shown.

27
build/docker_login.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/bin/sh
set -e
# init key for pass
gpg --batch --gen-key <<-EOF
%echo Generating a standard key
Key-Type: DSA
Key-Length: 1024
Subkey-Type: ELG-E
Subkey-Length: 1024
Name-Real: Meshuggah Rocks
Name-Email: meshuggah@example.com
Expire-Date: 0
# Do a commit here, so that we can later print "done" :-)
%commit
%echo done
EOF
key=$(gpg --no-auto-check-trustdb --list-secret-keys | grep ^sec | cut -d/ -f2 | cut -d" " -f1)
pass init $key
if [ "$(command -v docker-credential-pass)" = "" ]; then
docker run --rm -itv /usr/local/bin:/src filebrowser/dev sh -c "cp /go/bin/docker-credential-pass /src"
fi
echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin

14
build/push_images.sh Executable file
View File

@@ -0,0 +1,14 @@
#! /bin/sh
set -e
cd $(dirname $0)
./docker_login.sh
for tag in `echo $(docker images filebrowser/filebrowser* | awk -F ' ' '{print $1 ":" $2}') | cut -d ' ' -f2-`; do
if [ "$tag" = "REPOSITORY:TAG" ]; then break; fi
docker push $tag
done
docker logout

36
build/push_ricebox.sh Executable file
View File

@@ -0,0 +1,36 @@
#!/bin/sh
set -e
cd $(dirname $0)
COMMIT_SHA="$(git rev-parse --verify HEAD | cut -c1-8)"
eval `ssh-agent -s`
openssl aes-256-cbc -K $encrypted_9ca81b5594f5_key -iv $encrypted_9ca81b5594f5_iv -in ./deploy_key.enc -d | ssh-add -
git clone git@github.com:filebrowser/caddy caddy
cd caddy
cp ../../rice-box.go assets/
git checkout -b update-rice-box origin/master
git commit -am "update rice-box $COMMIT_SHA"
if [ $(git tag | grep "$TRAVIS_TAG" | wc -l) -ne 0 ]; then
git tag -d "$TRAVIS_TAG"
fi
git tag "$TRAVIS_TAG"
if [ "$(git ls-remote --heads origin update-rice-box)" != "" ]; then
git push -u origin update-rice-box
else
git push origin +update-rice-box
fi
if [ "$(git ls-remote --heads origin update-rice-box)" != "" ]; then
git push origin "$TRAVIS_TAG"
else
git push origin :"$TRAVIS_TAG"
git push origin "$TRAVIS_TAG"
fi

55
build/release.sh Executable file
View File

@@ -0,0 +1,55 @@
#!/bin/bash
set -e
cd $(dirname $0)/..
echo "> Checking semver format"
if [ $# -ne 1 ]; then
echo "This release script requires a single argument corresponding to the semver to be released. See semver.org"
exit 1
fi
semver=$(grep -P '^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)' <<< "$1")
if [ $? -ne 0 ]; then
echo "Not valid semver format. See semver.org"
exit 1
fi
echo "> Checking matching $semver in frontend submodule"
cd frontend
git fetch --all
if [ $(git tag | grep "$semver" | wc -l) -eq 0 ]; then
echo "Tag $semver does not exist in submodule 'frontend'. Tag it and run this script again."
exit 1
fi
git rev-parse --verify --quiet release
if [ $? -ne 0 ]; then
git checkout -b release "$semver"
else
git checkout release
git reset --hard "$semver"
fi
cd ..
echo "> Updating submodule ref to $semver"
sed -i "s|(untracked)|$1|g" filebrowser.go
git commit -am "chore: version $semver"
git tag "$1"
git push
git push --tags
echo "> Commiting untracked version notice..."
sed -i "s|$1|(untracked)|g" filebrowser.go
git commit -am "chore: setting untracked version [ci skip]"
git push
echo "> Done!"

15
build/run_gometalinter.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/sh
set -e
cd $(dirname $0)/..
dolint='gometalinter --exclude="rice-box.go" --exclude="vendor" --deadline=300s ./...'
if [ "$USE_DOCKER" != "" ]; then
docker run --rm -itv $(pwd):/src filebrowser/dev sh -c "\
cp -r /src/. ./ && dep ensure -v -vendor-only && \
CGO_ENABLED=0 $dolint"
else
$dolint
fi

View File

@@ -1,52 +0,0 @@
package filemanager
import (
"net/http"
"github.com/filebrowser/filebrowser"
"github.com/filebrowser/filebrowser/caddy/parser"
h "github.com/filebrowser/filebrowser/http"
"github.com/mholt/caddy"
"github.com/mholt/caddy/caddyhttp/httpserver"
)
func init() {
caddy.RegisterPlugin("filemanager", caddy.Plugin{
ServerType: "http",
Action: setup,
})
}
type plugin struct {
Next httpserver.Handler
Configs []*filebrowser.FileBrowser
}
// ServeHTTP determines if the request is for this plugin, and if all prerequisites are met.
func (f plugin) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error) {
for i := range f.Configs {
// Checks if this Path should be handled by File Manager.
if !httpserver.Path(r.URL.Path).Matches(f.Configs[i].BaseURL) {
continue
}
h.Handler(f.Configs[i]).ServeHTTP(w, r)
return 0, nil
}
return f.Next.ServeHTTP(w, r)
}
// setup configures a new FileManager middleware instance.
func setup(c *caddy.Controller) error {
configs, err := parser.Parse(c, "")
if err != nil {
return err
}
httpserver.GetConfig(c).AddMiddleware(func(next httpserver.Handler) httpserver.Handler {
return plugin{Configs: configs, Next: next}
})
return nil
}

View File

@@ -1,52 +0,0 @@
package hugo
import (
"net/http"
"github.com/filebrowser/filebrowser"
"github.com/filebrowser/filebrowser/caddy/parser"
h "github.com/filebrowser/filebrowser/http"
"github.com/mholt/caddy"
"github.com/mholt/caddy/caddyhttp/httpserver"
)
func init() {
caddy.RegisterPlugin("hugo", caddy.Plugin{
ServerType: "http",
Action: setup,
})
}
type plugin struct {
Next httpserver.Handler
Configs []*filebrowser.FileBrowser
}
// ServeHTTP determines if the request is for this plugin, and if all prerequisites are met.
func (f plugin) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error) {
for i := range f.Configs {
// Checks if this Path should be handled by File Manager.
if !httpserver.Path(r.URL.Path).Matches(f.Configs[i].BaseURL) {
continue
}
h.Handler(f.Configs[i]).ServeHTTP(w, r)
return 0, nil
}
return f.Next.ServeHTTP(w, r)
}
// setup configures a new FileManager middleware instance.
func setup(c *caddy.Controller) error {
configs, err := parser.Parse(c, "hugo")
if err != nil {
return err
}
httpserver.GetConfig(c).AddMiddleware(func(next httpserver.Handler) httpserver.Handler {
return plugin{Configs: configs, Next: next}
})
return nil
}

View File

@@ -1,52 +0,0 @@
package jekyll
import (
"net/http"
"github.com/filebrowser/filebrowser"
"github.com/filebrowser/filebrowser/caddy/parser"
h "github.com/filebrowser/filebrowser/http"
"github.com/mholt/caddy"
"github.com/mholt/caddy/caddyhttp/httpserver"
)
func init() {
caddy.RegisterPlugin("jekyll", caddy.Plugin{
ServerType: "http",
Action: setup,
})
}
type plugin struct {
Next httpserver.Handler
Configs []*filebrowser.FileBrowser
}
// ServeHTTP determines if the request is for this plugin, and if all prerequisites are met.
func (f plugin) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error) {
for i := range f.Configs {
// Checks if this Path should be handled by File Manager.
if !httpserver.Path(r.URL.Path).Matches(f.Configs[i].BaseURL) {
continue
}
h.Handler(f.Configs[i]).ServeHTTP(w, r)
return 0, nil
}
return f.Next.ServeHTTP(w, r)
}
// setup configures a new FileManager middleware instance.
func setup(c *caddy.Controller) error {
configs, err := parser.Parse(c, "jekyll")
if err != nil {
return err
}
httpserver.GetConfig(c).AddMiddleware(func(next httpserver.Handler) httpserver.Handler {
return plugin{Configs: configs, Next: next}
})
return nil
}

View File

@@ -1,308 +0,0 @@
package parser
import (
"crypto/md5"
"encoding/hex"
"fmt"
"io/ioutil"
"os"
"path/filepath"
"strconv"
"strings"
"github.com/asdine/storm"
"github.com/filebrowser/filebrowser"
"github.com/filebrowser/filebrowser/bolt"
"github.com/filebrowser/filebrowser/staticgen"
"github.com/hacdias/fileutils"
"github.com/mholt/caddy"
"github.com/mholt/caddy/caddyhttp/httpserver"
)
var databases = map[string]*storm.DB{}
// Parse ...
func Parse(c *caddy.Controller, plugin string) ([]*filebrowser.FileBrowser, error) {
var (
configs []*filebrowser.FileBrowser
err error
)
for c.Next() {
u := &filebrowser.User{
Locale: "en",
AllowCommands: true,
AllowEdit: true,
AllowNew: true,
AllowPublish: true,
Commands: []string{"git", "svn", "hg"},
CSS: "",
ViewMode: "mosaic",
Rules: []*filebrowser.Rule{},
}
baseURL := "/"
scope := "."
database := ""
noAuth := false
alterRecaptcha := false
reCaptchaKey := ""
reCaptchaSecret := ""
if plugin != "" {
baseURL = "/admin"
}
// Get the baseURL and scope
args := c.RemainingArgs()
if plugin == "" {
if len(args) >= 1 {
baseURL = args[0]
}
if len(args) > 1 {
scope = args[1]
}
} else {
if len(args) >= 1 {
scope = args[0]
}
if len(args) > 1 {
baseURL = args[1]
}
}
for c.NextBlock() {
switch c.Val() {
case "database":
if !c.NextArg() {
return nil, c.ArgErr()
}
database = c.Val()
case "locale":
if !c.NextArg() {
return nil, c.ArgErr()
}
u.Locale = c.Val()
case "allow_commands":
if !c.NextArg() {
u.AllowCommands = true
continue
}
u.AllowCommands, err = strconv.ParseBool(c.Val())
if err != nil {
return nil, err
}
case "allow_edit":
if !c.NextArg() {
u.AllowEdit = true
continue
}
u.AllowEdit, err = strconv.ParseBool(c.Val())
if err != nil {
return nil, err
}
case "allow_new":
if !c.NextArg() {
u.AllowNew = true
continue
}
u.AllowNew, err = strconv.ParseBool(c.Val())
if err != nil {
return nil, err
}
case "allow_publish":
if !c.NextArg() {
u.AllowPublish = true
continue
}
u.AllowPublish, err = strconv.ParseBool(c.Val())
if err != nil {
return nil, err
}
case "commands":
if !c.NextArg() {
return nil, c.ArgErr()
}
u.Commands = strings.Split(c.Val(), " ")
case "css":
if !c.NextArg() {
return nil, c.ArgErr()
}
file := c.Val()
css, err := ioutil.ReadFile(file)
if err != nil {
return nil, err
}
u.CSS = string(css)
case "view_mode":
if !c.NextArg() {
return nil, c.ArgErr()
}
u.ViewMode = c.Val()
if u.ViewMode != filebrowser.MosaicViewMode && u.ViewMode != filebrowser.ListViewMode {
return nil, c.ArgErr()
}
case "alternative_recaptcha":
if !c.NextArg() {
alterRecaptcha = true
continue
}
alterRecaptcha, err = strconv.ParseBool(c.Val())
if err != nil {
return nil, err
}
case "recaptcha_key":
if !c.NextArg() {
return nil, c.ArgErr()
}
reCaptchaKey = c.Val()
case "recaptcha_secret":
if !c.NextArg() {
return nil, c.ArgErr()
}
reCaptchaSecret = c.Val()
case "no_auth":
if !c.NextArg() {
noAuth = true
continue
}
noAuth, err = strconv.ParseBool(c.Val())
if err != nil {
return nil, err
}
}
}
caddyConf := httpserver.GetConfig(c)
path := filepath.Join(caddy.AssetsPath(), "filemanager")
err := os.MkdirAll(path, 0700)
if err != nil {
return nil, err
}
// if there is a database path and it is not absolute,
// it will be relative to Caddy folder.
if !filepath.IsAbs(database) && database != "" {
database = filepath.Join(path, database)
}
// If there is no database path on the settings,
// store one in .caddy/filemanager/name.db.
if database == "" {
// The name of the database is the hashed value of a string composed
// by the host, address path and the baseurl of this File Manager
// instance.
hasher := md5.New()
hasher.Write([]byte(caddyConf.Addr.Host + caddyConf.Addr.Path + baseURL))
sha := hex.EncodeToString(hasher.Sum(nil))
database = filepath.Join(path, sha+".db")
fmt.Println("[WARNING] A database is going to be created for your File Manager instance at " + database +
". It is highly recommended that you set the 'database' option to '" + sha + ".db'\n")
}
u.Scope = scope
u.FileSystem = fileutils.Dir(scope)
var db *storm.DB
if stored, ok := databases[database]; ok {
db = stored
} else {
db, err = storm.Open(database)
databases[database] = db
}
if err != nil {
return nil, err
}
recaptchaHost := "https://www.google.com"
if alterRecaptcha {
recaptchaHost = "https://recaptcha.net"
}
m := &filebrowser.FileBrowser{
NoAuth: noAuth,
BaseURL: "",
PrefixURL: "",
ReCaptchaHost: recaptchaHost,
ReCaptchaKey: reCaptchaKey,
ReCaptchaSecret: reCaptchaSecret,
DefaultUser: u,
Store: &filebrowser.Store{
Config: bolt.ConfigStore{DB: db},
Users: bolt.UsersStore{DB: db},
Share: bolt.ShareStore{DB: db},
},
NewFS: func(scope string) filebrowser.FileSystem {
return fileutils.Dir(scope)
},
}
err = m.Setup()
if err != nil {
return nil, err
}
switch plugin {
case "hugo":
// Initialize the default settings for Hugo.
hugo := &staticgen.Hugo{
Root: scope,
Public: filepath.Join(scope, "public"),
Args: []string{},
CleanPublic: true,
}
// Attaches Hugo plugin to this file manager instance.
err = m.Attach(hugo)
if err != nil {
return nil, err
}
case "jekyll":
// Initialize the default settings for Jekyll.
jekyll := &staticgen.Jekyll{
Root: scope,
Public: filepath.Join(scope, "_site"),
Args: []string{},
CleanPublic: true,
}
// Attaches Hugo plugin to this file manager instance.
err = m.Attach(jekyll)
if err != nil {
return nil, err
}
}
if err != nil {
return nil, err
}
m.NoAuth = noAuth
m.SetBaseURL(baseURL)
m.SetPrefixURL(strings.TrimSuffix(caddyConf.Addr.Path, "/"))
configs = append(configs, m)
}
return configs, nil
}

View File

@@ -2,18 +2,7 @@ package main
import (
"fmt"
"io/ioutil"
"log"
"net"
"net/http"
"os"
"path/filepath"
"strings"
"github.com/asdine/storm"
"gopkg.in/natefinch/lumberjack.v2"
"github.com/filebrowser/filebrowser"
"github.com/filebrowser/filebrowser/bolt"
h "github.com/filebrowser/filebrowser/http"
@@ -21,7 +10,14 @@ import (
"github.com/hacdias/fileutils"
flag "github.com/spf13/pflag"
"github.com/spf13/viper"
)
"gopkg.in/natefinch/lumberjack.v2"
"io/ioutil"
"log"
"net"
"net/http"
"os"
"path/filepath"
"strings")
var (
addr string
@@ -38,13 +34,17 @@ var (
recaptchakey string
recaptchasecret string
port int
noAuth bool
allowCommands bool
allowEdit bool
allowNew bool
allowPublish bool
showVer bool
alterRecaptcha bool
auth struct {
method string
loginHeader string
}
noAuth bool
allowCommands bool
allowEdit bool
allowNew bool
allowPublish bool
showVer bool
alterRecaptcha bool
)
func init() {
@@ -63,6 +63,8 @@ func init() {
flag.BoolVar(&allowCommands, "allow-commands", true, "Default allow commands option for new users")
flag.BoolVar(&allowEdit, "allow-edit", true, "Default allow edit option for new users")
flag.BoolVar(&allowPublish, "allow-publish", true, "Default allow publish option for new users")
flag.StringVar(&auth.method, "auth.method", "default", "Switch between 'none', 'default' and 'proxy' authentication.")
flag.StringVar(&auth.loginHeader, "auth.loginHeader", "X-Forwarded-User", "The header name used for proxy authentication.")
flag.BoolVar(&allowNew, "allow-new", true, "Default allow new option for new users")
flag.BoolVar(&noAuth, "no-auth", false, "Disables authentication")
flag.BoolVar(&alterRecaptcha, "alternative-recaptcha", false, "Use recaptcha.net for serving and handling, useful in China")
@@ -84,6 +86,8 @@ func setupViper() {
viper.SetDefault("AllowPublish", true)
viper.SetDefault("StaticGen", "")
viper.SetDefault("Locale", "")
viper.SetDefault("AuthMethod", "default")
viper.SetDefault("LoginHeader", "X-Fowarded-User")
viper.SetDefault("NoAuth", false)
viper.SetDefault("BaseURL", "")
viper.SetDefault("PrefixURL", "")
@@ -104,6 +108,8 @@ func setupViper() {
viper.BindPFlag("AllowPublish", flag.Lookup("allow-publish"))
viper.BindPFlag("Locale", flag.Lookup("locale"))
viper.BindPFlag("StaticGen", flag.Lookup("staticgen"))
viper.BindPFlag("AuthMethod", flag.Lookup("auth.method"))
viper.BindPFlag("LoginHeader", flag.Lookup("auth.loginHeader"))
viper.BindPFlag("NoAuth", flag.Lookup("no-auth"))
viper.BindPFlag("BaseURL", flag.Lookup("baseurl"))
viper.BindPFlag("PrefixURL", flag.Lookup("prefixurl"))
@@ -168,6 +174,18 @@ func main() {
})
}
// Validate the provided config before moving forward
if viper.GetString("AuthMethod") != "none" && viper.GetString("AuthMethod") != "default" && viper.GetString("AuthMethod") != "proxy" {
log.Fatal("The property 'auth.method' needs to be set to 'default' or 'proxy'.")
}
if viper.GetString("AuthMethod") == "proxy" {
if viper.GetString("LoginHeader") == "" {
log.Fatal("The 'loginHeader' needs to be specified when 'proxy' authentication is used.")
}
log.Println("[WARN] Filebrowser authentication is configured to 'proxy' authentication. This can cause a huge security issue if the infrastructure is not configured correctly.")
}
// Builds the address and a listener.
laddr := viper.GetString("Address") + ":" + viper.GetString("Port")
listener, err := net.Listen("tcp", laddr)
@@ -196,6 +214,8 @@ func handler() http.Handler {
}
fm := &filebrowser.FileBrowser{
AuthMethod: viper.GetString("AuthMethod"),
LoginHeader: viper.GetString("LoginHeader"),
NoAuth: viper.GetBool("NoAuth"),
BaseURL: viper.GetString("BaseURL"),
PrefixURL: viper.GetString("PrefixURL"),

4
doc.go
View File

@@ -16,6 +16,10 @@ to import "github.com/filebrowser/filebrowser/bolt".
m := &fm.FileBrowser{
NoAuth: false,
Auth: {
Method: "default",
LoginHeader: "X-Fowarded-User"
},
DefaultUser: &fm.User{
AllowCommands: true,
AllowEdit: true,

View File

@@ -20,6 +20,7 @@ import (
"time"
"github.com/gohugoio/hugo/parser"
"github.com/maruel/natural"
)
// File contains the information about a particular file or directory.
@@ -372,7 +373,7 @@ func (l byName) Less(i, j int) bool {
return false
}
return strings.ToLower(l.Items[i].Name) < strings.ToLower(l.Items[j].Name)
return natural.Less(l.Items[i].Name, l.Items[j].Name)
}
// By Size

View File

@@ -23,7 +23,7 @@ import (
const (
// Version is the current File Browser version.
Version = "1.9.0"
Version = "v1.10.0"
ListViewMode = "list"
MosaicViewMode = "mosaic"
@@ -71,6 +71,16 @@ type FileBrowser struct {
// there will only exist one user, called "admin".
NoAuth bool
// Define if which of the following authentication mechansims should be used:
// - 'default', which requires a user and a password.
// - 'proxy', which requires a valid user and the user name has to be provided through an
// http header.
// - 'none', which allows anyone to access the filebrowser instance.
AuthMethod string
// When 'AuthMethod' is set to 'proxy' the header configured below is used to identify the user.
LoginHeader string
// ReCaptcha host, key and secret.
ReCaptchaHost string
ReCaptchaKey string
@@ -119,7 +129,7 @@ type FSBuilder func(scope string) FileSystem
func (m *FileBrowser) Setup() error {
// Creates a new File Browser instance with the Users
// map and Assets box.
m.Assets = rice.MustFindBox("./node_modules/filebrowser-frontend/dist")
m.Assets = rice.MustFindBox("./frontend/dist")
m.Cron = cron.New()
// Tries to get the encryption key from the database.

1
frontend Submodule

Submodule frontend added at 99740e3eab

View File

@@ -51,20 +51,32 @@ func reCaptcha(host, secret, response string) (bool, error) {
// authHandler processes the authentication for the user.
func authHandler(c *fb.Context, w http.ResponseWriter, r *http.Request) (int, error) {
// NoAuth instances shouldn't call this method.
if c.NoAuth {
// NoAuth instances shouldn't call this method.
return 0, nil
}
if c.AuthMethod == "proxy" {
// Receive the Username from the Header and check if it exists.
u, err := c.Store.Users.GetByUsername(r.Header.Get(c.LoginHeader), c.NewFS)
if err != nil {
return http.StatusForbidden, nil
}
c.User = u
return printToken(c, w)
}
// Receive the credentials from the request and unmarshal them.
var cred cred
if r.Body == nil {
return http.StatusForbidden, nil
}
err := json.NewDecoder(r.Body).Decode(&cred)
if err != nil {
return http.StatusForbidden, nil
return http.StatusForbidden, err
}
// If ReCaptcha is enabled, check the code.
@@ -171,6 +183,16 @@ func validateAuth(c *fb.Context, r *http.Request) (bool, *fb.User) {
return true, c.User
}
// If proxy auth is used do not verify the JWT token if the header is provided.
if c.AuthMethod == "proxy" {
u, err := c.Store.Users.GetByUsername(r.Header.Get(c.LoginHeader), c.NewFS)
if err != nil {
return false, nil
}
c.User = u
return true, c.User
}
keyFunc := func(token *jwt.Token) (interface{}, error) {
return c.Key, nil
}

View File

@@ -79,11 +79,10 @@ func downloadHandler(c *fb.Context, w http.ResponseWriter, r *http.Request) (int
func downloadFileHandler(c *fb.Context, w http.ResponseWriter, r *http.Request) (int, error) {
file, err := os.Open(c.File.Path)
defer file.Close()
if err != nil {
return http.StatusInternalServerError, err
}
defer file.Close()
stat, err := file.Stat()
if err != nil {

View File

@@ -137,7 +137,7 @@ func apiHandler(c *fb.Context, w http.ResponseWriter, r *http.Request) (int, err
}
}
if c.Router == "checksum" || c.Router == "download" {
if c.Router == "checksum" || c.Router == "download" || c.Router == "subtitle" || c.Router == "subtitles" {
var err error
c.File, err = fb.GetInfo(r.URL, c.FileBrowser, c.User)
if err != nil {
@@ -165,6 +165,10 @@ func apiHandler(c *fb.Context, w http.ResponseWriter, r *http.Request) (int, err
code, err = settingsHandler(c, w, r)
case "share":
code, err = shareHandler(c, w, r)
case "subtitles":
code, err = subtitlesHandler(c, w, r)
case "subtitle":
code, err = subtitleHandler(c, w, r)
default:
code = http.StatusNotFound
}

83
http/subtitle.go Normal file
View File

@@ -0,0 +1,83 @@
package http
import (
"bytes"
"io/ioutil"
"net/http"
"os"
"path/filepath"
"regexp"
fb "github.com/filebrowser/filebrowser"
)
func subtitlesHandler(c *fb.Context, w http.ResponseWriter, r *http.Request) (int, error) {
files, err := ReadDir(filepath.Dir(c.File.Path))
if err != nil {
return http.StatusInternalServerError, err
}
var subtitles = make([]map[string]string, 0)
for _, file := range files {
ext := filepath.Ext(file.Name())
if ext == ".vtt" || ext == ".srt" {
var sub map[string]string = make(map[string]string)
sub["src"] = filepath.Dir(c.File.Path) + "/" + file.Name()
sub["kind"] = "subtitles"
sub["label"] = file.Name()
subtitles = append(subtitles, sub)
}
}
return renderJSON(w, subtitles)
}
func subtitleHandler(c *fb.Context, w http.ResponseWriter, r *http.Request) (int, error) {
str, err := CleanSubtitle(c.File.Path)
if err != nil {
return http.StatusInternalServerError, err
}
file, err := os.Open(c.File.Path)
if err != nil {
return http.StatusInternalServerError, err
}
defer file.Close()
stat, err := file.Stat()
if err != nil {
return http.StatusInternalServerError, err
}
w.Header().Set("Content-Disposition", "inline")
w.Header().Set("Content-Type", "text/vtt")
http.ServeContent(w, r, stat.Name(), stat.ModTime(), bytes.NewReader([]byte(str)))
return 0, nil
}
func CleanSubtitle(filename string) (string, error) {
b, err := ioutil.ReadFile(filename)
if err != nil {
return "", err
}
str := string(b) // convert content to a 'string'
ext := filepath.Ext(filename)
if ext == ".srt" {
re := regexp.MustCompile("([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3})")
str = "WEBVTT\n\n" + re.ReplaceAllString(str, "$1.$2")
}
return str, err
}
func ReadDir(dirname string) ([]os.FileInfo, error) {
f, err := os.Open(dirname)
if err != nil {
return nil, err
}
list, err := f.Readdir(-1)
f.Close()
if err != nil {
return nil, err
}
return list, nil
}

Binary file not shown.

View File

@@ -1 +0,0 @@
c3bb28b9b6b54478b7bf3e2b740c508d678bd3e7

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -1,267 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Creator: CorelDRAW X7 -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xml:space="preserve"
width="2486.4797"
height="516"
version="1.1"
style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
viewBox="0 0 2486.4797 516"
id="svg3941"
sodipodi:docname="banner.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
inkscape:export-filename="/home/umarcor/filebrowser/logo/banner.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"><metadata
id="metadata3945"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="711"
id="namedview3943"
showgrid="false"
inkscape:zoom="0.29623288"
inkscape:cx="1341.9549"
inkscape:cy="202.9058"
inkscape:window-x="0"
inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_x0020_1" />
<defs
id="defs3896">
<font
id="FontID0"
horiz-adv-x="720"
font-variant="normal"
font-weight="700"
horiz-origin-x="0"
horiz-origin-y="0"
vert-origin-x="45"
vert-origin-y="90"
vert-adv-y="90">
<font-face
font-family="Ubuntu"
id="font-face3849">
</font-face>
<missing-glyph
id="missing-glyph3853"><path
d="M0 0z"
id="path3851" /></missing-glyph>
<glyph
unicode="w"
horiz-adv-x="783"
id="glyph3857"><path
d="M390.501 302.001c-13.3347,-50.6667 -27.4991,-101.001 -42.5007,-151.002 -15.0016,-49.9978 -30.8328,-100.332 -47.5012,-150.999l-115.999 0c-12.0005,27.9999 -24.9989,61.333 -39.167,99.9993 -14,38.6662 -28.5007,80.8343 -43.4986,126.501 -15.166,45.6662 -30.5002,94.0009 -46.167,145 -15.6668,50.9994 -31.001,102.5 -45.6662,154.5l157.001 0c5.33314,-24.001 11.1634,-50.1659 17.6663,-78.5022 6.33101,-28.3326 12.9984,-57.4985 19.9984,-87.4979 7.16816,-29.9994 14.5008,-60.167 22.166,-90.499 7.66896,-30.3358 15.6668,-59.5017 23.6684,-87.5017 8.66683,29.3342 17.1655,59.3336 25.4997,90.0019 8.33421,30.6646 16.3321,60.8322 24.001,90.499 7.66523,29.6668 14.9978,58.332 21.9978,85.9993 6.99999,27.6673 13.1665,53.4996 18.4997,77.5006l108.001 0c5.33314,-24.001 11.3353,-49.8333 17.9989,-77.5006 6.66736,-27.6673 13.6673,-56.3325 21,-85.9993 7.33634,-29.6668 15.0016,-59.8344 23.0032,-90.499 7.99785,-30.6684 16.3321,-60.6678 24.9989,-90.0019 7.99785,27.9999 16.1676,57.1659 24.1655,87.5017 8.00158,30.332 15.4986,60.4996 22.6668,90.499 6.99999,29.9994 13.6673,59.1654 20.0021,87.4979 6.49919,28.3363 12.3331,54.5012 17.6663,78.5022l154.998 0c-14.6652,-52.001 -29.9994,-103.501 -45.6662,-154.5 -15.6668,-50.9994 -31.001,-99.334 -46.167,-145 -14.9978,-45.6662 -29.6668,-87.8343 -43.9994,-126.501 -14.5008,-38.6662 -27.6673,-71.9993 -39.6678,-99.9993l-115.999 0c-16.6647,50.6667 -33.0005,101.001 -48.9999,150.999 -15.9994,50.0015 -30.6684,100.336 -43.9994,151.002z"
id="path3855" /></glyph>
<glyph
unicode="F"
horiz-adv-x="573"
id="glyph3861"><path
d="M80.0009 0l0 692.999 463.998 0 0 -131 -307.999 0 0 -144.996 274.001 0 0 -131 -274.001 0 0 -286.002 -155.999 0z"
id="path3859" /></glyph>
<glyph
unicode="e"
horiz-adv-x="583"
id="glyph3865"><path
d="M45.001 258.999c0,46.6678 7.16443,87.5017 21.5008,122.502 14.3326,34.9999 33.1649,64.1659 56.4969,87.4979 23.3358,23.3358 50.1697,41.002 80.5017,53.0026 30.332,11.9968 61.5012,17.9989 93.5001,17.9989 74.6678,0 133.665,-22.835 176.999,-68.5012 43.3341,-45.6662 64.9993,-112.833 64.9993,-201.501 0,-8.66683 -0.332621,-18.1633 -0.997862,-28.497 -0.668979,-10.3337 -1.33422,-19.5013 -1.99946,-27.5029l-338.002 0c3.33368,-30.6646 17.6663,-54.9983 43.0015,-72.9972 25.3315,-18.0026 59.3336,-27.0021 101.999,-27.0021 27.3347,0 54.1686,2.50026 80.5017,7.50078 26.3331,5.00052 47.8339,11.1671 64.4985,18.4997l20.0021 -120.999c-8.00158,-3.99892 -18.6679,-8.00158 -32.0026,-12.0005 -13.331,-3.99892 -28.1644,-7.50078 -44.5002,-10.5018 -16.3321,-2.99732 -33.8339,-5.49759 -52.498,-7.49705 -18.6679,-1.99946 -37.3357,-3.00106 -55.9999,-3.00106 -47.3331,0 -88.4995,6.99999 -123.499,21 -34.9999,14 -64.0015,33.1649 -87.0009,57.4985 -22.9994,24.3336 -40.0004,53.167 -50.9994,86.5001 -11.0026,33.3331 -16.5002,69.3346 -16.5002,108.001zm349.999 57.0015c-0.665242,12.6657 -2.83288,24.9989 -6.49919,36.9994 -3.6663,12.0005 -9.3358,22.6668 -17.001,31.9989 -7.66523,9.3358 -17.3337,17.001 -29.0015,22.9994 -11.6642,6.00212 -26.1649,9.00318 -43.4986,9.00318 -16.6684,0 -31.001,-2.83662 -43.0015,-8.50238 -11.9968,-5.66576 -21.9978,-13.1665 -29.9994,-22.4986 -7.99785,-9.3358 -14.1644,-20.1665 -18.4997,-32.4997 -4.33154,-12.3331 -7.50078,-24.8344 -9.50025,-37.5002l197.001 0z"
id="path3863" /></glyph>
<glyph
unicode="s"
horiz-adv-x="484"
id="glyph3869"><path
d="M220.998 106.999c27.3347,0 46.6678,2.66844 58.0031,8.00158 11.3315,5.33314 16.9973,15.6668 16.9973,31.001 0,11.9968 -7.33261,22.4986 -21.9978,31.4981 -14.6689,8.99945 -36.9994,19.1649 -67.0025,30.5002 -23.332,8.66683 -44.5002,17.6663 -63.4969,26.9983 -19.0005,9.3358 -35.1681,20.5029 -48.5028,33.5013 -13.331,13.0021 -23.6647,28.5007 -30.9973,46.4996 -7.33634,17.9989 -11.0026,39.6678 -11.0026,64.9993 0,49.3363 18.3353,88.3351 55.002,117 36.6668,28.6689 87.0009,43.0015 150.999,43.0015 31.9989,0 62.6672,-2.83288 92.0014,-8.49865 29.3342,-5.6695 52.6662,-11.8361 69.9999,-18.5034l-26.0005 -115.999c-17.3337,6.00212 -36.166,11.3353 -56.5007,15.9994 -20.3347,4.6679 -43.166,6.99999 -68.5012,6.99999 -46.6641,0 -69.9999,-12.9984 -69.9999,-38.9988 0,-5.99839 1.0016,-11.3353 3.00106,-15.9994 1.99946,-4.6679 6.00212,-9.16763 12.0005,-13.4992 5.99839,-4.33528 14.1681,-9.00318 24.4981,-14 10.3337,-5.1687 23.5002,-10.67 39.5034,-16.6684 32.6641,-12.1649 59.6662,-24.001 80.9988,-35.8333 21.3326,-11.6679 38.1654,-24.4981 50.4986,-38.001 12.3331,-13.6673 21,-28.8334 26.0005,-45.498 5.00052,-16.6684 7.50078,-35.8333 7.50078,-57.8349 0,-51.8328 -19.5013,-91.1642 -58.5001,-117.834 -38.9988,-26.4975 -94.1653,-39.8323 -165.499,-39.8323 -46.6678,0 -85.5022,3.99892 -116.499,12.0005 -31.001,7.99785 -52.5018,14.6652 -64.5023,19.9984l25.0026 121.003c25.3315,-10.001 51.332,-17.8345 77.9977,-23.5002 26.6657,-5.6695 53.0026,-8.50238 78.9993,-8.50238z"
id="path3867" /></glyph>
<glyph
unicode="B"
horiz-adv-x="671"
id="glyph3873"><path
d="M311 -8.99945c-38.001,0 -75.8338,1.16604 -113.502,3.49812 -37.6646,2.33582 -76.8317,7.83341 -117.497,16.5002l0 672.002c31.9989,5.99839 66.9988,10.4981 105,13.4992 38.001,3.00106 73.3335,4.49972 105.998,4.49972 44.0031,0 84.5006,-3.1655 121.5,-9.50025 37.0031,-6.33474 68.8338,-17.1655 95.5033,-32.4997 26.6657,-15.3342 47.4975,-35.5007 62.4991,-60.4996 14.9978,-24.9989 22.4986,-55.8354 22.4986,-92.5022 0,-55.3309 -26.6657,-98.9977 -80.0009,-130.997 44.0031,-16.6684 74.0025,-39.3352 90.0019,-68.0004 15.9994,-28.6689 24.001,-61.0004 24.001,-97.0019 0,-72.6646 -26.5013,-127.334 -79.5001,-164.001 -53.0026,-36.6668 -131.834,-54.9983 -236.501,-54.9983zm-78.9993 311l0 -179.002c11.3315,-1.33048 23.6647,-2.33208 36.9994,-2.99732 13.331,-0.668979 27.9999,-1.0016 43.9994,-1.0016 46.6678,0 84.3324,6.66736 113.001,20.0021 28.6652,13.331 42.9978,37.9972 42.9978,73.9988 0,31.9989 -12.0005,54.8338 -35.9978,68.5012 -24.001,13.6636 -58.3357,20.4992 -103,20.4992l-97.9998 0zm0 119l75.9982 0c48.002,0 82.333,6.16656 103,18.4997 20.6673,12.3331 31.001,32.167 31.001,59.498 0,27.9999 -10.6663,47.6694 -31.9989,59.0009 -21.3363,11.3353 -52.6699,17.001 -94.0009,17.001 -13.3347,0 -27.6673,-0.168179 -43.0015,-0.5008 -15.3342,-0.332621 -28.9978,-1.16604 -40.9983,-2.50026l0 -150.999z"
id="path3871" /></glyph>
<glyph
unicode=" "
horiz-adv-x="239"
id="glyph3875" />
<glyph
unicode="r"
horiz-adv-x="421"
id="glyph3879"><path
d="M386.999 393.999c-13.331,3.33368 -28.9978,6.83554 -47.0004,10.5018 -17.9989,3.6663 -37.332,5.50132 -57.9993,5.50132 -9.33207,0 -20.4992,-0.833421 -33.4975,-2.50026 -13.0021,-1.66684 -22.835,-3.50186 -29.5023,-5.50132l0 -402 -148.999 0 0 498.001c26.6657,9.33207 58.1675,18.1671 94.5017,26.5013 36.3304,8.33047 76.8317,12.4976 121.5,12.4976 7.99785,0 17.6663,-0.5008 28.9978,-1.49866 11.3353,-1.0016 22.6668,-2.33582 34.0021,-3.99892 11.3315,-1.66684 22.6668,-3.67004 33.9983,-6.00212 11.3353,-2.33208 21,-5.16496 29.0015,-8.49865l-25.0026 -123.002z"
id="path3877" /></glyph>
<glyph
unicode="o"
horiz-adv-x="606"
id="glyph3883"><path
d="M561.998 264c0,-41.3347 -5.99839,-79.1675 -17.9989,-113.498 -12.0005,-34.3347 -29.3342,-63.6688 -52.001,-88.0025 -22.6668,-24.3336 -49.8333,-43.166 -81.4996,-56.5007 -31.6662,-13.331 -67.167,-19.9984 -106.498,-19.9984 -38.6662,0 -73.8343,6.66736 -105.501,19.9984 -31.6662,13.3347 -58.8328,32.167 -81.4996,56.5007 -22.6668,24.3336 -40.3331,53.6678 -52.9988,88.0025 -12.6695,34.3309 -19.0005,72.1638 -19.0005,113.498 0,41.3347 6.49919,78.9993 19.4976,113.001 13.0021,33.9983 31.001,62.9999 54.0004,86.9971 22.9994,24.001 50.3341,42.6689 82.0004,55.9999 31.6662,13.3347 66.1691,20.0021 103.501,20.0021 38.001,0 72.8327,-6.66736 104.499,-20.0021 31.6662,-13.331 58.8328,-31.9989 81.4996,-55.9999 22.6668,-23.9973 40.3331,-52.9988 53.0026,-86.9971 12.6657,-34.0021 18.9968,-71.6667 18.9968,-113.001zm-151.996 0c0,45.9988 -9.16763,82.1685 -27.5029,108.502 -18.3315,26.3331 -44.5002,39.4996 -78.4985,39.4996 -34.0021,0 -60.3352,-13.1665 -78.9993,-39.4996 -18.6679,-26.3331 -27.9999,-62.5028 -27.9999,-108.502 0,-45.9988 9.33207,-82.5012 27.9999,-109.499 18.6641,-27.0021 44.9972,-40.5012 78.9993,-40.5012 33.9983,0 60.167,13.4992 78.4985,40.5012 18.3353,26.9983 27.5029,63.5007 27.5029,109.499z"
id="path3881" /></glyph>
<glyph
unicode="l"
horiz-adv-x="316"
id="glyph3887"><path
d="M279.999 -10.001c-43.3341,0.668979 -78.4985,5.33314 -105.501,14 -26.9983,8.66683 -48.3309,20.8355 -63.9977,36.5023 -15.6668,15.6668 -26.3331,34.6636 -32.0026,56.9977 -5.66576,22.3342 -8.49865,47.5012 -8.49865,75.5012l0 578.999 148.999 24.001 0 -573.001c0,-13.3347 1.0016,-25.3315 3.00106,-35.9978 1.99946,-10.67 5.83394,-19.6695 11.4997,-27.0021 5.66576,-7.33261 13.8318,-13.3347 24.5018,-17.9989 10.6663,-4.6679 24.9989,-7.66896 42.9978,-8.99945l-21 -123.002z"
id="path3885" /></glyph>
<glyph
unicode="i"
horiz-adv-x="288"
id="glyph3891"><path
d="M218.999 0l-148.999 0 0 526 148.999 0 0 -526zm14 678.001c0,-27.3347 -8.83127,-48.8355 -26.4975,-64.5023 -17.6663,-15.6668 -38.5018,-23.5002 -62.5028,-23.5002 -23.9973,0 -44.8328,7.83341 -62.4991,23.5002 -17.6663,15.6668 -26.5013,37.1676 -26.5013,64.5023 0,27.331 8.83501,48.8317 26.5013,64.4985 17.6663,15.6668 38.5018,23.5002 62.4991,23.5002 24.001,0 44.8365,-7.83341 62.5028,-23.5002 17.6663,-15.6668 26.4975,-37.1676 26.4975,-64.4985z"
id="path3889" /></glyph>
</font>
<style
type="text/css"
id="style3894">
<![CDATA[
@font-face { font-family:"Ubuntu";src:url("#FontID0") format(svg)}
.fil0 {fill:none}
.fil2 {fill:#FEFEFE}
.fil7 {fill:#006498}
.fil8 {fill:#0EA5EB}
.fil1 {fill:#2979FF}
.fil4 {fill:#2BBCFF}
.fil5 {fill:#53C6FC}
.fil6 {fill:#BDEAFF}
.fil3 {fill:#332C2B;fill-opacity:0.149020}
.fnt0 {font-weight:bold;font-size:316.03px;font-family:'Ubuntu'}
]]>
</style>
</defs>
<g
id="Layer_x0020_1"
transform="translate(-168.87308,-262.32199)">
<metadata
id="CorelCorpID_0Corel-Layer" />
<g
id="_668933328"
transform="translate(-48.126924,-19.678009)"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<text
x="824"
y="660"
class="fil1 fnt0"
id="text3901"
style="font-weight:bold;font-size:316.02999878px;font-family:Ubuntu;fill:#2979ff">File Browser</text>
<g
id="g3937">
<path
class="fil2"
d="M 474,283 C 616,283 731,398 731,540 731,682 616,797 474,797 333,797 218,682 218,540 218,398 333,283 474,283 Z"
id="path3903"
inkscape:connector-curvature="0"
style="fill:#fefefe" />
<path
class="fil3"
d="M 589,435 698,574 C 701,680 561,805 429,756 L 359,665 464,522 c 0,0 127,-88 125,-87 z"
id="path3905"
inkscape:connector-curvature="0"
style="fill:#332c2b;fill-opacity:0.14902003" />
<path
class="fil4"
d="m 365,412 h 192 l 34,22 v 227 c 0,4 -3,7 -7,7 H 365 c -4,0 -7,-3 -7,-7 V 419 c 0,-4 3,-7 7,-7 z"
id="path3907"
inkscape:connector-curvature="0"
style="fill:#2bbcff" />
<path
class="fil5"
d="m 365,412 h 192 l 34,22 v 2 L 557,415 H 365 c -4,0 -7,3 -7,6 v 242 c 0,-1 0,-1 0,-2 V 419 c 0,-4 3,-7 7,-7 z"
id="path3909"
inkscape:connector-curvature="0"
style="fill:#53c6fc" />
<polygon
class="fil6"
points="433,503 433,413 537,413 537,503 "
id="polygon3911"
style="fill:#bdeaff" />
<path
class="fil6"
d="m 387,552 h 174 c 2,0 4,2 4,4 V 662 H 382 V 556 c 0,-2 2,-4 5,-4 z"
id="path3913"
inkscape:connector-curvature="0"
style="fill:#bdeaff" />
<polygon
class="fil7"
points="382,663 382,651 565,651 565,663 "
id="polygon3915"
style="fill:#006498" />
<path
class="fil7"
d="m 502,426 h 9 c 3,0 5,2 5,5 v 36 c 0,3 -2,5 -5,5 h -9 c -3,0 -5,-2 -5,-5 v -36 c 0,-3 2,-5 5,-5 z"
id="path3917"
inkscape:connector-curvature="0"
style="fill:#006498" />
<path
class="fil2"
d="m 386,426 c 9,0 16,7 16,15 0,9 -7,16 -16,16 -8,0 -15,-7 -15,-16 0,-8 7,-15 15,-15 z"
id="path3919"
inkscape:connector-curvature="0"
style="fill:#fefefe" />
<path
class="fil7"
d="m 398,630 h 152 c 1,0 3,1 3,3 v 0 c 0,1 -2,2 -3,2 H 398 c -2,0 -3,-1 -3,-2 v 0 c 0,-2 1,-3 3,-3 z"
id="path3921"
inkscape:connector-curvature="0"
style="fill:#006498" />
<path
class="fil7"
d="m 398,600 h 152 c 1,0 3,1 3,2 v 0 c 0,2 -2,3 -3,3 H 398 c -2,0 -3,-1 -3,-3 v 0 c 0,-1 1,-2 3,-2 z"
id="path3923"
inkscape:connector-curvature="0"
style="fill:#006498" />
<path
class="fil7"
d="m 398,569 h 152 c 1,0 3,1 3,2 v 0 c 0,2 -2,3 -3,3 H 398 c -2,0 -3,-1 -3,-3 v 0 c 0,-1 1,-2 3,-2 z"
id="path3925"
inkscape:connector-curvature="0"
style="fill:#006498" />
<path
class="fil2"
d="m 369,652 c 3,0 5,2 5,5 0,2 -2,4 -5,4 -2,0 -4,-2 -4,-4 0,-3 2,-5 4,-5 z"
id="path3927"
inkscape:connector-curvature="0"
style="fill:#fefefe" />
<path
class="fil2"
d="m 578,652 c 3,0 5,2 5,5 0,2 -2,4 -5,4 -2,0 -4,-2 -4,-4 0,-3 2,-5 4,-5 z"
id="path3929"
inkscape:connector-curvature="0"
style="fill:#fefefe" />
<polygon
class="fil7"
points="433,503 433,413 414,413 414,503 "
id="polygon3931"
style="fill:#006498" />
<path
class="fil8"
d="m 591,659 v 2 c 0,4 -3,7 -7,7 H 365 c -4,0 -7,-3 -7,-7 v -2 c 0,4 3,7 7,7 h 219 c 4,0 7,-3 7,-7 z"
id="path3933"
inkscape:connector-curvature="0"
style="fill:#0ea5eb" />
<path
class="fil1"
d="M 474,282 C 617,282 732,398 732,540 732,682 617,798 474,798 332,798 217,682 217,540 217,398 332,282 474,282 Z m 0,43 c 119,0 215,96 215,215 0,119 -96,215 -215,215 -118,0 -215,-96 -215,-215 0,-119 97,-215 215,-215 z"
id="path3935"
inkscape:connector-curvature="0"
style="fill:#2979ff" />
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -1,43 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Creator: CorelDRAW X7 -->
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="700px" height="700px" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 700 700"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<style type="text/css">
<![CDATA[
.fil1 {fill:#FEFEFE}
.fil6 {fill:#006498}
.fil7 {fill:#0EA5EB}
.fil8 {fill:#2979FF}
.fil3 {fill:#2BBCFF}
.fil0 {fill:#455A64}
.fil4 {fill:#53C6FC}
.fil5 {fill:#BDEAFF}
.fil2 {fill:#332C2B;fill-opacity:0.149020}
]]>
</style>
</defs>
<g id="Layer_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<path class="fil0" d="M80 0l540 0c44,0 80,36 80,80l0 540c0,44 -36,80 -80,80l-540 0c-44,0 -80,-36 -80,-80l0 -540c0,-44 36,-80 80,-80z"/>
<path class="fil1" d="M350 71c154,0 279,125 279,279 0,154 -125,279 -279,279 -154,0 -279,-125 -279,-279 0,-154 125,-279 279,-279z"/>
<path class="fil2" d="M475 236l118 151c3,116 -149,252 -292,198l-76 -99 114 -156c0,0 138,-95 136,-94z"/>
<path class="fil3" d="M231 211l208 0 38 24 0 246c0,5 -3,8 -8,8l-238 0c-5,0 -8,-3 -8,-8l0 -262c0,-5 3,-8 8,-8z"/>
<path class="fil4" d="M231 211l208 0 38 24 0 2 -37 -23 -209 0c-4,0 -7,3 -7,7l0 263c-1,-1 -1,-2 -1,-3l0 -262c0,-5 3,-8 8,-8z"/>
<polygon class="fil5" points="305,212 418,212 418,310 305,310 "/>
<path class="fil5" d="M255 363l189 0c3,0 5,2 5,4l0 116 -199 0 0 -116c0,-2 2,-4 5,-4z"/>
<polygon class="fil6" points="250,470 449,470 449,483 250,483 "/>
<path class="fil6" d="M380 226l10 0c3,0 6,2 6,5l0 40c0,3 -3,6 -6,6l-10 0c-3,0 -6,-3 -6,-6l0 -40c0,-3 3,-5 6,-5z"/>
<path class="fil1" d="M254 226c10,0 17,7 17,17 0,9 -7,16 -17,16 -9,0 -17,-7 -17,-16 0,-10 8,-17 17,-17z"/>
<path class="fil6" d="M267 448l165 0c2,0 3,1 3,3l0 0c0,1 -1,3 -3,3l-165 0c-2,0 -3,-2 -3,-3l0 0c0,-2 1,-3 3,-3z"/>
<path class="fil6" d="M267 415l165 0c2,0 3,1 3,3l0 0c0,1 -1,2 -3,2l-165 0c-2,0 -3,-1 -3,-2l0 0c0,-2 1,-3 3,-3z"/>
<path class="fil6" d="M267 381l165 0c2,0 3,2 3,3l0 0c0,2 -1,3 -3,3l-165 0c-2,0 -3,-1 -3,-3l0 0c0,-1 1,-3 3,-3z"/>
<path class="fil1" d="M236 472c3,0 5,2 5,5 0,2 -2,4 -5,4 -3,0 -5,-2 -5,-4 0,-3 2,-5 5,-5z"/>
<path class="fil1" d="M463 472c3,0 5,2 5,5 0,2 -2,4 -5,4 -3,0 -5,-2 -5,-4 0,-3 2,-5 5,-5z"/>
<polygon class="fil6" points="305,212 284,212 284,310 305,310 "/>
<path class="fil7" d="M477 479l0 2c0,5 -3,8 -8,8l-238 0c-5,0 -8,-3 -8,-8l0 -2c0,4 3,8 8,8l238 0c5,0 8,-4 8,-8z"/>
<path class="fil8" d="M350 70c155,0 280,125 280,280 0,155 -125,280 -280,280 -155,0 -280,-125 -280,-280 0,-155 125,-280 280,-280zm0 46c129,0 234,105 234,234 0,129 -105,234 -234,234 -129,0 -234,-105 -234,-234 0,-129 105,-234 234,-234z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -1,147 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xml:space="preserve"
width="560"
height="560"
version="1.1"
style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
viewBox="0 0 560 560"
id="svg44"
sodipodi:docname="icon_raw.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
inkscape:export-filename="/home/umarcor/filebrowser/logo/icon_raw.svg.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"><metadata
id="metadata48"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="711"
id="namedview46"
showgrid="false"
inkscape:zoom="0.33714286"
inkscape:cx="-172.33051"
inkscape:cy="280"
inkscape:window-x="0"
inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="svg44" />
<defs
id="defs4">
<style
type="text/css"
id="style2">
<![CDATA[
.fil1 {fill:#FEFEFE}
.fil6 {fill:#006498}
.fil7 {fill:#0EA5EB}
.fil8 {fill:#2979FF}
.fil3 {fill:#2BBCFF}
.fil0 {fill:#455A64}
.fil4 {fill:#53C6FC}
.fil5 {fill:#BDEAFF}
.fil2 {fill:#332C2B;fill-opacity:0.149020}
]]>
</style>
</defs>
<g
id="g85"
transform="translate(-70,-70)"><path
class="fil1"
d="M 350,71 C 504,71 629,196 629,350 629,504 504,629 350,629 196,629 71,504 71,350 71,196 196,71 350,71 Z"
id="path9"
inkscape:connector-curvature="0"
style="fill:#fefefe" /><path
class="fil2"
d="M 475,236 593,387 C 596,503 444,639 301,585 L 225,486 339,330 c 0,0 138,-95 136,-94 z"
id="path11"
inkscape:connector-curvature="0"
style="fill:#332c2b;fill-opacity:0.14902003" /><path
class="fil3"
d="m 231,211 h 208 l 38,24 v 246 c 0,5 -3,8 -8,8 H 231 c -5,0 -8,-3 -8,-8 V 219 c 0,-5 3,-8 8,-8 z"
id="path13"
inkscape:connector-curvature="0"
style="fill:#2bbcff" /><path
class="fil4"
d="m 231,211 h 208 l 38,24 v 2 L 440,214 H 231 c -4,0 -7,3 -7,7 v 263 c -1,-1 -1,-2 -1,-3 V 219 c 0,-5 3,-8 8,-8 z"
id="path15"
inkscape:connector-curvature="0"
style="fill:#53c6fc" /><polygon
class="fil5"
points="305,212 418,212 418,310 305,310 "
id="polygon17"
style="fill:#bdeaff" /><path
class="fil5"
d="m 255,363 h 189 c 3,0 5,2 5,4 V 483 H 250 V 367 c 0,-2 2,-4 5,-4 z"
id="path19"
inkscape:connector-curvature="0"
style="fill:#bdeaff" /><polygon
class="fil6"
points="250,470 449,470 449,483 250,483 "
id="polygon21"
style="fill:#006498" /><path
class="fil6"
d="m 380,226 h 10 c 3,0 6,2 6,5 v 40 c 0,3 -3,6 -6,6 h -10 c -3,0 -6,-3 -6,-6 v -40 c 0,-3 3,-5 6,-5 z"
id="path23"
inkscape:connector-curvature="0"
style="fill:#006498" /><path
class="fil1"
d="m 254,226 c 10,0 17,7 17,17 0,9 -7,16 -17,16 -9,0 -17,-7 -17,-16 0,-10 8,-17 17,-17 z"
id="path25"
inkscape:connector-curvature="0"
style="fill:#fefefe" /><path
class="fil6"
d="m 267,448 h 165 c 2,0 3,1 3,3 v 0 c 0,1 -1,3 -3,3 H 267 c -2,0 -3,-2 -3,-3 v 0 c 0,-2 1,-3 3,-3 z"
id="path27"
inkscape:connector-curvature="0"
style="fill:#006498" /><path
class="fil6"
d="m 267,415 h 165 c 2,0 3,1 3,3 v 0 c 0,1 -1,2 -3,2 H 267 c -2,0 -3,-1 -3,-2 v 0 c 0,-2 1,-3 3,-3 z"
id="path29"
inkscape:connector-curvature="0"
style="fill:#006498" /><path
class="fil6"
d="m 267,381 h 165 c 2,0 3,2 3,3 v 0 c 0,2 -1,3 -3,3 H 267 c -2,0 -3,-1 -3,-3 v 0 c 0,-1 1,-3 3,-3 z"
id="path31"
inkscape:connector-curvature="0"
style="fill:#006498" /><path
class="fil1"
d="m 236,472 c 3,0 5,2 5,5 0,2 -2,4 -5,4 -3,0 -5,-2 -5,-4 0,-3 2,-5 5,-5 z"
id="path33"
inkscape:connector-curvature="0"
style="fill:#fefefe" /><path
class="fil1"
d="m 463,472 c 3,0 5,2 5,5 0,2 -2,4 -5,4 -3,0 -5,-2 -5,-4 0,-3 2,-5 5,-5 z"
id="path35"
inkscape:connector-curvature="0"
style="fill:#fefefe" /><polygon
class="fil6"
points="305,212 284,212 284,310 305,310 "
id="polygon37"
style="fill:#006498" /><path
class="fil7"
d="m 477,479 v 2 c 0,5 -3,8 -8,8 H 231 c -5,0 -8,-3 -8,-8 v -2 c 0,4 3,8 8,8 h 238 c 5,0 8,-4 8,-8 z"
id="path39"
inkscape:connector-curvature="0"
style="fill:#0ea5eb" /><path
class="fil8"
d="M 350,70 C 505,70 630,195 630,350 630,505 505,630 350,630 195,630 70,505 70,350 70,195 195,70 350,70 Z m 0,46 C 479,116 584,221 584,350 584,479 479,584 350,584 221,584 116,479 116,350 116,221 221,116 350,116 Z"
id="path41"
inkscape:connector-curvature="0"
style="fill:#2979ff" /></g>
</svg>

Before

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -1,8 +0,0 @@
{
"name": "filebrowser",
"author": "File Browser contributors",
"private": true,
"dependencies": {
"filebrowser-frontend": "1.6.0"
}
}

View File

@@ -1,21 +0,0 @@
#!/bin/bash
set -e
echo "Building assets"
./build.sh
echo "Updating version number to $1..."
sed -i "s|(untracked)|$1|g" filebrowser.go
git add -A
git commit -m "chore: version $1"
git tag "v$1"
git push
git push --tags
echo "Commiting untracked version notice..."
sed -i "s|$1|(untracked)|g" filebrowser.go
git add -A
git commit -m "chore: setting untracked version [ci skip]"
git push
echo "Done!"

View File

@@ -1 +0,0 @@
5df38dbe052d7325c543606612fe6f4d9a1cdb98

View File

@@ -187,9 +187,6 @@ func (h Hugo) undraft(file string) error {
// Setup sets up the plugin.
func (h *Hugo) Setup() error {
var err error
if h.Exe, err = exec.LookPath("hugo"); err != nil {
return err
}
return nil
h.Exe, err = exec.LookPath("hugo")
return err
}