summaryrefslogtreecommitdiff
path: root/src/wrapper.hs
AgeCommit message (Collapse)Author
2018-04-22separate Hs-Source-Dirs for binariesJoey Hess
This is a trick I only just learned about, see https://stackoverflow.com/questions/6711151/how-to-avoid-recompiling-in-this-cabal-file#6711739 Significantly increased propellor build speed when your config.hs is in a fork of the propellor repository, by avoiding redundant builds of propellor library. Also avoids needing to list all the build deps 3 times. Also avoids cabal 2.x wanting every module to be listed 3 times. Note that the bulk of wrapper.hs had to move into the propellor library, since that code depended on stuff not exposed by the library. This commit was sponsored by Henrik Riomar on Patreon.
2016-12-24GHC's fileSystemEncoding is used for all String IO, to avoid ↵Joey Hess
encoding-related crashes in eg, Propellor.Property.File.
2016-11-12check that config.hs mentions "Propellor"Joey Hess
from eg, "import Propellor"
2016-11-12The propellor wrapper checks if ./config.hs exists; if so it runs using the ↵Joey Hess
configuration in the current directory, rather than ~/.propellor/config.hs The config,hs name now seems a bit badly chosen, propellor.hs would be less ambiguous. To avoid accidentially running with a config.hs for something else, the file content has to contain "Propellor". Note that checkRepoUpToDate is only run for ~/.propellor/. I guess propellor configs in other directories won't have been set up that way, and it would take some changes to make that not hardcode use of dotPropellor. There's a new security boundary here, since running propellor looks at the cwd, whose contents might not be user the user's control. The security checks I added for this seem pretty good, but even if they can be bypassed, this is not much different than `make` using the Makefile in cwd. This commit was sponsored by Ole-Morten Duesund on Patreon.
2016-04-28Fix build with directory-1.2.6.2.Joey Hess
It's now exporting a conflicting isSymbolicLink https://github.com/haskell/directory/issues/52 Only a few places in propellor use isSymbolicLink, but to prevent future problems, made as much of it as possible import Utility.Directory, which re-exports System.Directory without the conflicting symbol. (Utility.Tmp and System.Console.Concurrent.Internal cannot import Utility.Directory due to cycles, and don't use isSymbolicLink anyway.)
2016-04-02make sure that the wrapper runs propellor in the foregroundJoey Hess
2016-04-02typoJoey Hess
2016-04-02avoid wrapper building propellor unnessessarilyJoey Hess
2016-04-01separate propellor --initJoey Hess
2016-04-01setup gpg key in initial setup processJoey Hess
2016-04-01fix false positive for out of date message after initial clone from git bundleJoey Hess
2016-04-01Improved propellor's first run experience; the wrapper program will now walk ↵Joey Hess
the user through setting up ~/.propellor with a choice between a clone of propellor's git repository, or a minimal config.
2016-03-30When new dependencies are added to propellor or the propellor config, try ↵Joey Hess
harder to get them installed. In particular, this makes propellor --spin work when the remote host needs to get dependencies installed in order to build the updated config. Fixes http://propellor.branchable.com/todo/problem_with_spin_after_new_dependencies_added/
2015-12-19Clean build with ghc 7.10.Joey Hess
Import Prelude after modules that cause warnings due to AMP change
2015-10-28need withConcurrentOutput to flush any buffered concurrent outputJoey Hess
2015-09-08propellor spinJoey Hess
2015-03-22simplify setup process for minimal config modeJoey Hess
Allow cloning a branch. Updated wrapper to check for propellor.cabal and not try to update if it's not present, to handle this case.
2015-02-28Propellor now builds itself without needing the Makefile.Joey Hess
2014-08-19keep warning of out of date after updating upstream/master, until it gets mergedJoey Hess
2014-08-19remove origin remote after local cloneJoey Hess
It's not useful, since it'll change to something that cannot be directly merged with.
2014-08-19-XJoey Hess
2014-08-19need to -s theirs or the merge is likely to failJoey Hess
2014-08-19simpler mergeJoey Hess
Ah, we've checked out the oldref, so can just merge the newref in and get a branch that is suitable for mergeing into the user's repo. No need for manual diff, which can fail on eg, binaries or no changes.
2014-08-19need to connect up historyJoey Hess
2014-08-19syntaxJoey Hess
2014-08-19syntaxJoey Hess
2014-08-19color messageJoey Hess
2014-08-19fixesJoey Hess
2014-08-19fix ref nameJoey Hess
2014-08-19head file will end with a newlineJoey Hess
2014-08-19ugly workaround for lack of history in repo distributed with debian packageJoey Hess
2014-08-19final fixesJoey Hess
2014-08-19warningsJoey Hess
2014-08-19debian upgrade handlingJoey Hess
The /usr/bin/propellor wrapper will warn when ~/.propellor/ is out of date and a newer version is available from origin.
2014-08-19typoJoey Hess
2014-08-19stop removing privdata, it's no longer in masterJoey Hess
2014-08-19local repo fully working nowJoey Hess
2014-08-19The Debian package now includes a single-revision git repository in ↵Joey Hess
/usr/src/propellor/, and ~/.propellor/ is set up to use this repository as its "upstream" remote. This avoids relying on the security of the github repository when using the Debian package.
2014-06-09cleanupJoey Hess
2014-05-14moved source code to srcJoey Hess
This is to work around OSX's brain-damange regarding filename case insensitivity. Avoided moving config.hs, because it's a config file. Put in a symlink to make build work.