diff --git a/config/routes b/config/routes index 8045cf3..8af72cc 100644 --- a/config/routes +++ b/config/routes @@ -4,14 +4,10 @@ /version VersionR GET /apps/version/#Text VersionAppR GET --get most recent appId version -/sys/version/agent VersionAgentR GET --get most recent agent version -/sys/version/appmgr VersionAppMgrR GET --get most recent appmgr version -/sys/version/torrc VersionTorrcR GET --get most recent torrc version +/sys/version/#Text VersionSysR GET --get most recent sys app version /icons/#PNG IconsR GET -- get icons !/apps/#S9PK AppR GET --get most recent appId at appversion spec, defaults to >=0.0.0 -- ?spec={semver-spec} -/sys/agent AgentR GET --get most recent agent at appversion -- ?spec={semver-spec} -/sys/appmgr AppMgrR GET --get most recent appmgr at appversion -- ?spec={semver-spec} -/sys/torrc TorrcR GET --get most recent torrc at appversion -- ?spec={semver-spec} +!/sys/#SYS_EXTENSIONLESS SysR GET --get most recent sys app -- ?spec={semver-spec} /sys.tar.gz ImageR GET --get most recent iso image, ?spec={semver-spec} \ No newline at end of file diff --git a/resources/sys/appmgr/0.0.0/appmgr.deleteme b/resources/sys/appmgr/0.0.0/appmgr similarity index 100% rename from resources/sys/appmgr/0.0.0/appmgr.deleteme rename to resources/sys/appmgr/0.0.0/appmgr diff --git a/src/Constants.hs b/src/Constants.hs index 62c2f80..fcd78f1 100644 --- a/src/Constants.hs +++ b/src/Constants.hs @@ -12,7 +12,7 @@ sslPath :: FilePath sslPath = "/var/ssl" resourcesDir :: FilePath -resourcesDir = "/var/www/html/resources" +resourcesDir = "./resources" --"/var/www/html/resources" registryVersion :: AppVersion registryVersion = fromJust . parseMaybe parseJSON . String . toS . showVersion $ version diff --git a/src/Handler/Apps.hs b/src/Handler/Apps.hs index eb29d26..bc17f55 100644 --- a/src/Handler/Apps.hs +++ b/src/Handler/Apps.hs @@ -42,14 +42,8 @@ getAppsManifestR = respondSource typePlain $ CB.sourceFile appManifestPath .| aw getImageR :: Handler TypedContent getImageR = getApp resourcesDir ("sys" :: Extension "tar.gz") -getAgentR :: Handler TypedContent -getAgentR = getApp sysResourceDir ("agent" :: Extension "") - -getAppMgrR :: Handler TypedContent -getAppMgrR = getApp sysResourceDir ("appmgr" :: Extension "") - -getTorrcR :: Handler TypedContent -getTorrcR = getApp sysResourceDir ("torrc" :: Extension "") +getSysR :: Extension "" -> Handler TypedContent +getSysR = getApp sysResourceDir getAppR :: Extension "s9pk" -> Handler TypedContent getAppR = getApp appResourceDir diff --git a/src/Handler/Version.hs b/src/Handler/Version.hs index e1cf92d..7860580 100644 --- a/src/Handler/Version.hs +++ b/src/Handler/Version.hs @@ -21,14 +21,10 @@ getVersionAppR appId = getVersionWSpec appResourceDir appExt where appExt = Extension (toS appId) :: Extension "s9pk" -getVersionAgentR :: Handler (Maybe AppVersionRes) -getVersionAgentR = getVersionWSpec sysResourceDir ("agent" :: Extension "") - -getVersionAppMgrR :: Handler (Maybe AppVersionRes) -getVersionAppMgrR = getVersionWSpec sysResourceDir ("appmgr" :: Extension "") - -getVersionTorrcR :: Handler (Maybe AppVersionRes) -getVersionTorrcR = getVersionWSpec sysResourceDir ("torrc" :: Extension "") +getVersionSysR :: Text -> Handler (Maybe AppVersionRes) +getVersionSysR sysAppId = getVersionWSpec sysResourceDir sysExt + where + sysExt = Extension (toS sysAppId) :: Extension "" getVersionWSpec :: KnownSymbol a => FilePath -> Extension a -> Handler (Maybe AppVersionRes) getVersionWSpec rootDir ext = do diff --git a/src/Lib/Registry.hs b/src/Lib/Registry.hs index e9838b8..7df0616 100644 --- a/src/Lib/Registry.hs +++ b/src/Lib/Registry.hs @@ -64,6 +64,7 @@ getUnversionedFileFromDir rootDirectory appExt = fmap (join . hush) . try @SomeE newtype Extension (a :: Symbol) = Extension String deriving (Eq) type S9PK = Extension "s9pk" +type SYS_EXTENSIONLESS = Extension "" type PNG = Extension "png" instance IsString (Extension a) where @@ -83,7 +84,9 @@ instance KnownSymbol a => Read (Extension a) where where m = length s ext' = extension (def :: Extension a) - n = length ext' + n = if length ext' == 0 + then -1 + else length ext' instance KnownSymbol a => PathPiece (Extension a) where fromPathPiece = readMaybe . toS